收藏 分享(赏)

ch01 - Java简介.ppt

上传人:dreamzhangning 文档编号:3660561 上传时间:2018-11-15 格式:PPT 页数:75 大小:1.20MB
下载 相关 举报
ch01 - Java简介.ppt_第1页
第1页 / 共75页
ch01 - Java简介.ppt_第2页
第2页 / 共75页
ch01 - Java简介.ppt_第3页
第3页 / 共75页
ch01 - Java简介.ppt_第4页
第4页 / 共75页
ch01 - Java简介.ppt_第5页
第5页 / 共75页
点击查看更多>>
资源描述

1、Java语言程序设计,郑州大学信息工程学院 王振飞 2012.8,TIOBE世界编程语言排行榜2011年3月榜单,参考书目,Java语言程序设计.基础篇(原书第8版),李娜(译)机械工业出版社,2011-6 Java语言程序设计(第2版),郎波 清华大学出版社 2010-9 Java语言程序设计 辛运帏,人民邮电出版社 2009-10 Java EE基础实用教程 郑阿奇 电子工业出版社 2011-2 Java Web程序设计教程 范立锋 人民邮电出版社 2010-4,教材,Java 语言程序设计 基础 原书第8版(美)Y. Daniel Liang 机械工业出版社给大家提供英文版电子书,学习编

2、程语言的方法,一个程序设计高手从来不是看书看出来的,而是上机动手练出来的!,The best way to start programming is to have a terminal running an interactive language and a friend sitting nearby who already knows the language and has something else to do but can be interrupted with questions. And you just try stuff, till more and more you

3、get the feel of it. And you find yourself writing programs that work. Nelson, Ted, Computer Lib, Microsoft Press, 1987,Java程序设计,第1章 Java语言简介,学习目标,了解Java及其发展史 掌握创建、编译、运行Java程序 理解Java运行环境 掌握编写简单的应用程序 掌握在控制台和对话框中显示数据,它最初被命名为Oak,目标设定在家用电器等小型系统的编程语言,来解决诸如电视机、电话、闹钟、烤面包机等家用电器的控制和通讯问题。由于这些智能化家电的市场需求没有预期的高,S

4、un放弃了该项计划。就在Oak几近失败之时,随着互联网的发展,Sun看到了Oak在计算机网络上的广阔应用前景,于是改造了Oak,以“Java”的名称正式发布。 Java是一个面向对象的程序设计语言,它继承了 C+ 面向对象技术的核心,舍弃了C+中容易引起错误的指针(以引用取代)、多重继承(以接口取代)等特性,增加了垃圾回收等功能(用于回收不再被引用的对象所占据的内存空间,使程序员不再为内存管理担忧)。,Java History,Java History,Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码,然后依赖各种不同平台上的虚拟机来解释执行字节码

5、,从而实现了“一次编译、到处执行”的跨平台特性。不过,每次的编译执行需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。但在 J2SE 1.4.2 发布后,Java 的执行速度有了大幅提升。,JAVA名字的起源,Java的名字的来源:Java是印度尼西亚爪哇岛的英文名称,因盛产咖啡而闻名。Java语言中的许多库类名称,多与咖啡有关,如JavaBeans(咖啡豆)、NetBeans(网络豆)以及ObjectBeans (对象豆)等等。SUN和JAVA的标识也正是一杯正冒着热气的咖啡。,Java与C/C+的区别,Java中对内存的分配是动态的 Java不在所有类之外定义全局变

6、量,而是在某个类中定义一种公用静态的变量来完成全局变量的功能。 Java不用goto语句,而是用try-catch-finally异常处理语句来代替goto语句处理出错的功能。 Java不支持头文件 Java不支持宏定义,而是使用关键字final来定义常量 Java对每种数据类型都分配固定长度。 类型转换时要进行类型相容性检查。 不包含结构和联合。 Java不再使用指针 避免平台依赖,Java语言的问世,Sun公司在“Java白皮书”中是这样对Java进行定义的:Java:A simple,object-oriented,distributed,interpreted,robust,secur

7、e,architecture-neutral,portable,high-performance,multi-threaded,and dynamic language。,即Java是一种具有:,简单的、,面向对象的、,分布式的、,解释型的、,强壮的、,安全的、,体系结构中立的、,可移植的、,高性能的、,多线程的、,动态的语言。,Java的特征,简单 面向对象 分布式 解释性 健壮性 安全性 与体系结构无关 可移植性 高性能 多线程,特性之一简单性,Java语言的简单性主要出于如下几种因素:,Java的风格类似于C+. 因而对C+程序员而言是非常熟悉的;从某种意义上讲,Java语言本身是C及C

8、+的一个变种,因此,C+程序员可以很快掌握Java编程技术;,Java摒弃了C+中容易引发程序错误的地方,如指针和内存管理;,Java提供了自动内存垃圾搜集机制,从而减轻了编程人员进行内存管理的负担,有助于减少软件错误;,Java是完全面向对象的,它是最容易学习的面向对象编程语言之一,同时它还提供了大量可重用的类库。,Java的简单性是以增加运行时系统的复杂性为代价的。以内存管理为例,自动内存垃圾处理减轻了面向对象编程的负担,但Java运行时系统却必须内嵌一个内存管理模块。但无论如何,对编程人员而言,Java的简单性只会是一个优点,它可以使我们的学习曲线更趋合理化,加快我们的开发进度,减少程序

9、出错的可能性。,特性之一简单性,特性之二面向对象,所有面向对象的编程语言至少具备以下四个特点:,1.封装性(Encapsulation):必须有模块化(modularity)的性质以及信息隐藏(information hiding)的能力。,2.多态性(Polymorphism):不同的对象对同一种信息,可以按照对象本身的性质加以回应。,3.继承性(Inheritance):可以定义一套对象之间的层次关系,下层的对象继承了上层对象的特性,籍此可以实现程序代码重复利用,并且有效的组织整个程序。,4.动态联编(Dynamic binding):一旦对象生成以后,要使用这个对象只需简单地把信息传递给

10、它,不再需要去参考对象当初设计时的规格。只在程序执行时,才会真正锁定需要的对象,这样的方式可以使程序设计具有最大的灵活性。,Java语言是一门面向对象语言,因此它具有以上四个特点。Java语言的设计集中于对象及其接口,它提供了简单的类机制以及动态的接口模型。对象中封装了它的状态变量以及相应的方法,实现了模块化和信息隐藏;而类则提供了一类对象的原型,并且通过继承机制,子类可以使用父类所提供的方法,实现了代码的复用。,特性之三分布式,分布式包括数据分布和操作分布。,数据分布是指数据可以分散存放于网络上的不同主机;,操作分布则指把计算分散由不同主机进行处理。,对于操作分布,Java的客户机/服务器模

11、式可以把运算从服务器分散到客户一端,提高整个系统的执行效率,避免瓶颈制约,增加动态可扩充性。,对于编程人员来说,Java的网络类库是对分布式编程的最好支持。Java网络类库是支持TCP/IP协议的子例程库。,特性之三分布式,字节码(Byte Code)提供了一种结构中立的对象文件格式,该格式设计成可在多种平台上有效运行的程序。Java语言的程序可在提供Java语言解释器和实时运行系统的任意环境上运行。Java解释器直接对Java字节码进行解释执行。字节码本身携带了许多编译时的信息,使得连接过程更加简单。,特性之四解释执行,源程序,编译,字节码,虚拟机,Java在编译和运行程序时,都要对可能出现

12、的问题进行检查,以消除错误的产生。它提供自动垃圾收集来进行内存管理,防止程序员在管理内存时容易产生的错误。通过集成的面向对象的例外处理机制,在编译时,Java提示出可能出现但未被处理的例外,帮助程序员正确地进行选择以防止系统的崩溃。另外,Java在编译时还可捕获类型声明中的许多常见错误,防止动态运行时不匹配问题的出现。,特性之五健壮性,特性之六安全性,Java不支持指针,一切对内存的访问都必须通过对象的实例变量来实现,这样就防止程序员使用“特洛伊”木马等欺骗手段访问对象的私有成员,同时也避免了指针操作中容易产生的错误。,Java 程序被编译成一种与体系结构无关的字节代码,只要安装了Java运行

13、时系统Java程序可以在任意的处理器上运行,Java解释器得到字节码后,对他进行转换使他能够在不同的平台上运行。,特性之七体系结构中立,特性之八可移植性,Java既是编译性又是解释型的。因为,Java编译人员在进行软件开发时,不必考虑软件运行平台。不仅开发的源代码是可移植的,甚至源代码经过编译之后形成的二进制代码-字节码,而不管这种字节码是在何种平台上生成的。,Java采用的是基于国际标准的数据类型。Java的数据类型在任何机器上都是一致的,它不支持特定于具体的硬件环境的数据类型。,此外,Java的可移植性还体现在Java的运行环境上。Java编译器是用Java语言本身所编写的,而其运行时环境

14、则是用ANSI C编写的,整个运行时的环境体现了一个定义良好的可移植接口。,特性之八可移植性,Java作为一种解释型语言,其速度不会超过编译语言C,但远远超过交互式语言。和其他解释执行的语言如BASIC等不同,Java字节码的设计使之能很容易地直接转换成对应于特定CPU的机器码,从而具有较高的性能。,特性之九高性能,多线程概念很象多任务, Java可以把一个程序分成多个任务以便使任务易于完成和最大限度利用CPU资源。多线程机制使应用程序能够并行执行,而且同步机制保证了对共享数据的正确操作。通过使用多线程,程序设计者可以分别用不同的线程完成特定的行为,而不需要采用全局的事件循环机制,这样就很容易

15、地实现网络上的实时交互行为。,特性之十多线程,Java自身的设计使她适合于一个不断发展的环境。在Java类库中可以自由的加入新的方法和实例变量而不会影响用户程序的执行。而且Java通过接口来支持多重继承使之比严格的类继承具有更灵活的方式和扩展性。,特性之十一动态性,Java语言规范,API,JDK,IDE,Java语言规范(Java Language Specification, JLS) Java语言的语法和语义技术性定义。 应用程序接口(Application Program Interface, API) Java预定义类和接口。 Java开发工具包(Java Development K

16、it, JDK) 包含软件库、编译器、解释器以及其它工具。 集成开发环境(Integrated Development Environment, IDE) 在一个图形界面中,完成编辑、编译、调试和在线帮助等功能。,Java平台版本,Java SE(Java Flatform, Standard Edition)以前称为 J2SE。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序。 Java EE(Java Flatform, Enterprise Edition)以前称为 J2EE。它帮助开发和部署可移植、健壮、可伸缩且安全的服务器端 Java 应用程序。Jav

17、a EE 是在 Java SE 的基础上构建的,它提供 Web 服务、组件模型、管理和通信 API。 Java ME(Java Flatform, Micro Edition)以前称为 J2ME。它为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。,Java SE SDK版本,JDK 1.02 (1995) JDK 1.1 (1996) J2SDK v1.2 (1998) J2SDK v1.3 (2000) J2SDK v1.4 (2002) J2SE 5.0 (2004) JavaSE 6.0 (2006) (JDK 6 Update

18、21) Present Download: ,JDK(Java Development Kit ),Sun 推出JDK1.0后,Java的知名度如日中天。甚至Java已经成为Internet发行的行业标准。 从SUN的JDK5.0开始,提供了泛型等非常实用的功能,其版本也不断更新,运行效率得到了非常大的提高。 我们使用的是JDK1.6( JDK6.0 ) 目前JDK最新版本是1.7( JDK7.0 ) 读者可以从这儿http:/ javac(Java编译器) java(Java解释器) jdb(Java调试器) javah(C语言标题文件和存根文件产生器) javap(Java反汇编器) ja

19、vadoc(Java文档管理器) appletviewer(Java Applet浏览器) 。,JDK的安装与配置,双击软件包中的 jdk-6-windows-i586.exe 运行文件,默认JDK安装路径(C:Program FilesJavajdk1.6.0_07) 设置系统变量JAVA_HOME。右击【我的电脑】图标,选择【属性】【高级】【环境变量】菜单项,弹出“环境变量”对话框,如图所示。,图1.1 环境变量对话框,JDK的安装与配置,在【系统变量】中单击【新建】按钮,弹出“新建系统变量”对话框,在“变量名”文本框中输入“JAVA_HOME”,“变量值”文本框中输入JDK的安装路径“C

20、:Program FilesJavajdk1.6.0_07”,如图所示,单击【确定】按钮完成配置。,JDK的安装与配置, 设置系统变量Path。选择【属性】【高级】【环境变量】菜单项,在【系统变量】中找到变量名为“Path”的变量,单击【编辑】按钮,在前面输入JDK到bin的目录“C:Program FilesJavajdk1.6.0_07bin;”,如图所示,单击【确定】按钮完成配置。, 设置系统变量CLASSPATH。与同样的操作,不同的是变量名为“CLASSPATH”,变量值为“.; C:Program FilesJavajdk1.6.0_07bindt.jar; C:Program F

21、ilesJavajdk1.6.0_07bintools.jar”。,JDK的安装与配置-测试, 运行cmd-javajavacjava -version如果以上三个命令都能运行的话,说明安装成功,开发环境的配置,JDK简介 bin:Java编译器、解释器等 ; lib:Java开发类库 ; jre:Java虚拟机、运行类库等 ; demo:实例程序; ,JDK目录结构,Java程序开发过程,源程序,程序名 .java,Java 编译器,字节码文件 .class,与平台无关,小应用程序,由Web浏览器执行,应用程序,由java解释器执行,一个简单的Java程序,在控制台中输出“Welcome t

22、o Java!”,/This program prints Welcome to Java! public class Welcome public static void main(String args) System.out.println(“Welcome to Java!“); ,编译Java源代码,Java的目标代码可以在任何平台上运行。 Java的源代码编译之后生成字节码(bytecode)。字节码可以在任何装有Java虚拟机(Java Virtual Machine)的计算机上运行。 Java虚拟机是一个用于解释字节码的软件。,创建、编译和执行Java程序,创建和编辑源代码 可

23、以使用任何文本编译器创建和编辑源代码。 文件名必须与公共的类名一致,文件后缀为.java 编译 在控制台中执行:javac 源文件名 生成.class字节码文件 执行 在控制台中执行: java 类名,在Windows命令窗口中编译执行,设置环境变量,编译,执行,在eclipse中执行,在鼠标右键菜单中选择运行方式Java应用程序,保存源文件将自动执行编译,应用程序剖析,注释 保留字 修饰符 语句 块 类 方法 main方法,注释,Java程序包含三种注释 多行注释:用于某行的一部分、单行或多行注释/* 注释内容注释内容*/ 单行注释:用于单行或不到一行的注释/ 注释内容 文档注释:可以使用j

24、avadoc提取注释,形成文档/* 注释内容注释内容*/,保留字,保留字或关键字(keyword)是对编译器有具体意义,不能在程序中用于其它目的的单词。注意:JAVA是区分大小写的。,/This program prints Welcome to Java! public class Welcome public static void main(String args) System.out.println(“Welcome to Java!“); ,修饰符,Java中的某些关键字称为修饰符(modifier),用于指定数据、方法、类的属性以及它们的用法。,/This program pri

25、nts Welcome to Java! public class Welcome public static void main(String args) System.out.println(“Welcome to Java!“); ,语句,语句(statement)代表一个动作或一系列动作。Java中的每个语句都以分号(;)结尾。,/This program prints Welcome to Java! public class Welcome public static void main(String args) System.out.println(“Welcome to Jav

26、a!“); ,块,程序中成对的大括号形成一个块(block),用于组织程序中的部件。,/This program prints Welcome to Java! public class Welcome public static void main(String args) System.out.println(“Welcome to Java!“); ,方法块,类块,类,类(class)是Java的基本结构,类是对象的模板或蓝图。一个程序可以包含一个或多个类。但一个Java文件里只能有一个公有(public)类,/This program prints Welcome to Java! p

27、ublic class Welcome public static void main(String args) System.out.println(“Welcome to Java!“); ,方法,System.out是标准输出流,println是该对象的一个方法,该方法向标准输出流(显示屏)显示字符。括号中的字符串是方法的参数。,/This program prints Welcome to Java! public class Welcome public static void main(String args) System.out.println(“Welcome to Java

28、!“); ,main方法,Java解释器通过调用main方法执行应用程序。main方法是Java应用程序(Java Application)的入口。 Java有二种类型的程序:Application:由操作系统通过main方法启动。Applet:只能嵌在网页里,在浏览器里运行。没有main方法。,/This program prints Welcome to Java! public class Welcome public static void main(String args) System.out.println(“Welcome to Java!“); ,应用程序举例,程序1-1 一

29、个基本的Java应用程序 / / 简单的应用程序HelloWorldApp /public class HelloWorldApppublic static void main (String args) System.out.println (“Hello World!“);,如果源文件中有多个类,那么只能有一个类是public类。 如果有一个类是public类,那么源文件的名字必须与这个类的名字完全相同,扩展名是.java 如果源文件没有public类,那么源文件的名字只要和某个类的名字相同,并且扩展名是.java就行了,应用程序举例,应用程序举例,程序的创建 文本编辑器,如记事本、写字板

30、等; HelloWorldApp.java。 程序的编译 javac HelloWorldApp.java 新文件:HelloWorldApp.class 程序的运行 java HelloWorldApp (即HelloWorldApp.class ),应用程序举例,程序的解释 13行,注释行; 48行,公有类 HelloWorldApp ; 57行,public static void main(String args ) static 静态方法 public 公有方法 void 无返回值 args 命令行参数 第6行,标准输出流 java.lang.System.out,应用程序举例,程序

31、1-2 处理命令行参数 / / 简单的应用程序HelloWorldApp / public class HelloWorldApppublic static void main (String args)System.out.println (“Hello World!“);if (args.length!=0) System.out.println(“Hello “ + args0+ “!“); ,应用程序举例,命令行参数 java HelloWorldApp earthman 屏幕上显示的结果将是: Hello World! Hello earthman! 参数的个数可以多个,读者不妨一试

32、! args.length 命令行参数的个数,在消息对话框中显示文本,可以使用JOptionPane的showMessageDialog方法显示文本。,import javax.swing.JOptionPane;public class WelcomeInMessageDialogBox public static void main(String args) JOptionPane.showMessageDialog(null,“Welcome to Java!”,“Example 1.2 Output”,JOptionPane.INFORMATION_MESSAGE); ,消息,标题,图

33、标,Java Applet程序(小应用程序),Java Applet 在WWW中引入动态交互的内容,使网络更广泛地渗入社会生活的方方面面。Java Applet的源代码编辑与字节码的编译生成过程与Java Application 相同,但它不是可以独立运行的程序,它的字节码文件 必须嵌入到HTML 程序的文件中 并由WWW浏览器来解释执行Java Applet 的字节码程序。,Java 小应用程序,程序1-3 import java.applet.*; import java.awt.*; public class MyjavaApplet extends Applet public void

34、 paint(Graphics g)g.setColor(Color.red); g.drawString(“我在学Java Applet!“,25,25) ; ,小应用程序程序分析,程序的第1,2行利用import关键字引入了程序需要的两个系统类Graphics 和 Applet;由于这两个系统类位于不同的系统包中,所以引入时要指明它们所在的包名; java.awt 和 java.applet 第3行自定义了名为 MyjavaApplet 的类 public class MyjavaApplet extends Applet,Java Applet 中不需要有main 方法。 Java Ap

35、plet要求有一个类是系统类applet 的子类,即必须有一个类的类头部分以 extends Applet 结尾。其中 extends 表明新定义的类是它后面跟着的已经存在的父类的子类;Applet 是父类名。为什么必须要以 extends Applet 结尾?,小应用程序程序分析,因为系统类 Applet 中已经定义了很多的成员域和成员方法,它们规定了Applet 如何与执行它的解释器 WWW 浏览器配合工作,所以当用户程序使用 Applet 的子类时,由于继承的特性,这个子类将自动拥有父类的有关成员,使WWW浏览器顺利地执行并实现用户程序所定义的功能。所以,当一个类被定义为已经存在的类的子

36、类时,它将从其父类中继承一些成员,包括域和方法。其好处是子类可以利用父类已经定义了的功能而不必重复定义。,小应用程序程序分析,第4 行到第9 行是类MyjavaApplet 的类体部分,类体中定义了一个方法paint , paint方法是系统类Applet中已经定义好的成员方法,它与其他的一些 Applet 中的方法一样,能够被 WWW 浏览器识别和自动调用。在此 paint 方法只有一条语句 g.drawString (“ 我在学Java Applet!”,10,20); 该语句的功能是在屏幕的特定位置显示一个字符串,该语句实际调用了paint 方法的形式参数g 的一个成员方法drawStr

37、ing 来完成输出功能的。g是系统类 Graphics 的一个对象,它代表了Web页面上Applet程序的界面区域的背景,在此背景上显示字符串。,小应用程序程序分析,字节码的嵌入,运行Java Applet 时必须将其字节码嵌入HTML 文件中。即Hello World ,文件名为:example.html,Java Applet 的运行:,运行Java Applet 程序首先要把编译好的字节码文件和编写好的HTML 文件保存在Web服务器的合适路径下;当 WWW 浏览器下载HTML文件并显示时,它会自动下载指定的 Java Applet 字节码,然后调用内置在浏览器中Java 解释器来解释执

38、行下载到本机的字节码程序,选择一种内置Java解释器的Web浏览器,打开扩展名为 .html的文件就可以看到 Java Applet 的运行结果。也可以用JDK提供的appletviewer来运行Java Applet程序,appletviewer example.html,Java Applet 的运行:,跟上时代脚步,与网络有关的技术发展得如此之快,以至于很难掌握当今最新的技术信息和发展动态。Internet的革新速度极快,而Java也正以这种速度在发展着。 跟上时代的脚步最好的办法就是经常去访问一下Web站点,以获得有关java的最新信息和Java例子。,核心API文档,学会使用API文

39、档是掌握JAVA的关键。,API类文档,集成开发环境,优点 界面友好 易学易用 适于开发大型应用系统 缺点 慢的出奇, 掩盖对初学者很重要的细节 烦人的工程,不适合开发小程序,集成开发环境选择,记事本、UltraEdit 使用集成开发环境。(如JBuilder, Forte等)。 eclipse用的是最多的,因为是免费的,功能也还较为全面 ,2011年8月6日Eclipse基金会为支持JAVA7发布Eclipse 3.8M1 我们选用MyEclipse 9 (最新MyEclipse 10),74,练习,1. Java编译器将源代码翻译成的独立于平台的格式是: A. opcodes B. byt

40、ecodes(字节码) C. virtual machines(虚拟机) D. applets(小应用程序) 2. 运行Java编译器的命令是什么? A. java B. appletviewer C. jdb D. javac 3. 下面哪条命令用来运行Java applicaiton? A. java B. appletviewer C. jdb D. javac 4. 下面哪条命令用来运行Java applet? A. java B. appletviewer C. jdb D. javac 5. 可以用来创建Java程序的免费工具集被称作什么? A. JRE B. JDK C. JVM D. JNI,课后习题,下载并安装 JDK,正确配置环境变量 查阅API文档,列出java.lang.Math类的常用方法。 在自己的机器上调试程序1-3,直到正确为止。试着输入不同的命令行参数。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 网络科技 > Java

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报