1、Java语言概述,Java的历史与发展Java语言特征Java开发环境与工具Java的程序结构ApplicationApplet运行你的第一个java程序,教材第2章,教学目的,本课程以java语言为素材,讲授面向对象程序设计的方法与思路。 java语言基础:数据类型,控制语句,程序结构 Java的面向对象程序设计。 Java编程专题(图形界面、多线程、输入输出与网络编程、数据库访问等)。课程安排:,Java 概述,面向对象基本概念,Java 语言基础,OO 程序设计(上) 对象与类,数据结构与语言基础类,图形用户界面,OO 程序设计(下) 高级功能,Applets,异常处理,文件及输入输出,
2、网络编程,多线程,JDBC与数据库访问,Java 集成开发环境,Java的历史,前身:OAK(James Gosling 1990) Java大事记 90年,Sun公司开始Green工程 93年,WWW席卷全球 94年,开始定位于Internet 95.1,Java命名 Hotjava, 第一个支持Java的浏览器 Netscape2.0,Java的发展,1995.5.23 Java诞生(Java1.0.2 API) 1997.2.18 JDK1.1 (java1.1 API) VJ+6.0、cafe、JBuilder . 支持 1998.12 JDK1.2 (Java 2 SDK v1.2
3、Standard Edition) 当前版本:JDK 1.6 Java资源网址 http:/,Java语言特点,simple 简单object-oriented 纯面向对象distributed 分布式interpreted 解释型robust 健壮性secure 安全性architecture-neutral 结构中立portable 可移植性high-performance 高性能multi-threaded 多线程dynamic 动态性,Java语言的特点,Simple :易学;自动内存管理;简化重载;去掉指针及C+中一些不是绝对必要的功能 object-oriented:纯面向对象语言
4、,程序代码以类的形式组织,由类来定义对象的各种状态和行为 Distributed :丰富的网络编程功能-轻松处理TCP/IP ;通过URL访问远地资源;字节码可来自网络,Java语言的特点,Interpreted:Java是解释型的,但Java通过预先将源代码编译为接近于机器指令的字节码,有效地克服了传统解释型语言的性能瓶颈,同时又保持了解释型语言的可移植性;Java解释器能直接在任何机器上执行Java字节码 Robust:静、动态检查,排除出现错误的条件;异常处理机制,正确处理运行时的错误;取消指针,保护内存数据与程序;数据类型的匹配,数组下标越界检查;自动内存管理,碎片收集,Java语言的
5、特点,Secure:用于网络/分布式运算环境,确保建立无病毒且不会被侵入的系统;内存分配及布局由Java运行系统决定;字节码加密传输,客户端校验 architecture-neutral:Java应用程序能够在网络上任何地方执行;字节代码 - 平台无关性;完全统一的语言版本 - 实现无关性;访问底层操作系统功能的扩展类库 不依赖于具体系统 Portable:源于平台无关性,且Java本身环境的可移植性,Java语言的特点,high-performance:字节码- 目标代码;JIT(Just-In-Time)即时时编译器 multi-threaded:在语言级嵌入了对并发控制的功能 - 多线程
6、控制,大大简化了多线程应用程序的开发 Dynamic:面向对象设计的延伸。JAVA的基本组成单元是类,而Java的类又是运行时动态装载的。可以在分布环境中动态地维护应用程序和类库的一致性。更能适应时刻变化的环境。Java不会因程序库的更新,而必须重新编译程序,Java是什么,JAVA是面向对象的程序设计语言 Java是Internet上的世界语。 Java是最佳的网络应用开发语言。 JAVA是环境 JAVA是产业,Java已经逐步从一种单纯的计算机高级编程语言发展为一种重要的Internet平台,并进而引发、带动了Java产业的发展和壮大,成为当今计算机业界不可忽视的力量和重要的发展潮流与方向
7、 !,Java的工作方式,本地计算机系统,Java虚拟机(JVM),.class 二进制字节码文件,.java java源程序文件,编译,java术语,JVM java虚拟机 JVM将 java 字节码程序翻译成机器语言。然后由计算机执行。 JVM 没有其他相关的文件。 JVM 本身不足以支持java application和applet的运行。 JRE java 运行环境 JRE 是由JVM 和 java platform 核心类以及相关支撑文件组成。 API Application programming interface. API 是rules(syntax) :在java技术中如何编
8、程。 API包括数百个类公司预先编好的代码,你可以在编程中充分利用它们的功能。,java术语,JDK java developers kit (java开发工具包) JDK 包含JVM和其他工具,以及所有的API和相关的文件。 JDK 是java 技术的旧名(1999年11月以前采用), JDK1.1 是最后版本。 Java 2 Java 2 Platform, J2 SDK java技术的新名称。 SDK Software Development Kit,JVM plus all APIs, compilers ,tools, and documentation (what you need
9、 in order to write java technology programs).,JVM plus basic APIs (what you need to distribute to people who will run your Java programs),Java环境,Java虚拟机,JVM提供以下定义: 指令集(Bytecodes 是JVM的机器指令)。 寄存器组 类文件格式 栈 垃圾回收“堆”(实现内存的动态分配和自动回收) 内存区域,Java虚拟机,类装配器,字节码验证器,解释器,本地计算机系统,代码生成器 JIT code generator,Hello.class
10、,Java虚拟机,加载代码 类装配器 加载程序运行所需要的所有的类。类装配器将本地文件系统的类的名字空间与从网络资源来的类的名字空间分开。这样就限制了特洛伊木马程序,因为本地类总是首先加载。 一旦所有的类被加载,可执行程序的内存布局就被确定了。内存地址被分配给符号引用表,查找表被建立。由于内存的布局出现在运行时刻,防止了对于代码域的未授权的访问。,Java虚拟机,验证代码 字节码验证器 java代码在你的机器上执行前要经过几个测试。字节码验证器测试代码段的格式,检查代码段是否有非法代码(伪造指针,对象上的非法存取,试图改变对象类型等)。 所有网络来的类文件都要经过字节码验证。 执行代码 解释器
11、,JAVA开发工具,JDK(Sun)命令行 Java WorkShop(Sun) Symantee CAF JBuilder(Borland) Visual J+(MicroSoft) Java Studio (Sun) Visual Age for Java(IBM) Eclipse集成开发环境,J2 SDK实用程序,javac Java编译器,将Java源程序编译成字节码 java Java解释器,直接从类文件执行Java应用程序, 即application appletviewer 小程序浏览器,执行html文件上的Java小程序, 即Applet,Java源程序,LotsHellosA
12、pplication . javapublic class LotsHelloApplication public static void main(String args)for ( int j=0; j5; j+) System.out.println(“Hello! World,”); ,类声明与定义,类中的方法,语句结尾以分号标志,用大括号括起 语句组,Java语言中的大小写,JAVA语言严格区分大小写。 推荐书写风格: 类名第一个字母大写 PhoneCard 方法名第一个字母小写 getBalance() 变量名第一个字母小写 cardNumber 各标识名内含单词首字母大写,Jav
13、a程序的几种类型,Application “Java应用程序”是可以独立运行的Java程序。 由Java解释器控制执行。 Applet “Java小程序”不能独立运行,而是被嵌入到Web页中。 由Java兼容浏览器控制执行。,Client 机,Server 机,Browser,网页,字节码,Java程序的几种类型(续),Serverlets 是Java技术对CGI 编程的解决方案。 是运行于Web server上的、作为来自于Web browser 或其他HTTP client端的请求 和 在 server上的数据库及其他应用程序之间的中间层程序。 Serverlets的工作是: 读入用户发来
14、的数据(通常在web页的form中) 找出隐含在HTTP请求中的其他请求信息(如浏览器功能细节、请求端主机名等。 产生结果(调用其他程序、访问数据库、直接计算) 格式化结果(网页) 设置HTTP response参数(如告诉浏览器返回文档格式) 将文档返回给客户端。,程序类型与用户界面,Application程序基本结构,由一个或多个“类”组成。 其中必须有一个“类”定义了main() 方法,该方法是自动执行的类方法,是Java应用运行的起始点。而这个类也就称之为“主类”。 HelloApplication.java public class HelloApplication public s
15、tatic void main(String args) System.out.println(“Hello, Java world! “); ,1,Application程序上机过程,编辑源程序 Edit HelloApplication.java (dos命令) 使用notepad编辑器编辑java源程序更为方便。 编译 javac javac HelloApplication.java产生HelloApplication.class 文件 解释执行 java java HelloApplication (隐含.class文件) Java程序文件 源文件名要与主类名同名(包括大小写) 一个
16、类产生一个.class文件,applet 小程序,HelloApplet.java import java.awt.Graphics; import java.applet.Applet; /将java.applet包中/的系统类Applet引入本程序 class HelloApplet extends java.applet.Applet public void paint(Graphics g) g.drawString(“Hello, Java World!”, 10,20); ,2,applet 小程序,编译java小程序javac HelloApplet.java 使用文本编辑建立t
17、est.html文件,嵌入HelloApplet.class浏览html文件 使用appletviewerappletviewer test.html 使用常规的浏览器,Application:,Applet:,D: edit HelloApplication.java D: javac HelloApplication.java D: java HelloApplication Hello, Java World!,D: edit HelloApplet.java D: javac HelloApplet.java D: edit test.html D: appletviewer test.html,Java上机过程,