1、本章主要内容:1.1 Java 的起源1.2 Java语言的特点1.3 Java的运行机制1.4 程序设计算法及描述1.5 Java程序的开发过程1.1 Java Java 的起源的起源Java与与C语言的关系语言的关系Java语言和C+有着千丝万缕的联系,而C+又是从C语言派生而来的,因此Java语言继承了这两种语言的大部分特性。Java的语法是从C继承的,Java许多面向对象的特性受到C+的影响。Java发展过程发展过程Java是由是由James Gosling领导的一个项目开发小组于领导的一个项目开发小组于1991年在年在Sun Microsystems公司设计出来的。公司设计出来的。1
2、995年年1月,月,Oak被更名为被更名为Java。2009年年4月月Sun公司被公司被Oracle公司收购公司收购 1.2 Java语言的特点语言的特点1、面向对象、面向对象Java是一种面向对象的语言。这里的对象是指应用是一种面向对象的语言。这里的对象是指应用程序的数据及其操作方法。程序的数据及其操作方法。Java的程序设计集中于的程序设计集中于对象及其接口,对象及其接口,Java提供了简单的类机制以及动态提供了简单的类机制以及动态的接口模型,实现了模块化和信息封装。的接口模型,实现了模块化和信息封装。2、简单性、简单性Java 是一种简单的语言。是一种简单的语言。Java语言的设计者尽量
3、语言的设计者尽量把语言的构造规模变小,通过提供最基本的方法来把语言的构造规模变小,通过提供最基本的方法来完成指定的任务。完成指定的任务。Java取消了许多语言中十分繁琐和难以理解的内容,取消了许多语言中十分繁琐和难以理解的内容,例如例如C的指针、运算符重载、类的多继承等等。的指针、运算符重载、类的多继承等等。1.2 Java语言的特点语言的特点3、跨平台、跨平台跨平台是指跨平台是指Java能运行于不同的软件平台和硬件平能运行于不同的软件平台和硬件平台。台。Java引进虚拟机原理,并运行于虚拟机,实现引进虚拟机原理,并运行于虚拟机,实现不同平台的不同平台的Java接口。接口。Java编译器能够产
4、生一种于计算机体系结构无关的编译器能够产生一种于计算机体系结构无关的字节指令(字节指令(Byte Code),只要安装了只要安装了Java虚拟机,虚拟机,Java就可以在相应的处理机上执行。就可以在相应的处理机上执行。4、健壮性、健壮性用用Java编写的程序能够在多种情况下稳定执行,因编写的程序能够在多种情况下稳定执行,因为它在编译和运行时都要对可能出现的问题进行检为它在编译和运行时都要对可能出现的问题进行检查,以防止系统的崩溃查,以防止系统的崩溃。1.2 Java语言的特点语言的特点5、安全性、安全性Java是一种安全的网络编程语言,不支持指针类型,是一种安全的网络编程语言,不支持指针类型,
5、能够避免在指针操作中易产生的错误能够避免在指针操作中易产生的错误。Java的安全性体现在多个层次上:的安全性体现在多个层次上:在编译层,有语法检查。在编译层,有语法检查。在解释层,有字节码校验器,测试代码段格式和规则检查、在解释层,有字节码校验器,测试代码段格式和规则检查、访问权限和类型转换合法性检查、操作数堆栈的上溢和下访问权限和类型转换合法性检查、操作数堆栈的上溢和下溢、代码参数类型合法性等。溢、代码参数类型合法性等。在平台层上,通过配置策略,可设定访问资源域,无须区在平台层上,通过配置策略,可设定访问资源域,无须区分本地或远程。分本地或远程。1.2 Java语言的特点语言的特点6、可移植
6、性、可移植性 Java具备有很好的移植性,这主要得益于它与平台无关的具备有很好的移植性,这主要得益于它与平台无关的特性。同时,特性。同时,Java的类库也能移植。的类库也能移植。7、多线程机制、多线程机制Java具有多线程机制,这使得应用程序能够并行地执行具有多线程机制,这使得应用程序能够并行地执行。8、动态性、动态性Java比比C语言更有动态性,更能适应不断变化的环境。语言更有动态性,更能适应不断变化的环境。9、函数式编程、函数式编程新加入的函数式编程特性在并发和事件驱动编程中体现出新加入的函数式编程特性在并发和事件驱动编程中体现出很大的开发效率。很大的开发效率。1.3 Java的运行机制的
7、运行机制1、Java程序与程序与Java虚拟机虚拟机Java编译器的输出采用了字节码形式。编译器的输出采用了字节码形式。Java运行时系统称为运行时系统称为Java虚拟虚拟机机(JavaVirtual Machine,JVM),JVM 就是一个字节码解释器。就是一个字节码解释器。将一个将一个JavaJava源程序编译成字节码文件,然后由源程序编译成字节码文件,然后由JavaJava虚拟机来执行这个虚拟机来执行这个字节码文件。利用字节码文件。利用JavaJava虚拟机就可以把虚拟机就可以把JavaJava字节码程序跟具体的操作字节码程序跟具体的操作系统及硬件平台分隔开来。我们只要在各种平台上都实
8、现系统及硬件平台分隔开来。我们只要在各种平台上都实现JavaJava虚拟机,虚拟机,任何任何JavaJava程序就可以在该系统上运行。程序就可以在该系统上运行。图图1.1 Java程序与虚拟机程序与虚拟机1.3 Java的运行机制的运行机制2、运行机制、运行机制Java虚拟机是虚拟机是Java语言的基础,它是语言的基础,它是Java技术的重要组成部分。技术的重要组成部分。Java虚拟机是一个抽象的计算机,它具有一个指令集并使用不同的存虚拟机是一个抽象的计算机,它具有一个指令集并使用不同的存储区域。它负责执行指令,还要管理数据、内存和寄存器。储区域。它负责执行指令,还要管理数据、内存和寄存器。J
9、ava解释解释器负责将字节代码翻译成特定机器的机器代码。器负责将字节代码翻译成特定机器的机器代码。Java技术由技术由Java源程序、源程序、Java字节码文件、字节码文件、Java虚拟机和虚拟机和Java类库类库(Java API)等四个方面组成。等四个方面组成。Java又可分为编译环境和运行期环境。又可分为编译环境和运行期环境。图图1.2Java技术的组成技术的组成在在Java编译环境编译环境,编写好一个,编写好一个Java源程序(源程序(.Java),经),经Java编译器编译器编译成字节码文件(编译成字节码文件(.class)后,保存在磁盘。)后,保存在磁盘。在在Java运行期环境运行
10、期环境,首先通过类装载器把编译好的字节码文件,首先通过类装载器把编译好的字节码文件*.class及源程序中所引用了的类库及源程序中所引用了的类库Java API的字节码文件一并装载到内存方的字节码文件一并装载到内存方法区。法区。1.4 程序设计算法及描述程序设计算法及描述 一般说来,利用高级语言编程、解决具体问题时,要经过若干一般说来,利用高级语言编程、解决具体问题时,要经过若干步骤,主要有:分析具体问题、确定算法、编程、编辑、编译步骤,主要有:分析具体问题、确定算法、编程、编辑、编译和运行。和运行。什么是算法呢,简单地说,程序设计算法就是用计算机解决问什么是算法呢,简单地说,程序设计算法就是
11、用计算机解决问题的方法和步骤。题的方法和步骤。描述算法的方法有很多,主要有:自然语言、流程图、盒图、描述算法的方法有很多,主要有:自然语言、流程图、盒图、伪代码、程序语言等。伪代码、程序语言等。流程图的基本符号如图1.3所示。图图1.3 流程图的基本符号流程图的基本符号用流程图表示的三种基本结构如图用流程图表示的三种基本结构如图1.4所示所示 图图1.4 三种基本控制结构三种基本控制结构1.5 Java程序的开发过程程序的开发过程1.5.1 JDK的下载与安装的下载与安装1、JDK的下载的下载 到到Oracle公司的官方网站下载公司的官方网站下载Java JDK(Java SE Develop
12、ment Kit,简称,简称JDK)最新版本,免费。最新版本,免费。2、Java的安装的安装Java JDK安装后的目录结构安装后的目录结构1.5.1 JDK的下载与安装的下载与安装3、Java开发环境的配置开发环境的配置环境变量的配置可以从桌面上的“计算机”图标(点击右键)选择“属性”菜单项弹出“系统属性”对话框选择“高级系统设置”项选择“高级”选项卡单击“环境变量”按钮,再在其中选择“系统变量”的“新建”,然后在变量名中输入:“CLASSPATH”,在变量值输入:“.;C:JavaJDKlibdt.jar;C:JavaJDKlibtools.jar”,最后选择确定。再用相同的办法,建立变量
13、名“PATH”,其变量值为:“C:JavaJDKbin”(若path已有值则加入该值)。1.5 Java程序的开发过程程序的开发过程1.5.2 Java工具集与标准类库工具集与标准类库1、Java工具集工具集 Java为我们提供了创建和运行为我们提供了创建和运行Java程序的工具,安装了程序的工具,安装了Java的的JDK后,这些工具都存放在后,这些工具都存放在bin目录下。目录下。工具名称工具名称说明说明javacjavacJavaJava编译器,用于将编译器,用于将JavaJava源程序编译成源程序编译成字节码文件字节码文件javajavaJavaJava解释器,用于解释执行解释器,用于解
14、释执行JavaJava字节码字节码文件文件appletviewerappletviewerAppletApplet程序浏览器,用于测试和运行程序浏览器,用于测试和运行AppletApplet程序程序javadocjavadocJavaJava文档生成器文档生成器1.5.2 Java工具集与标准类库工具集与标准类库2、Java API在在Java API中主要包括:核心中主要包括:核心Java包、包、javax扩展包和扩展包和org扩扩展包。展包。其中:核心其中:核心Java包包java.lang包:封装了所有应用所需的基本类。java.awt包:封装了提供用户图形界面功能的抽象窗口工具类。ja
15、va.applet包:封装了执行Applet应用程序所需的类。java.io包:封装了提供输入输出功能的类。包:封装了提供网络通信功能的类。java.sql包:封装了提供管理和处理数据库功能的类。java.math包:封装了常用数学运算功能的类。1.5.2 Java工具集与标准类库工具集与标准类库3、Java帮助文档帮助文档Java提供了非常完善的提供了非常完善的Java API文档文档。其网址为其网址为http:/ Java程序的开发过程程序的开发过程1.5.3 Java程序的开发过程程序的开发过程1、建立、建立Java 源文件开发一个源文件开发一个Java程序必须遵循下程序必须遵循下述基本
16、原则:述基本原则:(1)Java区别大小写,即Public 和public是不同的标识符。(2)用花括号将多个语句组合在一起,语句之间必须用分号隔开。(3)一个可执行的应用程序必须包含下述基本框架:(4)用上述框架的程序必须用文件名Test.java保存起来,即文件名必须与Public class 后的类名相同(包括相同的大小写),并使用.java作为扩展名。public class Testpublic class Test public static void main(String args)public static void main(String args);/;/程序代码程序代码
17、 1.5.3 Java程序的开发过程程序的开发过程2、编译源文件、编译源文件“编译编译”是将一个源代码文件翻译成计算机可以理解和是将一个源代码文件翻译成计算机可以理解和处理的格式的过程。处理的格式的过程。Java源程序编译后会生成一个字节源程序编译后会生成一个字节码文件,即带扩展名码文件,即带扩展名.class的文件。的文件。(1)点击桌面的)点击桌面的“开始开始”菜单,选择菜单,选择“运行运行”,输入,输入“cmd”命令,则打开命令,则打开Windows系统的命令控制台窗口。系统的命令控制台窗口。1.5.3 Java程序的开发过程程序的开发过程2、编译源文件、编译源文件(2)在命令控制台窗口
18、中,在提示符)在命令控制台窗口中,在提示符“D:jtest”后后面输入编译命令面输入编译命令javac:javac Test.java注意:如果当前目录不是注意:如果当前目录不是“D:jtest”,则应使用,则应使用“cd”命命令,进入到该目录。令,进入到该目录。如果编译成功,编译器就在包含如果编译成功,编译器就在包含Test.java文件所在的同一个文件所在的同一个目录下建立一个目录下建立一个Test.class字节码文件。字节码文件。1.5.3 Java程序的开发过程程序的开发过程3、执行字节码文件、执行字节码文件通过通过Java解释器解释器java运行上述独立应用程序,可使用如下运行上述
19、独立应用程序,可使用如下命令:命令:D:jtestjava Test(按(按Enter键)键)注意,命令行中的注意,命令行中的Test后面没有带扩展名。后面没有带扩展名。1.5.3 Java程序的开发过程程序的开发过程4、编译时出错处理、编译时出错处理 如果程序中有错误,编译时系统会提示程序第几行出现错如果程序中有错误,编译时系统会提示程序第几行出现错误。误。1.5.3 Java程序的开发过程程序的开发过程5、源文件命名规则、源文件命名规则(1)如果源文件中只有一个类,那么源文件的名字必须)如果源文件中只有一个类,那么源文件的名字必须与这个类的名字完全相同,扩展名为与这个类的名字完全相同,扩展
20、名为.java;(2)如果源文件中有多个类,那么这些类中只能有一个)如果源文件中有多个类,那么这些类中只能有一个类在其类名前加上类在其类名前加上public,这时,源文件的名字与这个类,这时,源文件的名字与这个类的名字完全相同,扩展名为的名字完全相同,扩展名为.java;(3)如果源文件中没有)如果源文件中没有public类,则源文件的名字可以类,则源文件的名字可以与其中的任意一个类名相同,扩展名为与其中的任意一个类名相同,扩展名为.java。(4)类名一般以大写英文字母开头,后面可以是字母、)类名一般以大写英文字母开头,后面可以是字母、数字等符号。类名的第一个字符不能是数字。数字等符号。类名
21、的第一个字符不能是数字。1.5.4 Java程序示例程序示例【例例1-1】在命令窗口中显示输出内容的程序。在命令窗口中显示输出内容的程序。(1)用编辑工具编写程序)用编辑工具编写程序 class Example1_1class Example1_1 public static void main(String args)public static void main(String args)System.out.println(Java System.out.println(Java 语言入门很简单。语言入门很简单。nn明白了吗明白了吗?);?);将编写好的源程序保存为将编写好的源程序保存为E
22、xample1_1.java。1.5.4 Java程序示例程序示例【例例1-1】在命令窗口中显示输出内容的程序。在命令窗口中显示输出内容的程序。(2)编译程序:)编译程序:javac Example1_1.java 编译后,系统自动生成一个编译后,系统自动生成一个Example1_1.class字节码文件字节码文件。1.5.4 Java程序示例程序示例【例例1-1】在命令窗口中显示输出内容的程序。在命令窗口中显示输出内容的程序。(3)执行程序:)执行程序:java Example1_1 其运行结果在命令窗口中显示其运行结果在命令窗口中显示。1.5.4 Java程序示例程序示例【例例1-1】在命
23、令窗口中显示输出内容的程序。在命令窗口中显示输出内容的程序。(4)程序说明:)程序说明:1.5.4 Java程序示例程序示例【例例1-2】输出语句输出语句System.out.println()有有“原样照印原样照印”及简单计算功能及简单计算功能。(1)用编辑工具编写程序)用编辑工具编写程序 class Example1_2class Example1_2 public static void main(String args)public static void main(String args)System.out.println(“System.out.println(“5+3=”,(5
24、+3););将编写好的源程序保存为将编写好的源程序保存为Example1_2.java。用双引号括起来用双引号括起来的的“5+3=”将按原将按原样显示,称为样显示,称为“原样照印原样照印”。而没有用双引号而没有用双引号括起来的括起来的(5+3)将将进行加法计算。进行加法计算。1.5.4 Java程序示例程序示例【例例1-2】输出语句输出语句System.out.println()有有“原样照印原样照印”及简单计算功能及简单计算功能。(2)编译程序:)编译程序:javac Example1_2.java 编译后,系统自动生成一个编译后,系统自动生成一个Example1_2.class字节码文件字
25、节码文件。1.5.4 Java程序示例程序示例【例例1-2】输出语句输出语句System.out.println()有有“原样照印原样照印”及简单计算功能及简单计算功能。(3)执行程序:)执行程序:java Example1_2 其运行结果在命令窗口中显示其运行结果在命令窗口中显示。1.5.4 Java程序示例程序示例【例例1-3】应用输出语句的应用输出语句的“原样照印原样照印”功能,功能,输出一个用输出一个用“*”号组成的三角形号组成的三角形。(1)用编辑工具编写程序)用编辑工具编写程序 class Example1_3class Example1_3 public static void
26、main(String args)public static void main(String args)System.out.println(“System.out.println(“*”);”);System.out.println(“System.out.println(“*”);”);System.out.println(“System.out.println(“*”);”);System.out.println(“System.out.println(“*”);”);将编写好的源程序保存为将编写好的源程序保存为Example1_3.java。1.5.4 Java程序示例程序示例【例例
27、1-3】应用输出语句的应用输出语句的“原样照印原样照印”功能,功能,输出一个用输出一个用“*”号组成的三角形号组成的三角形。(2)编译程序:)编译程序:javac Example1_3.java 编译后,系统自动生成一个编译后,系统自动生成一个Example1_3.class字节码文件字节码文件。1.5.4 Java程序示例程序示例【例例1-3】应用输出语句的应用输出语句的“原样照印原样照印”功能,功能,输出一个用输出一个用“*”号组成的三角形号组成的三角形。(3)执行程序:)执行程序:java Example1_3 其运行结果在命令窗口中显示其运行结果在命令窗口中显示。1.5.4 Java程
28、序示例程序示例【例例1-4】在对话框窗体中显示输出内容在对话框窗体中显示输出内容。(1)用编辑工具编写程序)用编辑工具编写程序 import javax.swing.JOptionPane;class Example1_4class Example1_4 public static void main(String args)public static void main(String args)JOptionPane.showMessageDialog(null,在对话框窗在对话框窗体中显示输出内容体中显示输出内容!););System.exit(0);/退出程序退出程序 将编写好的源程序保存为将编写好的源程序保存为Example1_4.java。显示对话框窗口。显示对话框窗口。1.5.4 Java程序示例程序示例【例例1-4】在对话框窗体中显示输出内容在对话框窗体中显示输出内容。(2)编译程序:)编译程序:javac Example1_4.java 编译后,系统自动生成一个编译后,系统自动生成一个Example1_4.class字节码文件字节码文件。1.5.4 Java程序示例程序示例【例例1-4】在对话框窗体中显示输出内容在对话框窗体中显示输出内容。(3)执行程序:)执行程序:java Example1_4 其运行结果在命令窗口中显示其运行结果在命令窗口中显示。