Presentation is loading. Please wait.

Presentation is loading. Please wait.

《Java程序设计之网络编程》 教学课件 重庆大学计算机学院 lizhx@126.com.

Similar presentations


Presentation on theme: "《Java程序设计之网络编程》 教学课件 重庆大学计算机学院 lizhx@126.com."— Presentation transcript:

1 《Java程序设计之网络编程》 教学课件 重庆大学计算机学院

2 第1章 Java语言概述

3 主要内容: 1.1 Java语言的产生及其特点 1.2 Java运行环境与开发环境 1.3 Java程序举例 1.4 其他集成运行环境

4 1.1 Java语言的产生及其特点 1.1.1 Java语言发展简史 1.1.2 Java虚拟机
1.1.5 Java与C/C++语言的异同

5 1.1.1 Java语言发展简史 1991年,当初Sun公司的 James Gosling开展了一个名为“Green”的项目,主要目的是开拓消费类电子产品市场,OAK语言 ,希望用于控制嵌入在有线电视交换盒、PDA等的微处理器. 1993 年交互式电视和 PDA 市场开始滑坡,而 Internet 正处于增长时期,因此Sun 公司将目标市场转向 Internet 应用程序。 1995年5月23,Sun World大会,正式发表 1995年Sun 公司的 HotJava 浏览器问世 1996年 发布了1.0 1997年2月,Java的开发包Java v1.1发布 1998年12月,Sun公司发布了Java2平台。 2003年发布了 J2sdk 1.4 2004年,发布J2sdk 1.5

6 James Gosling介绍 Sun的Java语言开发小组成立于1991年,其目的是开拓消费类电子产品市场,例如,交互式电视、烤面包箱等。Sun内部人员把这个项目称为Green,那时WorldWideWeb还在图纸上呢。该小组的领导人是JamesGosling,是一位非常杰出的程序员。他出生于1957年,于1984年加盟SunMicrosystem公司,之前在一家IBM研究机构工作。他是SunNeWs窗口系统的总设计师。也是第一个用C实现的EMACS的文本编辑器COSMACS的开发者。在研究开发过程中,Gosling深刻体会到消费类电子产品和工作站产品在开发哲学上的差异:消费类电子产品要求可靠性高、费用低、标准化、使用简单,用户并不关心CPU的型号,也不欣赏专用昂贵的RISC处理器,他们需要建立在一个标准基础之上,具有一系列可选的方案,从8086到80586都可以选取。

7 James Gosling介绍

8 James Gosling介绍

9 PatrickNaughton介绍 Patrick Naughton也是Sun公司的技术骨干,曾经是OpenWindows项目的负责人。当Naughton加入该小组后,整个工作进展神速。经过17个月的奋战,整个系统胜利完成。它是由一个操作系统、一种语言(Java)、一个用户界面、一个新的硬件平台、三块专用芯片构成的。通常情况下,这样的项目在Sun公司要75个人干三年。项目完成后,在Sun公司内部做了一次展示和鉴定,观众的反应是:在各方面都采用了崭新的、非常大胆的技术。

10 1.1.2 Java虚拟机 Java虚拟机(Java Virtual Machine, JVM)是软件模拟的计算机,可以在任何处理器上(无论是在计算机中还是在其它电子设备中)安全并且兼容的执行保存在.class文件中的字节码。Java程序的跨平台特性主要是指字节码文件可以在任何具有Java虚拟机环境的计算机或者电子设备上运行。Java虚拟机中的Java解释器(java.exe)负责将字节码文件解释成为特定的机器码并执行。但是,Java虚拟机的建立需要针对不同的软硬件平台做专门的实现,既要考虑处理器的型号,也要考虑操作系统的种类。目前在SPARC结构、X86结构、MIPS和PPC等嵌入式处理芯片上,在UNIX、Linux、Windows和部分实时操作系统上都实现了Java虚拟机。

11 1.1.3 Java是不断扩展的计算平台 企业计算: Java 2 Enterprise Edition (J2EE)
桌面计算: Java 2 Standard Edition (J2SE) 嵌入计算: Java 2 Micro Edition (J2ME) 为了满足不同应用领域的需求,Java提供了许多API(Application Programming Interface),这些API分成以下三大类。 Java Core API:由Sun制定的基本API,任何Java平台都必须提供。 Java Standard EXtension API(javax):由Sun制定的扩充API,Java平台可以选择性地提供或加装。 厂商或组织所提供的API:由各家公司或组织所提供。

12 1.1.3 Java是不断扩展的计算平台

13 1.1.4 Java语言的特点 Java语言还具有简单、面向对象、分布式、健壮、安全、结构中立、可移植、多线程、动态等特点。 1)简单
Java的风格类似于C、C++ , Java提供了丰富的类库 , Java虚拟机很小 2) 面向对象 把数据和对该数据的操作都封装在一个类中 3)分布式 Java包括一个支持HTTP和FTP等基于TCP/IP协议的子库 4)健壮 Java致力于检查程序在编译和运行时的错误。

14 1.1.4 Java语言的特点 5)安全 指针和释放内存等原C++功能被删除,避免了非法内存操作, Java虚拟机采用"沙箱"运行模式
6) 结构中立 Java源程序被编译成一种高层次的与机器无关的bytecode格式语言(伪代码),这种语言被设计在虚拟机上运行,由机器相关的解释器实现执行 7)可移植 同体系结构无关的特性使得Java应用程序可以在配备了Java解释器和运行环境的任何计算机系统上运行,这成为Java应用软件便于移植的良好基础。

15 1.1.4 Java语言的特点 8)多线程 Java提供的多线程功能使得在一个程序里可同时执行多个小任务 9) 动态
Java的动态特性是其面向对象设计方法的发展。它允许程序动态地装入运行过程中所需要类,这是利用C++语言进行面向对象程序设计所无法实现的

16 1.1.5 Java与C/C++语言的异同 Java语言是一种功能强大语言,但几乎没有一点含混的特征。C++安全性不好,但C和C++还是被大家所接受,所以Java使用了类似于C/C++的语法,而去除了C/C++中许多不合理的内容,以实现其简单、健壮、安全等特性。下面列出几点主要的区别: 1) 全局变量 2) 指针 3) 内存管理 4) 类型转换 5) 结构和联合 6) 预处理

17 第1章 Java语言概述 1.1 Java语言的产生及其特点 1.2 Java运行环境与开发环境 1.3 Java程序举例
1.4 其他集成运行环境

18 1.2 Java运行环境与开发环境 1.2.1 Java运行环境 1.2.2 Java SDK开发环境
1.2.3 JDK开发环境工具简单介绍

19 1.2.1 Java运行环境 如果只想运行别人的Java 程序可以只安装Java 运行环境(Java Runtime Environment,JRE),JRE 由Java 虚拟机、Java 的核心类、以及一些支持文件组成。可以登陆Sun公司的网站 的JRE,例如可以根据提示下载支持Microsoft Windows操作系统的JRE文件jre-1_5_0_04-windows-i586-p.exe。安装时可以选择了默认的安装路径,也可以更改路径.

20 1.2.1 Java运行环境

21 1.2.2 Java SDK开发环境 1. 安装Java Development Kit(JDK)
Sun公司为所有的Java程序员提供了一套免费的Java开发和运行环境。本书将使用JDK目前最新的版本JDK5.0版(也就是J2SE5.0)。可以通过IE或Netscape浏览器浏览网址: Windows操作系统的jdk-1_5_0-windows-i586.exe到本地硬盘。 安装的时候可以选择安装到任意的硬盘驱动器上,例如安装到D:\jdk1.5.0目录下,如图1-2。正确安装后,在JDK目录下有bin、demo、lib、jre等子目录,如图1-3,其中bin目录保存了javac、java、appletviewer等命令文件,demo目录保存了许多java的例子,lib目录保存了Java的类库文件,jre目录保存的是Java的运行时环境(JRE)。

22 1.2.2 Java SDK开发环境

23 1.2.2 Java SDK开发环境

24 1.2.2 Java SDK开发环境 2. 环境变量的设置 设置环境变量的目的是为了能够正常使用所安装的JDK开发包。通常,我们需要设置三个环境变量:JAVA_HOME、PATH 和 CLASSPATH。     1)、 JAVA_HOME 该环境变量的值就是 Java 所在的目录,一些 Java 版的软件和一些 Java 的工具需要用到该变量,设置 PATH 和 CLASSPATH 的时候,也可以使用该变量以方便设置。   2)、 PATH 该环境变量指定一个路径列表,用于搜索可执行文件的。执行一个可执行文件时,如果该文件不能在当前路径下找到,则依次寻找 PATH 中的每一个路径,直至找到。或者找完 PATH 中的路径也不能找到,则报错。Java 的编译命令 (javac),执行命令 (java) 和一些工具命令 (javadoc, jdb 等) 都在其安装路径下的 bin 目录中。

25 1.2.2 Java SDK开发环境 3)、 CLASSPATH
该环境变量也指定一个路径列表,是用于搜索 Java 编译或者运行时需要用到的类。在 CLASSPATH 列表中除了可以包含路径外,还可以包含 .jar 文件。Java 查找类时会把这个 .jar 文件当作一个目录来进行查找。通常,我们需要把 JDK 安装路径下的 jre\lib\rt.jar 包含在 CLASSPATH 中。

26 1.2.2 Java SDK开发环境 设置环境变量有三种方法: 1)修改系统自动批处理文件

27 1.2.2 Java SDK开发环境 2) 在系统特性中设置PATH和CLASSPATH。
对于Window2000/NT/XP操作系统,用鼠标右键点击”我的电脑”,弹出菜单,然后选择属性,弹出”系统特性”对话框,再单击该对话框中的高级选项,然后点击按钮”环境变量”,添加如下的系统环境变量 变量名: JAVA_HOME 变量值: d:\jdk1.5.0 (其内容应根据JDK安装目录变化) 变量名: PATH 变量值: d:\jdk1.5.0\bin;%path% (其内容应根据JDK安装目录变化) 变量名: CLASSPATH 变量值: .; d:\jdk1.5.0\jre\lib\rt.jar;(其内容应根据实际情况变化)

28 1.2.2 Java SDK开发环境

29 1.2.2 Java SDK开发环境 3) 在MS-DOS命令行窗口设置 也可以在MS-DOS命令行键入下列命令后,回车确认,例如
set JAVA_HOME=d:\jdk1.5.0; set PATH=d:\jdk1.5.0\bin;%PATH%; set CLASSPATH = .;d:\jdk1.5.0\jre\lib\rt.jar; 注意,这种方式设置的环境变量只对本DOS窗口有效。

30 1.2.2 Java SDK开发环境 3、安装Java帮助文档
由于JDK的安装程序中并不包含帮助文档,因此必须从Sun的网站上下载进行安装。可以通过IE或Netscape浏览器浏览网址:

31 1.2.2 Java SDK开发环境

32 1.2.2 Java SDK开发环境

33 1.2.2 Java SDK开发环境

34 1.2.3 JDK开发环境工具简单介绍

35 第1章 Java语言概述 1.1 Java语言的产生及其特点 1.2 Java运行环境与开发环境 1.3 Java程序举例
1.4 其他集成运行环境

36 Java程序分成三类: Application(应用程序) Applet(小程序)
Servlet(服务器端小程序) 应用程序在计算机中单独运行,而小程序只能嵌在HTML网页中运行。这需要一些网页知识。Servlet是运行在服务器端的小程序,它可以处理客户传来的请求(request),然后传给客户端(response)。本节的例子将采用notepad作为程序的编辑器,然后在JDK5.0平台下运行。

37 1.3 Java程序举例 Java程序分成三类: Application(应用程序) Applet(小程序)
Servlet(服务器端小程序) 应用程序在计算机中单独运行,而小程序只能嵌在HTML网页中运行。这需要一些网页知识。Servlet是运行在服务器端的小程序,它可以处理客户传来的请求(request),然后传给客户端(response)。本节的例子将采用notepad作为程序的编辑器,然后在JDK5.0平台下运行。

38 【例1-1】要求在命令行窗口显示“Hello Wolrd!”。
1.3.1 简单的Java应用程序 下面我们先介绍简单的Java程序,并对其进行分析。 【例1-1】要求在命令行窗口显示“Hello Wolrd!”。 我们将该文件命名为HelloWorldApp.java,其源程序如下: // HelloWorldApp.java public class HelloWorldApp //一个应用程序 { public static void main(String args[]) System.out.println(″Hello World!″); }

39 1.3.1 简单的Java应用程序 Java解释器在没有生成任何实例的情况下,以main()作为入口来执行程序。Java程序中可以定义多个类,每个类中可以定义多个方法,但是最多只有有一个公共类,main()方法也只能有一个,作为程序的入口。在main()方法定义中,括号()中的String args[]是传递给main()方法的参数,参数名为args,它是类String的一个实例,参数可以为0个或多个,多个参数间用逗号分隔。 在main()方法的实现(大括号内) 中,只有一条语句:   System.out.println(″Hello World!″); 它用来实现字符串的输出,这条语句实现与C语言中的printf语句和C++中cout<<语句相同的功能。另外,//后的内容为注释

40 1.3.1 简单的Java应用程序 在程序中,首先用保留字class来声明一个新的类,其类名为HelloWorldApp,它是一个公共类(用public修饰)。整个类定义由大括号{ }括起来。在该类中定义了一个main()方法,其中public表示访问权限,指明所有的类都可以使用这一方法;static指明该方法是一个类方法,它可以通过类名直接调用;void则指明main()方法不返回任何值。对于一个应用程序来说,main()方法是必需的,而且必须按照如上的格式来定义。

41 1.3.1 简单的Java应用程序

42 1.3.1 简单的Java应用程序 该文件保存在d:\user\chap01目录下。然后对它进行编译:
  d:\user\chap01>javac HelloWorldApp.java 编译的结果是生成字节码文件HelloWorldApp.class。最后用java解释器来运行该字节码文件:   d:\user\chap01>java HelloWorldApp   结果在命令行窗口屏幕上显示HelloWorld!

43 【例1-2】程序SimpleInput.java完成从命令行输入简单的双精度。该程序演示如何使用引用包以及如何在命令窗口输入数据。

44 1.3.1 简单的Java应用程序 import java.io.*; //引入该程序需要的类所在的包
public class SimpleInput{ public static void main(String args[]) throws IOException{ String s; BufferedReader ir=new BufferedReader( new InputStreamReader(System.in)); s=ir.readLine(); System.out.println("Input value is:"+s); double d=Double.parseDouble(s); //将s 转换成double型 System.out.println("Input value changed after doubled:"+Math.sqrt(d)); }

45 1.3.1 简单的Java应用程序 在JDK5.0中提供了java.util. Scanner类,可以直接从输入流读取简单数据。例如
import java.util.Scanner; public class TestScanner { public static void main(String[] args) { Scanner cin = new Scanner(System.in); int a = cin.nextInt(), b = cin.nextInt(); System.out.println(a + b); System.out.printf(""+ Math.PI); System.out.format("%4d%4d",a,b); System.out.format("Pi is approximately %f", Math.PI); }

46 1.3.1 简单的Java应用程序 输入: 输出: 579 Pi is approximately Finished executing

47 1.3.1 简单的Java应用程序 printf()和 format() 方法具有相同的功能. System.out 是 java.io.PrintStream的实例. PrintStream, java.io.PrintWriter, 和 java.lang.String 每个类都有四个新的格式化方法: format( String format, Object... args); printf( String format, Object... args); format( Locale locale, String format, Object... args); printf( Locale locale, String format, Object... args);

48 1.3.1 简单的Java应用程序 %[argument_index$][flags][width][.precision]conversion 其中: argument_index是一个正整数,说明了参数的位置,1为取第一个参数 width表示输出的最小字母个数 precision代表数字的小数位数 conversion代表被格式化的参数的类型: f float, t time d decimal o octal x hexadecimal s general c a Unicode character

49 【例1-3】从m个数中抽出n个数,试计算中奖的概率。该例演示如何从可视化组件输入数据并转换成整形数据,然后从命令窗口输出数据。
1.3.1 简单的Java应用程序 【例1-3】从m个数中抽出n个数,试计算中奖的概率。该例演示如何从可视化组件输入数据并转换成整形数据,然后从命令窗口输出数据。 // Proba.java

50 1.3.1 简单的Java应用程序 // Proba.java import javax.swing.*;
public class Proba{ public static void main(String[] args){ String input= JOptionPane.showInputDialog("你希望抽取多少个数?"); int k=Integer.parseInt(input); input=JOptionPane.showInputDialog(“一共有多少个数? "); int n=Integer.parseInt(input); int result=1; for(int i=1;i<=k;i++){ result=result*(n-i+1)/i; } System.out.println("你中奖的几率是1/"+result+""); System.exit(0);

51 【例1-4】 1.3.2 简单的Applet小程序 下面的例子将演示Applet在网页中的应用。
该程序的目的是在浏览器中显示“Hello World in Applet!” // HelloWorldApplet.java import java.awt.*; import java.applet.*; public class HelloWorldApplet extends Applet{ //一个小程序 public void paint(Graphics g){ g.drawString(“Hello World in Applet!”,20,20); }

52 1.3.2 简单的Applet小程序 import java.awt.*; import java.applet.*;
public class HelloWorldApplet extends Applet{ //一个小程序 public void paint(Graphics g){ g.drawString(“Hello World in Applet!”,20,20); } 这是一个简单的Applet(小应用程序)。程序中,首先用import语句输入java.awt和java.applet下所有的包,使得该程序可能使用这些包中所定义的类,它类似于C中的#include语句。然后声明一个公共类HelloWorldApplet,用extends指明它是Applet的子类。在类中,我们重写父类Applet的paint()方法,其中参数g为Graphics类,它表明当前作画的上下文。在paint()方法中,调用g的方法drawString(),在坐标(20,20)处输出字符串“Hello World in Applet!”,其中坐标是用象素点来表示的。

53 1.3.2 简单的Applet小程序 import java.awt.*; import java.applet.*; public class HelloWorldApplet extends Applet{ //一个小程序 public void paint(Graphics g){ g.drawString(“Hello World in Applet!”,20,20); } 这个程序中没有实现main()方法,这是Applet小程序与应用程序Application运行机制的主要区别之一。为了运行该程序,首先我们也要把它放在文件HelloWorldApplet.java中,然后对它进行编译:   d:\user\chap01>javac HelloWorldApplet.java   得到字节码文件HelloWorldApplet.class。

54 1.3.2 简单的Applet小程序 由于Applet中没有main()方法作为Java解释器的入口,我们必须编写HTML文件,把该Applet嵌入其中,然后用appletviewer来运行,或在支持Java的浏览器上运行,如IE。 ExampleApplet.html文件如下: <HTML> <HEAD> <TITLE>An Applet</TITLE> </HEAD> <BODY> <applet code=”HelloWorldApplet.class” width=200 height=40> </applet> </BODY> </HTML>

55 1.3.2 简单的Applet小程序 其中用<applet>标记来启动HelloWorldApplet.code指明字节码所在的文件,width和height指明applet所占的大小,我们把这个HTML文件存入ExampleApplet.html,然后使用appletviewer工具来运行该网页,如下:   d:\user\chap01>appletviewer ExampleApplet.html   这时屏幕上弹出一个窗口,其中显示Hello World in Applet!

56 1.3.3 Servlet Java Servlet和Java Applet正好是相对应的两种程序类型。Applet运行在客户端,在浏览器内执行,而Servlet在服务器内部运行,通过客户端提交的请求启动运行,并将结果还回给客户端或调用它的程序。 进一步学习,请参考本书的第17章相关内容。

57 1.4 其他集成运行环境 现在常用的Java项目开发环境有:Eclipse 、JBuilder、Sun Java Studio、IntelliJ IDEA、Java Workshop、NetBeans IDE、Gel+J2SDK、JCreator +J2SDK、JDK+记事本、EditPlus+J2SDK等等。上节中的例子就是采用的“JDK+记事本”的环境。针对不同的软件系统规模和不同的应用领域,可以采用适合自己开发的工具。下面将介绍三款流行的开发工具。

58 1.4 其他集成运行环境 1、GEL GEL为用户提供了相当强大的功能,例如项目管理功能,项目模板功能,可个性化设置语法高亮属性、行数、类浏览器、标签文档、多功能编绎器,向导功能以及完全可自定义的用户界面。 GEL小巧,同时很好的支持汉字。与JDK完美无逢集成。缺点是只能进行简单的程序开发,不能进行企业J2EE的开发应用。非常适合初学者学习使用Java。 其下载地址为 Gel version 1.0 RC39, 4.3MB。其开发界面如图

59 1.4 其他集成运行环境

60 1.4 其他集成运行环境 2. Eclipse Eclipse是一种可扩展的免费开放源代码IDE。2001年11月,IBM公司捐出价值4,000万美元的源代码组建了Eclipse联盟,并由该联盟负责这种工具的后续开发。集成开发环境(IDE)经常将其应用范围限定在“开发、构建和调试”的周期之中。为了帮助集成开发环境(IDE)克服目前的局限性,业界厂商合作创建了Eclipse平台。Eclipse允许在同一IDE中集成来自不同供应商的工具,并实现了工具之间的互操作性,从而显著改变了项目工作流程,使开发者可以专注在实际的嵌入式目标上。   Eclipse的最大特点是它能接受由Java开发者自己编写的开放源代码插件,这类似于微软公司的Visual Studio和Sun公司的NetBeans平台。Eclipse为工具开发商提供了更好的灵活性,使他们能更好地控制自己的软件技术。目前Eclipse联盟已推出其Eclipse3.1版软件,这是一款非常受欢迎的Java开发工具,这国内的用户越来越多,实际上用它开发Java的人员是最多的。用户可从

61 1.4 其他集成运行环境

62 1.4 其他集成运行环境 3.JBuilder JBuilder是一款大型的Java集成开发环境,它能满足很多方面的应用,尤其是对于服务器和EJB开发。下面简单介绍一下JBuilder的特点: JBuilder支持最新的Java技术,包括Applet、JSP/Servlets、JavaBean以及EJB(Enterprise JavaBeans)的应用。 用户可以自动地生成基于后端数据库表的EJB Java类,JBuilder同时还简化了EJB的自动部署功能.此外它还支持CORBA,相应的向导程序有助于用户全面地管理IDL(分布应用程序所必需的接口定义语言,Interface Definition Language)和控制远程对象。 JBuilder 加速了企业JavaBeans,WEB服务器,XML,移动产品和数据库应用开发,双向可视化设计工具和迅速调用J2EE应用服务器,这些应用服务器包括BEA® WebLogic,® IBM® WebSphere,® Sybase® EAServer, JBoss,® 和 integrated Borland® Enterprise Server。拥有创新强大的JavaServer™ Faces, Struts, 和 Web服务设计工具,支持JDK™ 5.0 (J2SE 5.0), UML代码可视化,分布式因子分解,代码审核,企业单位测试,支持多语控制系统。

63 1.4 其他集成运行环境 JBuilder能用Servlet和JSP开发和调试动态Web 应用。
利用JBuilder可创建(没有专有代码和标记)纯Java2应用。由于JBuilder是用纯Java语言编写的,其代码不含任何专属代码和标记,它支持最新的Java标准。 JBuilder拥有专业化的图形调试界面,支持远程调试和多线程调试,调试器支持各种JDK版本,包括J2ME/J2SE/J2EE。 JBuilder环境开发软件很方便,它是纯的Java 开发环境,适合企业的J2EE开发;缺点是往往一开始人们难于把握整个程序各部分之间的关系,对机器的硬件要求较高,内存开销大,这时运行速度显得较慢。其开发界面如图1-16。

64 1.4 其他集成运行环境


Download ppt "《Java程序设计之网络编程》 教学课件 重庆大学计算机学院 lizhx@126.com."

Similar presentations


Ads by Google