Java入门-第2篇

第一个Java程序

package com.java24hours; //这一行告诉计算机将程序的包名称命名为com.java24hours

class Saluton{                   //这句话意思是请将我的Java程序命名为Saluton

public static void main(string[] arguments){  //这句话是告诉计算机:程序的主要部分从这里开始

//My first Java program goes here

}

}

运行该程序之前必须先编译它。在编译程序时,输入到计算机的程序指令被转换为计算机可以更容易理解的一种形式。

改程序在编译之后生成一个新的文件,名为Saluton.class.所有的Java程序都将编译为类(class)文件,且文件后缀

名为.class。

编译器器将Java源代码转换为字节码,这是一种Java虚拟机(JVM)可以运行的格式。、

第一站:Oracle

Java之旅的第一站始于Oracle公司创建的www.java.com,Oracle公司管理着Java语言。

作为Web页面的一部分运行的Java程序称作applet。

Java还用另外两种方式增强了Web页面:用Java语言编写的桌面程序可以从Web浏览器中启动;

Web服务器运行的Java servlet可以分发Web应用程序。

Oracle还为Java开发人员提供了一个更为技术性的Web站点,其网址为:www.oracle.com/technetwork/java。

JDK

是Java开发工具包 (Java Development Kit ) 的缩写。它是一种用于构建在 Java 平台上发布的应用程序、applet 和组件的开发环境。其中包括了Java编译器、JVM、大量的Java工具以及Java基础API里面是Java类库和Java的语言规范,同时Java语言的任何改进都应当加到其中,作为后续版本发布。要成为一名程序员,JDK是一种最基本的工具。
Java SDK最早叫Java Software Develop Kit,后来改名为JDK,即Java Develop Kit。JDK作为Java开发工具包,主要用于构建在Java平台上运行的应用程序、Applet 和组件等。
JDK的功能:
      它的功能是用于构建在 Java 平台上发布的应用程序、applet 和组件的开发环境。它不提供具体的开发软件,它提供的是无论你用何种开发软件写Java程序都必须用到的类库和Java语言规范。
JDK有哪些版本:
J2EE、J2SE、J2ME这三个不同版本的平台,它们的共同点是:语言是相同的,不同点是捆绑的库不同。J2EE是企业版平台,它除了包含标准版(SE的任何组件,还增加了附加库;J2SE是标准版平台;J2ME是微型平台。
掌握 JDK是学好Java的第一步。最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK等等。其中IBM的JDK包含的JVM(Java Virtual Machine)运行效率要比Sun JDK包含的JVM高出许多。而专门运行在x86平台的Jrocket在服务端运行效率也要比Sun JDK好很多.

applet

在传统的应用开发中,开发人员常常为了将为一种机器平台开发的程序移植到其它的平台上而感到头痛,Java的出现大大减轻了开发人员的这种负担,它的“一次编成,到处运行(Write Once,Run Anywhere)”的功能使开发人员能够开发出跨系统跨平台运行的应用程序。现在各种Java应用中都大量使用了Java applet,它是一种特殊的Java小程序,这些applet能够给人们带来更为活泼更具吸引力的Web页面。各种具有Java功能的浏览器,如Netscape Navigator、Microsoft Internet Explorer(MSIE)等,会自动下载并执行内嵌在Web页面中的 Java applet。    然而,Applet在给人们带来好处的同时,也带来了潜在的安全隐患。它使applet的设计者有机会入侵他人的机器。实事求是的讲,这个世界上没有一个电脑系统是百分之百安全的, 但由于现在Internet和Java在全球应用得越来越普及,因此人们在浏览Web页面的同时也会同时下载大量的Java applet,就使得Web用户的机器面临的安全威胁比以往任何时候都要大。    上述问题到目前为止还没有一种完全的解决方法。好在现在Java 的设计者已注意到了这一点,并尽其所能加以限制, 例如,在 JDK1.1 版中就采用逐渐流行的数字签名技术以减少applet可能造成的危险。 尽管如此,目前Web用户的机器还是很容易受到applet的攻击,而且现在用户能够采取的对策并不多。在Java applet 四处充斥的今天,人们使用具有 Java功能的浏览程序之时,对于浏览的网页的地点就不能不多加留意。    Web页面中的执行文件到底会带来什么样的潜在危险呢?大致上可分为四类∶更改系统、侵犯隐私权、非法入侵攫取资源、与使用者敌对。 恶意之1∶更改系统    像 Java 这样功能强大的程序语言,不管是在电脑的硬盘上还是在文件系统中,都具有修改数据的能力。 Java 中包含有许多预先定义好的类(class),其中的方法(method) 可以删除或修改文件、更改使用中的磁盘内容、杀掉执行程序或其执行线程 (thread)。 这些功能很有可能会被applet的设计者滥用。更改系统可能是所有潜在危险中最严重的一种,Java 的设计者对于限制此类危险已花费了很大的心思;相反的,ActiveX 则对其引发的可能结果尚未加以限制。    所谓的更改系统包括入侵系统。在不安全的使用 Java时,可能会被applet发现攻击的路径。 由于黑客 (hacker) 们总是想方设法利用各种手段入侵他人的电脑系统 ( 取得进入系统与使用权限 ),而我们用户能做的不过是小心使用Java而已,因此保证Java运行环境的安全最主要的还是Java设计者的责任,Java设计得必须保证在用户下载applet时没有其他进入系统的安全漏洞产生。    由于Java 可在多种操作平台上运行,因此恶意的applet只要在其中一种操作系统(例如Solaris) 上攻击成功, 在攻击其它作业系统 ( 例如 Windows NT) 时也能得逞。因此Java在带来应用程序跨平台执行的同时,也带来了恶意applet的这种跨平台攻击的可能性。    利用 Java 来入侵电脑系统并非不可能的事情。曾发现许多目前已知的 Java安全漏洞的美国普林斯顿大学安全Internet编程小组(Safe Internet Programming Team),就在实验室中展示了这种攻击型的 applet。虽然,目前针对已发现的一些安全漏洞已经提供了一些“补丁(patch)”程序, 但其它更为复杂的攻击仍可能潜藏着而未被人们发现。    在如今各种重要的电脑系统中,这种更改系统型的 applet 攻击对数据造成的破坏是非常严重的。如它可能会破坏一些表面上看来很安全的数据库中的财务记录,导致公司财务损失而破产;或者是窜改医院中病人的病情数据,导致医疗不当,甚至因此导致病人死亡。所以在目前未能打到解决方案的情况下,对Java applet的使用要非常小心,不要让重要的数据系统暴露在这种新型的攻击危险中。 Internet这种全球最开放的系统几乎可以称得上是电脑黑客们的乐园,这从Internet上层出不穷的入侵事件便不难看出。因此如何使 Java 不致于成为为他们的破坏工具,不管是对开发员来讲还是对用户来讲都是一个重要的课题。 恶意之2∶侵犯隐私权    第二种类型的攻击,就是暴露他人电脑主机的秘密数据。例如,在 Unix 系统中如能访问/etc/passwd( 记录系统中所有使用者的姓名与密码 )这个文件,就有可能入侵整个系统 。    另外,电脑系统也可能会造成一些敏感性资料的泄露,例如必术不正的公司可以利用商业间谍偷取对手公司的业务计划。个人用户对于其私人的电子邮件或财务记录是否可以公开也要慎重考虑,任何可藉由电子邮件传送或经由网络传递的秘密资料,都有可能受到入侵。    利用 Java 的功能,会产生双重伪造的可能性,典型的电子邮件伪造(mail-forging )的情况会更加严重。Applet 先使用系统送出假信息,以欺骗真的邮件。   最后,目前许多系统中盛行的声音功能,也可能会导致窃听。如果攻击者能掌握系统的麦克风,就有可能进行窃听的行为。 更隐秘的窃听是访问监视进程表(process table )和相关的文件。网页式的窃听,还可能包括追踪某一特定使用者所经过的网路连结。    Java 对于某些形式的网络攻击可以成功的进行防卫。例如,文件系统的输入输出操作就受到严格的控制。不过,这又与 applet 常需要一条通道以便传回数据的要求相违背,因为applet 总是必须与原来的服务器一直相连。电子邮件的伪造防卫起来则比较困难。由于缺乏对客户端连接接口的限制功能,电子邮件的伪造不太可能杜绝。 恶意之3∶拒绝系统服务    拒绝系统服务式的攻击,会让系统资源无法正常使用。通常的做法是利用一个执行程序吸取超过正常系统所分配的资源,甚至是霸占整个系统。这类攻击还可分为几个小的类型,例如填满文件系统或用光所有可用的文件资源;调用所有系统的内存,产生数以千计的窗口,以便有效的阻止屏幕输出或找开新的窗口;产生许多高优先权的执行线程,以耗光 CPU的执行周期。 虽然这一类危险的破坏作用也很大,但它们似乎并未引起Java 的设计者的重视。    人们对防止这种攻击的重要性还有些争议。在大部分情况下,拒绝系统服务式的攻击,比较接近与使用者敌对的攻击,因为从此类攻击中使系统恢复正常一般比较容易,只需要重新启动系统即可。不过,即使如此,在一些重要的系统中也可能会造成严重的后果,人们当然谁也不希望在与重要的系统连结时重新启动系统吧。例如,在处理股票交易的机器上蓄意拒绝系统服务,其造成的损失将难以想像的。    拒绝系统服务式的攻击是 Java 常见的安全问题之一。 现在Internet上有一个专门介绍此类问题的站点,这就是Mark La Due的Hostile Applet主页 ( http://www.math.gatech.edu/~maladue/HostileApplets.htm ) 中,不兴趣的读者不妨一看,在这里面介绍了许多实际的例子。要制造这种类型的攻击实际上并不难,不过由于目前 Java 的安全模型并没有提供很好的解决办法,因此对它的防范却比较困难。    还有一种类型的 applet 攻击,只是造成使用者的困扰,虽然与以上三种攻击相比危险性小得多,但也值得引起重视。例如,故意发出不经意的声音,或在屏幕上显示不雅的画面等等。另外,还有单纯的程序设计错误而引起的一些不良后果也属于此类。正如前面所讲的,某些类型的拒绝系统服务式攻击,也可以归类为单纯的敌对行为,例如,产生众多窗口的操作,可能只是令人困扰而已,并不会造成破坏系统的数据。 Java的安全机制    Java语言的安全模型与传统的安全方法有很大的不同。第一,以前绝大多数操作系统都允许应用程序访问大部分系统资源。管理者必须依靠用户来对系统资源进行保护(如为不同的人设置不同的访问权限等)。第二,在应用程序执行前依靠用户来对其进行安全处理(如进行消毒等)。这种安全方法有两个明显的缺点:它依靠用户来进行验证,而且要依赖于验证软件本身的可靠性。而Java则采取了许多新的安全措施,它的最主要的安全机制就是Java沙箱。 为了抵抗这四种类型的 applet 攻击,Java安全模型提供了三把利箭∶字节码验证器(Byte-Code Verifier)、applet类装载器(Class Loader)以及安全管理器(Security Manager)。 这三者结合起来可在 applet 的装载与执行阶段,对文件系统、网络与浏览程序的内部存取做进一步检查。这三者缺一不可,共同维护着Java applet的安全

时间: 2025-01-12 13:10:13

Java入门-第2篇的相关文章

Java入门-第1篇

程序运行原理 Java是由加拿大的计算机科学家James Gosling发明的. 来自Oracle的Java与众不同,它同时需要编译器和解释器.编译器将构成程序的语句转换成解释器可以运行的字节码. 这里的解释器称之为Java虚拟机. Java虚拟机也成为JVM,它可以使得相同的Java程序在无需修改的情况下,就能在不同的操作系统和不同的计算设备上运行.虚拟机 将字节码转换成设备的操作系统可以执行的指令. 选择一个Java编程工具    在开始编写Java程序前,你必须有一个Java编程工具. 当

Java入门-第3篇

安全性 Java包含了几种不同类型安全措施,确保运行在Web页面中的Java程序是安全的.它的安全性是通过Web运行的Java applet进行 下列限制来实现的: 任何applet都不能打开.读写或者删除用户系统中的文件或系统属性: 任何applet都不能运行用户系统中的其它程序: applet创建的所有窗口都明确标识为Java窗口: 除其所属网站,applet不能连接到其他网站: 所有applet都需要进行验证,确保编译后未被修改. www.sourceforge.net在这里可以找到使用J

Java入门到精通——调错篇之Spring2.5利用aspect实现AOP时报错: error at ::0 can't find referenced pointcut XXX

一.问题描述及原因. 利用Aspect注解实现AOP的时候出现了error at ::0 can't find referenced pointcut XXX.一看我以为注解写错了,结果通过查询相关资料是因为Spring2.5与中的aspectjweaver.jar 和aspectjrt.jar这两个jar包与JDK1.7不匹配. org.springframework.beans.factory.BeanCreationException: Error creating bean with n

Java小白入门系列 第一篇 写在前面

2018年8月30日  22:00:17 郑州  多云 Sue Java小白入门系列 第一篇  写在前面 写在前面: 首先声明一下,本人也是正在学Java,并不是多么专业人士,只是最近受老师的启发,所以准备写个关于java新手入门系列的博客,包括搭建Java开发环境.Java入门知识,也会分享一些好用的软件及破解器之类的,一方面是巩固所学的知识,另一方面是给有兴趣的小白做练手.入门之用,本系列博客完全开放,所有资源不收任何费用,欢迎大家转发留言,入门之用,不喜勿喷,恶人绕道! Java是不是很难

java入门第二步之helloworld【转】

前一篇博客已经介绍了jdk的安装:接下来我们就乘热打铁,完成第一个程序:helloworld(每学一样程序的新东西都是从实现helloworld开始的) 1.不是用开发工具IDE,只是使用记事本来实现: 打开计算本,在记事本上写如下代码,现在可以先不管是什么意思: public class HelloWorld { public static void main(String[] args) { System.out.println("这是我的第一个程序!!"); } } 保存,文件名

HBase入门修行基础篇

HBase入门修行基础篇 HBase是一个分布式的.面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文"Bigtable:一个结构化数据的分布式存储系统".就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力.HBase是Apache的Hadoop项目的子项目.HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库.另一个不同的是H

Zookeeper Api(java)入门与应用(转)

如何使用 Zookeeper 作为一个分布式的服务框架,主要用来解决分布式集群中应用系统的一致性问题,它能提供基于类似于文件系统的目录节点树方式的数据存储,但是 Zookeeper 并不是用来专门存储数据的,它的作用主要是用来维护和监控你存储的数据的状态变化.通过监控这些数据状态的变化,从而可以达到基于数据的集群管理,后面将会详细介绍 Zookeeper 能够解决的一些典型问题,这里先介绍一下,Zookeeper 的操作接口和简单使用示例. 常用接口列表 客户端要连接 Zookeeper 服务器

Java入门记(五):容器关系的梳理(下)——Map

注意:阅读本文及相关源码时,需要数据结构相关知识,包括:哈希表.链表.红黑树. Map是将键(key)映射到值(value)的对象.不同的映射不能包含相同的键:每个键最多只能映射到一个值.下图是常见Map的接口和实现.与Collection相比,继承关系简单不少. 一.Map接口和AbstractMap抽象类 Map接口除了增加映射.根据key获取value.判断映射中的key或value是否存在.删除映射的基本方法外,还包含了返回包含所有key的Set.包含所有value的collection

Mybatis最入门---ResultMaps实例篇(一对多查询)

[一步是咫尺,一步即天涯] 接上文,我们来演示在实际开发中,如何配置和使用resultMap实现一对多查询. 准备工作: a.操作系统 :win7 x64 b.基本软件:MySQL,Mybatis,Spring,SQLyog,Tomcat,web基础 特别的,作为演示程序,还请各位看官不要纠结数据库的细节内容 ----------------------------------------------------------------------------------------------