资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第,1,章,Java,语言概述,本章的主要内容:,1.1 Java,语言的发展里程,1.2 java,的特点及有关概念,1.3 Java,程序开发,1.1 Java,语言的发展里程,Java,语言前身是,Oak,语言,于,1991,年推出,但仅限于,Sun Microsystems,公司内部使用。,1995,年,Oak,语言改名为“,Java”,,并正式向公众推出,主要贡献者是,James Gosling,。,1.2,版本,的,Java,是,Java,语言发展过程中一个关键阶段,从此,,Sun,公司将,Java,更名为,Java2,。经过十年的发展,,Java,语言已经发展到,1.6,版本。,版本号,名称,中文名,发布日期,JDK1.0,1996-1-23,JDK1.1.4,Sparkler,宝石,1997-09-12,JDK1.1.5,Pumpkin,南瓜,1997-12-13,JDK1.1.6,Abigail,阿比盖尔,-,女子名,1998-04-24,JDK1.1.7,Brutus,布鲁图,-,古罗马政治家和将军,1998-09-28,JDK1.1.8,Chelsea,切尔西,-,城市名,1999-04-08,J2SE1.2,Playground,运动场,1998-12-04,J2SE1.2.1,none,无,1999-03-30,J2SE1.2.2,Cricket,蟋蟀,1999-07-08,J2SE1.3,Kestrel,美洲红隼,2000-05-08,J2SE1.3.1,Ladybird,瓢虫,2001-05-17,J2SE1.4.0,Merlin,灰背隼,2002-02-13,J2SE1.4.1,grasshopper,蚱蜢,2002-09-16,J2SE1.4.2,Mantis,螳螂,2003-06-26,J2SE5.0,(1.5.0),Tiger,老虎,2004-9-30,J2SE6.0,(Beta),Mustang,野马,2006-4,1.2 java,的特点及有关概念,1.2.1 Java,语言的特点,1.2.2,平台无关性,1.2.3 Java,虚拟机,1.2.4 Java,与,C/C+,关系,1.2.1 java,的特点,1,语法简单,(,1,),Java,的风格类似于,C+,(,2,),Java,摒弃了,C+,中容易引发程序错误的地方,如指针和内存管理;,(,3,),Java,提供了丰富的类库。,2,面向对象,面向对象编程是一种先进的编程思想,更加容易解决复杂的问题。面向对象可以说是,Java,最重要的特性。,Java,语言的设计完全是面向对象的,,1.2 java,的特点,(2/4),3分布式,JAVA从诞生就起就与网络联系在一起,它强调网络特性,内置TCP/IP,HTTP,FTP协议类库,便于开发网上应用系统。,4安全性,(,1,)在,Java语言里,象指针和释放内存等C+功能被删除,避免了非法内存操作。,(,2,)当,Java用来创建浏览器时,语言功能和一些浏览器本身提供的功能结合起来,使它更安全。Java语言在机器上执行前,要经过很多次的测试。其三级安全检验机制可以有效防止非法代码侵入,阻止对内存的越权访问。5,1.2 java,的特点,(3/4),5健壮性,Java致力于检查程序在编译和运行时的错误。异常检查,可尽早的发现可能存在的错误。类型检查帮助检查出许多开发早期出现的错误。,6,解释运行,高效率,Java,解释器(运行系统)能直接运行目标代码指令。,Java,程序经编译器编译,生成的字节码经过精心设计,并进行了优化,因此运行速度较快,客服了以往解释性语言运行效率低的缺点。,1.2 java,的特点,(4/4),7,与平台无关,JAVA,编译器将,JAVA,程序编译成二进制代码,即字节码。字节码有统一的格式,不依赖于具体的硬件环境。,8,多线程,Java,提供的多线程功能使得在一个程序里可同时执行多个小任务。,9,动态性,Java,的动态特性是其面向对象设计方法的发展。它允许程序动态地装入运行过程中所需要的类。,1.2.2,平台无关性,(1/2),平台无关类型包括源代码级和目标代码级两种类型。,C和C+属于源代码级平台无关,意味着用其写的应用程序不用修改只需重新编译就可以在不同平台上运行。,Java属于目标代码级平台无关,主要靠Java虚拟机JVM来实现。,对高级语言的翻译方式有解释和编译两种,解释方式就是一边翻译一边运行,而编译方式则是一次性翻译好,生成目标程序。,1.3,平台无关性,(2/2),解决移植性的方法有以下两种方式:,方式1,:到一台机器上将源程序重新编译成适合该台机器的机器代码。,方式2,:将高级语言源程序编译成一种与机器无关的中间代码(如Java语言的字节码),该中间代码程序不能被操作系统直接执行,需要由解释其来解释和执行。,Java语言采用,方式2,,将由解释程序扩展了的指令系统的机器称为Java虚拟机,简称JVM。,1.2.3 Java,虚拟机,JVM,虚拟机,是一种对计算机物理硬件计算环境的软件实现。虚拟机是一种抽象机器,内部包含一个解释器(,Interpreter,),可以将其它高级语言编译为虚拟机的解释器可以执行的代码(称这种代码为中间语言,Intermediate Language,),实现高级语言程序的可移植性平台无关性(,System Independence,),无论是运行在嵌入式设备还是多个处理器的服务器上,虚拟机都执行相同的指令,所使用的支持库也具有标准的,API,和完全相同或相似的行为。,1.4 Java,虚拟机,JVM,Java虚拟机,(Java Virtual Machine,简称JVM)是一种抽象机器,它附着在具体操作系统上,本身具有一套虚拟机器指令,并有自己的栈,寄存器等,运行JAVA程序不可少的机制。编译后的JAVA程序指令并不直接在硬件系统CPU上执行,而是在JVM执行。在JVM上有一个Java解释器用来解释Java编译器编译后的程序。任何一台机器只要配备了解释器,就可以运行这个程序,而不管这种字节码是在何种平台上生成的。,图,1-1,计算机硬件、操作系统、,JVM,与各种可执行程序之间的关系,机器代码,硬件,操作系统,JVM,本地可执行文件,(,.exe,,,.com,文件),Java,字节码文件,(,.class,文件),1.4 Java,虚拟机,JVM,JVM,体系结构图,类装载器,字节码,解释器,安全管理器,垃圾收集器,线程管理,图形,Java,虚拟机,操作系统,字节码,*,.class,文件,图,1-2 Java,虚拟机体系结构示意图,1.2.4 Java,与,C/C+,之关系,相近之处,Java,中许多基本语句的语法和,C+,一样,像常用的循环语句、控制语句等和,C+,几乎一样,Java,和,C+,是两种完全不同的语言,不同之处(见下页),不同之处,Java,去掉了,C+,语言的许多功能,,Java,中没有,#include,和,#define,等预处理功能,用,import,语来句包含其它类和包;,Java,中没有,structure,,,union,及,typedef,;,Java,中没有不属于类成员的函数,没有指针和多重继承,,Java,只支持单重继承;,Java,中禁用,goto,,但,goto,还是保留的关键字;,Java,中没有操作符重载;,Java,中没有全局变量,可以在类中定义公用、静态的数据成员实现相同功能。,1.3 Java,运行平台,1.3.1 Java,运行平台,1.3.2 Java,开发过程,1.3.3 Java,开发工具箱,(JDK),简介,1.3.1 Java,运行平台,1,三种平台简介,J2SE,:,Java,标准版或,Java,标准平台。,J2SE,提供了标准的,SDK,开发平台(以前称做,JDK,开发平台)。,J2EE,:,Java,企业版或,Java,企业平台。,J2ME,:,Java,微型版或,Java,小型平台。,1.6 Java,运行平台,2环境变量,JAVA_HOME,为那些需要使用Java命令和JVM的程序提供了通用的路径信息,其值应设置为JDK的安装目录的路径,,JAVA_HOME=C:jdk1.5,CLASSPATH,用于指明字节码文件的位置。,CLASSPATH=c:jdk1.5jrelibrt.jar;.,PATH,是操作系统使用的变量,用于搜索在Shell中输入的希望执行的命令。,1.6 Java,运行平台,3JDK1.6,版本安装,从,,网站下载,jdk-6u10-rc2-bin-b32-windows-i586-p-12_sep_2008.exe,,然后安装该程序。,Java,编译器,源文件,编辑器,字节码文件,由,Web,浏览器执行,文件名,.java,产生,对于,Java,小应用程序,对于,Java,应用程序,由,Java,解释器执行,图,1-1 Java,程序开发过程示意图,1.3.2 Java,程序开发过程,1,Java,应用程序的开发,编写源文件,Editplus,等文本编辑器生成,Hello.java,编译源文件生成字节码,javac Hello.java,加载运行字节码,java Hello,Java源程序的命名,特点:,(,1),区分大小写,;,(2)如果在源程序中包含有public类,则该源文件名必须与,该,public类的名字完全一致,;,(3)如果源程序中不包含public类,则该源文件名可以与源文件中包含的任意类的名称一致。,通常将与源文件名相同的类定义为主类,换句话说Java程序文件名必须和主类的名称一致,且扩展名是java。主类按如下确定:,(1)若源文件中存在public类,则该类为主类;,(2)若源文件没有public类,则可定义任何类为主类。,对Application程序而言,,必须有一个类含有public static void main(String args)方法,args是main方法的一个参数,是一个字符串类型的数组(注意String的第一个字母是大写的),通常以包含main方法的类作主类。,也可以将其他类定义为,public,类,并以此作为源程序名称,当在,java,命令后跟随的类参数名应该为包含,main,方法的类名,/Hello.java,public class Hello,public static void main,(,String args,),(,你好,很高兴学习,Java,),;,C:javac Hello.java,C:java Hello,2,Java Applet,程序的开发,编写源文件,Editplus,等文本编辑器,Boy.java,编译源文件生成字节码,javac Boy.java,通过浏览器加载运行字节码,Html,文件,myBoy.html,或,appletviewew myboy.html,/Boy.java,import java.applet.*;,import java.awt.*;,public class Boy extends Applet,public void paint,(,Graphics g,),g.setColor(Color.blue);,g.drawString,(,Java,是一门很优秀的语言,,,12,,,30,),;,g.setColor,(,Color.red,),;,g.drawString,(,我一定认真学习,Java,,,22,,,56,),;,/myBoy.html,C:,javac Boy.java,C:,appletviewew myboy.html,1.3.3 Java,开发工具箱,Java,开发工具箱,(JDK-Java Development Kit),是,Sun,公司为用户提供的集成和执行,applets,和应用程序的工具,javac,编译器:可以用任何文字编辑器创建,Java,程序,java,翻译器,;,用于执行编译过的,Java,应用程序。,appletviewer:,可运行,applets,而不必运行,Web,浏览器。,javap,反汇编程序,:,从字节码文件恢复,java,原代码。,javadoc,工具,:,可以为所编写的源文件生成,HTML,文档,
展开阅读全文