Version3.0第一章Java语言概述2目标•了解Java的特点和优点•了解Java的运行机制•了解Java程序的基本结构•掌握如何编译和运行Java程序3Java发展史•1990年Sun公司的JamesGosling等人开始开发名称为Oak的语言。希望用于控制嵌入在有线电视交换盒、PDA等的微处理器。•1993年交互式电视和PDA市场开始滑坡,而Internet正处于增长时期,因此Sun公司将目标市场转向Internet应用程序。•1994年将Oak语言更名为Java。•1995年Sun公司的HotJava浏览器问世。4什么是JAVA•Java完全面向对象的编程语言。•Java可用来生成两类程序:应用程序、小应用程序(Applet)。•Java既是一种解释执行的语言,也是一种编译执行的语言。5Java的基本特点3-1•简单•面向对象•分布式Java的风格类似于C++,因而对C++程序员而言非常容易掌握Java编程技术;Java摒弃了C++中容易引发程序错误的地方,如指针操作和内存管理;在Java中任何东西都是对象,因此,重点集中在数据以及应用程序中的数据操作方法。Java提供了包容广泛的例程库,可处理像HTTP和FTP这样的TCP/IP协议。Java应用程序可通过一个特定的URL来打开并访问对象,就像访问本地文件系统那样简单。6Java语言提供的安全编译器提供的安全字节码校验器类加载器Java的基本特点3-2•健壮性•安全•体系结构中立•可移植性Java在编译和运行程序时都要对可能出现的问题进行检查它提供自动垃圾收集来进行内存管理面向对象的异常处理机制Java程序被编译成一种与体系结构无关的字节代码只要安装了Java运行时系统Java程序可以在任意的处理器上运行源代码级目标代码级7Java的基本特点3-3•解释执行•高性能•多线程•动态编译器javac将处理.java源文件生成类文件类文件可通过名称为java的加载实用程序解释执行,将Java字节码转换为机器可执行代码。通过JIT编译器首先将字节码编译成固有代码,将结果缓存下来,然后在需要时调用它们。Java语言内置支持多线程的功能Java类库提供了Thread类Java自身的设计使它适合于一个不断发展的环境。在Java类库中可以自由地加入新的方法和实例变量而不会影响用户程序的执行。8Java程序的运行环境编译型源程序字节码程序Java源程序可执行程序EXE裸机操作系统解释器编译连接编译执行解释执行.java.classJava虚拟机Java是解释执行的高级编程语言9Java虚拟机2-1•Java虚拟机是一种利用软件方法实现的抽象化的计算机,基于下层的操作系统和硬件平台,可以在上面执行Java的字节码程序。•Java虚拟机将在内部创建一个运行时系统,帮助以下列方式执行代码:–加载.class文件–管理内存–执行垃圾收集10Java虚拟机2-2•由于硬件平台不一致,因此Java虚拟机使用了堆栈帧的概念,用来存放下列信息:–表示方法状态的帧–字节码操作数–传递给方法的参数–局部变量11实时编译器•使用“实时(JustInTime)”编译器,也称为JIT编译器。可以提高Java代码的执行速度。•SUN公司在Java2发行版中提供了JIT编译器,JIT编译器是Java虚拟机的一部分。•JIT的主要用途是将字节码指令集转换为针对某一特定微处理器的机器代码指令。12Java运行时环境编译时.java(源代码).class(字节码)运行时类加载器字节码校验器解释器JIT代码生成器硬件网络13垃圾收集2-1•Java虚拟机使用两个独立的堆内存,分别用于静态内存分配和动态内存分配。–其中一个是非垃圾收集堆内存,用于存储所有类定义、常量池和方法表。–另一个堆内存再分为两个可以根据要求往不同方向扩展的小块。•用于垃圾收集的算法适用于存放在动态堆内存中的对象。14垃圾收集2-2•垃圾收集器将在收集对象实例之前调用finalize方法。•即使显式调用垃圾收集(System.gc())方法,它也不能保证立即运行。•垃圾收集线程的运行优先级很低所以可能经常会被中断。15Java的编辑环境•JDK是有助于程序员开发Java程序的Java开发工具包包括:–类库–编译器–调试器–Java运行时环境(JRE)16JDK提供的常用工具•javac是用来编译源代码的命令。•java是用于执行类文件的命令,而类文件将在Java虚拟机中运行类。•appletviewer命令允许在万维网浏览器的环境之外运行Applet。17JavaApplication程序基本结构import语句class{publicstaticvoidmain(String[]args){}}主类名称方法体18第一个Java程序//这是名称为“HelloWorld.java”的简单程序importjava.io.*;classHelloWorld{publicstaticvoidmain(Stringargs[]){System.out.println(“欢迎访问Java世界!“);}}单行注释导入必要的包定义类Main函数在控制台上输出19在记事本编辑Java程序单击开始依次选择程序-附件-记事本//这是名称为“HelloWorld.java”的简单程序importjava.io.*;classHelloWorld{publicstaticvoidmain(Stringargs[]){System.out.println(“欢迎访问Java世界!“);}}20编译和运行单击开始依次选择程序-附件-命令提示符进入程序所保存的目录输入命令编译HelloWorld输入命令执行HelloWorld输出结果21JavaAPI文档2-1加载API文档的步骤:1.打开InternetExplorer。2.键入下列URL通过单击相关主题,可以浏览网页。JavaAPI文档是一种非常有用的文档,描述许多java的内置功能,包含类、包、接口等的帮助。22JavaAPI文档2-2选择包选择包中的接口或类可查看相应帮助23总结3-1•Java是一种面向对象的编程语言,主要用于Internet应用程序。•Java可用来生成两类程序:应用程序、小应用程序(Applet)。•Java既是一种解释执行的语言,也是一种编译执行的语言。24总结3-2•Java的特点包括:–简单–面向对象–分布式–健壮性–安全–体系结构中立–可移植性–解释执行–高性能–多线程–动态25总结3-3•Java虚拟机是Java编程语言的核心。•Java运行时环境(JRE)包含一方面与硬件交互、另一方面又与程序交互的JVM。•Java开发工具包有助于开发Java程序。•JDK提供多种工具,这些工具位于JDK的bin目录下,具体如下:–javac–java–appletviewer