420 likes | 678 Views
Java 程序设计基础. 软件学院 张红梅 nmgzhm@163.com. www.avceit.cn. 我们为什么要学习 Java ?. 《JAVA 语言程序设计 》 是计算机类课程的重要专业基础课,是 JSP 、 JAVA 项目设计等课程的前导课程, 也是一门实践性很强的课程,既要掌握概念,又要动手编程,还要上机调试运行。 对计算机专业来说是一门必修的课程,同时, 这门课程也是“全国计算机水平考试”二级考试的主要语种之一。. 我们为什么要学习 Java ?. Java 目前是 Internet 上最流行的编程语言。
E N D
Java程序设计基础 软件学院 张红梅 nmgzhm@163.com www.avceit.cn
我们为什么要学习Java? • 《JAVA语言程序设计》是计算机类课程的重要专业基础课,是JSP、JAVA项目设计等课程的前导课程, 也是一门实践性很强的课程,既要掌握概念,又要动手编程,还要上机调试运行。 • 对计算机专业来说是一门必修的课程,同时, 这门课程也是“全国计算机水平考试”二级考试的主要语种之一。
我们为什么要学习Java? • Java目前是Internet上最流行的编程语言。 • 2009年2月Tiobe编程语言排行榜发布,Java仍然位居首位,C语言次之。 • 据 InternetWeek 的调查发现,同样从事程序开发,在美国Java程序开发人员的平均年薪最高,基本年薪为7万美元;C++、C和COBOL程序开发人员的平均年薪为6.6万美元,而Visual Basic程序开发人员最低,约为5.8万美元。
教材和教辅: • 自编教材 • CSDN论坛 http://www.csdn.net/中国最有名的技术论坛,《程序员》杂志就是他们出版的,你可以在上面提出问题,马上就有人回答你,如果你觉得好,你可以给那人加分; • Java研究组织 http://www.javaresearch.org/上面有很多原创文章,高手很多; • Java开发者 http://www.chinajavaworld.com/ Java资料比较全; • Java论坛 http://www.ojava.net/ • 百度知道 http://www.baidu.com/
教学课题:第1章 Java语言概述 教学目的: • 知道为什么要学习Java • Java的产生和应用 • 熟悉Java的开发工具和开发环境 • 理解Java application与Java applet的联系与区别 • 理解Java的工作机制及平台无关性
教学难点: • 理解Java的工作机制 教学重点: • 熟悉Java开发工具的使用 教学过程: • 引导(略) • 讲授新课
1 Java的发展与应用 2 Java的开发工具与开发环境 3 Java程序的初步了解 Java 的工作机制和基本特点 4 第1章 Java语言概述 Contents
1.1 Java的发展与应用 • Java来自于Sun公司的一个叫Green的项目。最初是为小家电开发一个分布式代码系统,可以把E-mial发给电视机、电话等家用电器,对它们进行控制和信息交流,开始,准备采用C++,但C++太复杂,安全性差,最后开发了一种新的语言Oak(Java的前身)。 • 由于这些智能化家用电器的市场需求当时没有预期的高,Sun放弃了该项计划。就在Oak几近夭折之时,Internet异常火爆起来。Sun看到了Oak在计算机网络上的广阔应用前景,他们改造了Oak,将Oak 技术应用于Web 上,并且开发出了HotJava 的第一个版本,并于1995年5月发表,在产业界引起了巨大的轰动,Java的地位也随之得到肯定。
又经过一年试用和改进, Java1.0(JDK1.0)终于在1996年初正式发布,从而引发了遍及全球、至今未衰的Java 热潮。用Java可以编写嵌入在Web网页中运行的Java Applet小程序,也可以编写独立运行的Java Application。Java是当今十分流行的网络编程语言。Java语言的出现被称作是一场软件革命。
1.2 Java的开发工具与开发环境 • JDK即Java Develop Kit,Java开发工具包 • JDK由一个标准类库和一组建立、测试及建立文档的Java实用程序组成,其核心Java API(应用程序接口)是一些预定义的类库,开发人员需要用这些类来实现Java语言的功能。Java API包括一些重要的语言结构以及基本图形、网络和文件的输入和输出(简记为I/O)。一般来说,Java API的非I/O部分对于运行Java的所有平台是相同的,而I/O部分则仅在通用Java环境中实现。
JRE即Java runtime environment,Java运行环境 • 通常已包含在J2SDK中了,如果我们仅仅是为了运行JAVA程序,而不是从事java开发,我们可以直接下载JRE安装。 • JDK按其应用环境的不同,可分为: • J2SE(Java标准版):开发桌面程序和小程序 • J2EE(Java企业版):开发企业级程序 • J2ME(Java微型版):开发手机、机顶盒程序
许多Java专家认为,初学Java应当使用JDK开发环境。虽然JDK的界面不如一些可视化工具友好,许多编程人员通常都使用第三方的开发工具,但它却是各种开发环境的基础。因此,JDK仍被当作Java开发的重要工具。许多Java专家认为,初学Java应当使用JDK开发环境。虽然JDK的界面不如一些可视化工具友好,许多编程人员通常都使用第三方的开发工具,但它却是各种开发环境的基础。因此,JDK仍被当作Java开发的重要工具。 • 还可以使用JCreator或JBuilder 来编辑、运行Java程序。 • JCreator的设计接近Windows界面风格,用户对它的界面比较熟悉。其最大特点是与我们机器中所装的JDK完美结合,是其它任何一款IDE所不能比拟的。它是一种初学者很容易上手的java开发工具,缺点是只能进行简单的程序开发,不能进行企业J2EE的开发应用。 • JBuilder环境开发程序方便,它是纯的Java 开发环境,适合企业的J2EE开发;缺点是往往一开始人们难于把握整个程序各部分之间的关系,对机器的硬件要求较高,比较 吃内存,这时运行速度显得较慢。
1.2.1 JDK的下载与安装 • JDK下载网址:http://java.sun.com/。 • 在页面右边Popular Downloads栏中可看到最新版的JDK软件包,这里显示为“J2SE1.6.0 JDK”(当前版本)。 • 打开“J2SE1. 6.0 JDK”超链接,单击“Windows Offline Installation, Multi-language”超链接,开始下载“jdk-6-windows-i586(1).exe”。 • 运行下载的“jdk-6-windows-i586(1).exe”软件包,可安装JDK,系统默认的安装路径为:C:\Program Files\Java,默认组件选择是全部安装。
1.2.2 JDK的环境配置 • 在使用JDK以前,必须配置环境变量。下面以Windows 2000/XP系统为例说明。 • 右键单击“我的电脑”,选择“属性”,点击“高级”按钮,选择“环境变量”按钮,打开的对话框如图1.1所示,找到变量名“PATH”,选中后,点击“编辑”按钮,增加路径“C:\j2SDK1.4.2_10\bin”,如图1.2所示;新建变量名“CLASSPATH”,设置路径为“.;C:\J2SDK1.4.2_10\lib”,如图1.3所示。
1.2.3 JDK的主要开发工具 • Java JDK包括了所有编译、运行Java程序所需要的工具:Java基本组件、库、Java编译器、Java解释器、小应用程序浏览器等。这些工具都在Java JDK安装目录下的bin子目录里,以下为一些基本的工具: • 1.Java编译器javac.exe • Java编译器将以“.java”为扩展名的Java源程序文件编译成类文件(扩展名:“.class”)。语法格式为: • javac [选项] 源程序文件名 • 源程序文件名的扩展名.java不能省略。 • 例如:javac Hello.java • 2.Java解释器 java.exe • Java解释器用于执行编译过的Java应用程序的类文件。 • 语法格式为: • java [选项] 类名 • 类文件名的扩展名.class可略去。 • 例如:java Hello • 3.Applet浏览器:appletviewer.exe • Applet浏览器用于运行Java Applet程序。
4.Java反编译器:javap.exe • Java反编译器用于显示编译后的字节码。 • 语法格式为: • javap [选项] 类名 • 5.C头文件创建器:javah.exe • 是用于当需要使用C语言扩展Java代码时创建C语言头文件。 • 语法格式为: • javah [选项] 类名 • 6.Java文档生成工具:javadoc.exe • 它是用于在Java源文件中生成基于标志的HTML文件。 • 7.Java调试器:jdb.exe • 它是Java环境的调试工具。
1.3 Java程序的初步了解 • Java程序的开发环境和运行环境准备好以后,就可以开始编写Java程序了。要编写Java 程序,需要有有文本编辑器。可以使用操作系统提供的记事本作为编辑器,也可选择EditPlus、UltraEdit等编辑软件,它使用不同颜色显示Java 的关键字和类名,简单好用。
1.3.1 编写Java源程序 Java程序分为应用程序(Application)和小程序(Applet),下面分别进行介绍。 1. Java应用程序举例 【例1.1】 在屏幕上显示文字“欢迎你学习Java语言!”的应用程序。 打开一个文本编辑器,输入以下代码: /*Hello.java*/ public class Hello{ //一个Application public static void main(String args[]){ System.out.println(” 欢迎你学习Java语言!”); } }
2. Java小程序举例 【例1.2】显示文字“欢迎你学习Java语言!”的小程序。 /*HelloApplet.java*/ import java.awt.Graphics; import java.applet.Applet; public class HelloApplet extends Applet{ //一个Applet public void paint(Graphics g){ g.drawString(“欢迎你学习Java语言!”,20,20); } }
注意: • Application程序中含有main()方法,是程序执行的入口,一般在本地或服务器上由Java解释器解释执行;而Applet程序中没有main()方法,由小程序查看器或含有Java解释器的浏览器下载执行,这是Applet与Application主要区别之一。
3. Java程序结构 • 从上述例子可以看出,Java程序是由类构成的, • 对于应用程序来说,必须在一个类中定义有main()方法,包含main()方法的类是该应用程序的主类; • 对于小程序来说,主类必须作为Applet类或JApplet类的子类。 • Java源程序的书写规则: (1)文件命名规则 • 若Java文件包含一个public类,则该一定要以该类的名称来命名文件。且Java对字母的大小写是敏感的,类名与程序文件名的大小写也要一致。 • 源程序中定义的类名其首字母最好大写,以区别变量。
(2)类个数的规定 • 一个源文件中最多只有一个public类,其他类的个数不限。 (3)其他内容 • package语句://包语句,0个或1个,必须放在文件开始位置 • import语句://导入语句,0个或多个,必须放在所有类定义之前 • interfaceDefinition://接口定义,0个或多个 • public classDefinition://public类定义,0个或1个,必须与文件同名 • classDefinition://类定义,0个或多个 注意:在书写源程序时,最好采用分层次缩进方式书写,有助于增加程序的可读性。
1.3.2 编译Java源程序 • Java源程序编写后,要使用Java编译器(javac.exe)进行编译,将Java源程序编译成可执行的程序代码。 • Java源程序进行语法检查,如果出现问题就中止编译,显示错误错误信息。语法检查通过后,生成可执行程序代码——字节码,扩展名为class。 • 在命令提示符窗口或MS-DOS窗口进入源程序所在目录,然后输入:javac+要编译的源程序文件名。 • 例如,要编译例1.1中的源程序文件Hello.java,输入命令:javac Hello.java,命令执行过程中,如果源程序没有错误,则屏幕上没有输出,这时会在相应的目录中生成一个同名字的class文件Hello.class;例1.2同样处理。
1.3.3 运行Java程序 • 对于编译生成的字节码文件(.class),要使用Java解释器解释为本地的计算机代码来执行。应用程序和小程序的运行方式不同。 1. 运行应用程序 • 使用Java解释器(java.exe)可将由应用程序Hello.java编译生成的字节码文件Hello.class解释为本地的计算机代码。
2. 运行小程序 • Web浏览器或小程序查看器都有内置的解释器(Java虚拟机),并负责提供Applet所需要的图形界面。 • 对于Applet小程序经编译生成的字节码文件(.class),由于Applet中没有main()方法作为Java解释器的入口,它本身不能单独运行,必须嵌入到HTML(Hyper Text Markup Language超文本标记语言)文件中,借助于浏览器或小程序查看器来解释执行,所以要首先编写创建同名字的.html(或.htm)文件。
例如,对于字节码文件HelloApplet.class编写的HTML文件如下:例如,对于字节码文件HelloApplet.class编写的HTML文件如下: <html> <head> <title>Applet</title> </head> <body> <applet code=HelloApplet.class width=200 height=40> </applet> </body> </html> 启动小程序HelloApplet.class,显示区域为:200*40
把该HTML文件以HelloApplet.html命名保存,然后可利用小程序查看器或浏览器来解释执行。 • 在命令提示符窗口或MS-DOS窗口输入小程序查看器文件名和含有Applet字节码的HTML文件名:appletviewer HelloApplet.html,按回车键即可。
1.4.1 Java的工作机制 • 首先编写好源代码文件(.java) • 然后经编译生成一种二进制的字节码文件(.class) • 最后再通过Java解释器来解释执行编译生成的字节码。 • 虽然不同的平台环境需要有各自相应的解释器,但是任何一个平台上的解释器,对于一段Java程序的字节码来说却是相同的,它们对Java字节码呈现完全相同的面貌。也就是说,Java的运行机制是利用解释器来隐藏网络上平台环境的差异性。由此可见,Java实现了二进制代码级的可移植性,在网络上实现了跨平台的特性。
Java的解释器又称为“Java虚拟机(简称JVM,Java Virtual Machine)”,是在物理机上用软件模拟出来的虚拟机,即为驻留于计算机内存的虚拟计算机,实际上是一段负责解释执行Java字节码的程序软件。通常Java应用程序,JVM和硬件具有这样的层次关系: Java应用程序 ------------------------- JVM ------------------------- 硬件
中间层的JVM,相当于一层软件屏蔽,将底层硬件的不一致屏蔽掉,向上层提供了相同的java运行环境。Java的可移植性就是通过JVM实现的。中间层的JVM,相当于一层软件屏蔽,将底层硬件的不一致屏蔽掉,向上层提供了相同的java运行环境。Java的可移植性就是通过JVM实现的。 • JVM能够从字节码流中读取指令并解释指令的含义,每条指令都含有一个特殊的操作码,JVM能够识别并执行它。从这个意义上说,Java可以被称为是一种“解释型”的高级语言。高级语言的解释器(或称解释程序)对程序边解释边执行,执行效率低,因此,与在操作系统下运行的C或C++等“编译型”语言程序相比,运行Java程序要慢得多,这是Java语言的一个不足。 • Java解释器作为一个独立的应用程序,在操作系统下直接启动,可以解释执行Java应用程序;如果Java解释器包含在一个浏览器内部,则该浏览器能够下载并解释执行Java小程序。
为什么要用JAVA?(1.4 .2 JAVA的特点) • 简单的 • 面向对象的 • 分布式的 • 健壮的 • 安全的 • 解释的 • 与平台无关的 • 多线程的 • 动态的语言
为什么要用JAVA?(JAVA的特点) • 简单的 Java的风格类似与C++,可以说Java是C及C++的一个变种,因此学习C语言后,可以很快地掌握Java编程技术。 Java摒弃了C中容易引发程序错误的一些特性,如指针、结构、枚举等。 Java提供了丰富的类库,可以帮助我们很方便的开发Java程序。
为什么要用JAVA?(JAVA的特点) • 面向对象的 面向对象是JAVA最重要的特性,支持继承、重载、多态等面向对象的特性。 • 健壮的 JAVA提供了类型检查机制和垃圾内存回收机制。 • 分布式的 JAVA提供了大量的系统模块支持基于TCP/IP协议的编程,使Java应用程序可以像访问本地文件系统那样通过URL 访问远程对象,非常适合于分布式系统的开发。
为什么要用JAVA?(JAVA的特点) • 安全的 JAVA的安全性从两个方面得到保证: 一方面,JAVA删除了指针和释放内存等功能,避免了非法内存操作。 另一方面,通过JAVA的安全体系架构来确保JAVA代码的安全性。当在本地执行从网上下载的JAVA代码是,Java的安全架构能够确保恶意的代码不能随意访问我们本地计算机的资源,如:删除文件,访问本地网络资源等操作都是被禁止的。
为什么要用JAVA?(JAVA的特点) • 解释的 JAVA代码是解释执行的,我们使用JAVA编译器将JAVA代码编译成字节码,这是一种中间代码,然后由JAVA解释器解释执行。而C程序是编译执行的,C程序代码被编译为本地机器指令,然后执行。 • 与平台无关的 JAVA源程序被编译成一种与机器无关的字节码格式,在JAVA虚拟机上运行。
为什么要用JAVA?(JAVA的特点) • 多线程的 JAVA的一个重要特性就是在语言级支持多线程的程序设计。多线程就好像我们做一张桌子,如果你一个人完成这张桌子,就是单线程,所有的工作都要你一个人完成;如果有5个人来做桌子,就是多线程,1个人做桌面,另外4个人分别做桌子腿。那么这两种方式效率的高低,相信大家都能区分出来。
为什么要用JAVA?(JAVA的特点) • 动态的 JAVA的动态性是其面向对象设计方法的扩展。它允许程序动态地装入运行过程中所需要的类,甚至可以通过网络进行装载。
本章小结 • 本章主要介绍了Java的发展、应用与主要特点,简单说明了Java开发工具Java JDK软件包的下载和开发环境JDK的设置方法,概括介绍了Java程序的结构及其运行方法。 • 重点掌握java程序的结构及在JDK运行环境中的执行过程。
作业: P11 2,3
Thank You ! www.avceit.cn