3.53k likes | 3.78k Views
SCJP 课程. Sun Certified Java Programmer. Java 的历史. 1991 年, sun 公司在 “ Green ” 项目中,开发一种基于 C++ ,并且可以满足对平台独立性和安全性的要求的新语言,该语言的创始人 James Gosling 把它命名为 oak (橡树),后来发现已经有一种计算机语言叫 oak, 便改名叫 Java (咖啡) ;
E N D
SCJP课程 Sun Certified Java Programmer
Java的历史 • 1991年,sun公司在“Green”项目中,开发一种基于C++,并且可以满足对平台独立性和安全性的要求的新语言,该语言的创始人James Gosling把它命名为oak(橡树),后来发现已经有一种计算机语言叫oak, 便改名叫Java(咖啡); • 1995年,随着Internet和WWW的迅猛发展,需要一种简练、小巧、与平台无关的语言。Sun公司看准时机,在5月的一次重大会议上正式发布了Java, 由于当时大家对万维网的浓厚兴趣,Java迅猛的发展起来; • 1996年到现在,从JDK1.0~JDK1.6,发展异常迅速,遍布从大型企业应用到个人终端的各个方面。
Java的应用 • 对众多Java追随者而言,“Java无处不在”的理念在最近的一年中已经不仅仅是一句口号了,我们惊喜地看到,基于Java技术的内容已呈现在700多万Web网页上,可以在6.5亿多台桌面系统上观看这些内容,全球已有93家运营商采用Java技术配置移动通信应用,有3.5亿部Java电话,全球60%的PC桌面采用了最新Java版本,而Java技术也已一跃成为全球第一大领先开发平台。Java技术广泛用于各类器件,从智能卡和手持器件,到工作站和服务器。Java已成为网络计算的统一平台,这一全球性的发展趋势已成为不容纷争的事实。 • 来自第七届中国Java技术及应用学术交流会
Java的应用 • “现在,第一个火星探测器已经成功登陆,国家宇航局的科学家们开始采用他们在地球上的控制系统,”JamesGosling说,“这显然是迄今为止Java应用中最酷的一举。” • Java之父James Gosling说,现在Java已经帮助我们到达了火星,谁知道“Java Everywhere”在将来会意味着什么呢?
Java的应用(J2EE) J2EE Model 2 Architecture
Java的应用(J2ME) • Mobile Phone、PDA • JavaCard
SCJP课程 SCJP开始
课程概述 本课程将描述: • Java编程语言的语法; • 面向对象概念在java中的实现; • 图形用户界面编程(AWT,Swing,SWT); • 多线程和I/O流 • 网络编程。
课程框图 • Java编程语言基础 入门 面向对象编程 标示符、关键字和数据类型 表达式和流程控制 数组
课程框图(续) • 高级面向对象编程 类设计 高级类特性
课程框图(续) • 建立应用程序 异常和断言 基于文本的应用程序
课程框图(续) • 开发图形用户界面 建立Java GUI GUI事件处理 基于 GUI的应用程序
课程框图(续) • 高级Java编程 多线程 高级I/O流 网络编程
各章概述 • 第1章: 入门 • 第2章:面向对象编程 • 第3章:标示符、关键字和数据类型 • 第4章:表达式和流程控制 • 第5章:数组 • 第6章:类设计 • 第7章:高级类特性
各章概述(续) • 第8章:异常和断言 • 第9章:基于文本的应用程序 • 第10章:建立Java GUI • 第11章:GUI事件处理 • 第12章:基于GUI的应用程序 • 第13章:多线程 • 第14章:高级I/O流
各章概述(续) • 第15章:网络编程
课程目标 • 描述主要的语言特性 • 编译和运行Java应用程序 • 使用Java API文档 • 描述Java语言的语法元素和程序结构 • 描述面向对象模式 • 使用Java编程语言的面向对象特性 • 使用异常
课程目标(续) • 使用集合API • 读写文件 • 开发图形用户界面(GUI) • 描述Java抽象窗口工具包(AWT) • 开发一个从GUI获取输入的程序 • 描述Java的事件处理机制 • 使用java.io软件包,进行I/O编程
课程目标(续) • 阐述多线程的基本内容 • 开发Java技术的多线程应用程序 • 用TCP/IP开发Java的C/S应用程序
不包括的主题 • 一般编程概念 • 一般面向对象概念
第1章:入门 完成本章学习后,应该能够: • 描述Java技术的关键特性 • 编写、编译和运行一个简单的Java应用程序 • 描述Java虚拟机(JVM)的功能 • 定义垃圾收集(gc) • 列出Java在保证代码安全方面的三个任务
第1章:入门 什么是Java技术?它是: • 一种编程语言 • 一种开发环境 • 一种应用程序环境 • 一种部署环境
第1章:入门 Java技术的主要目标: • 提供一种易于编程的语言,因为: 1.消除了其他语言(c/c++)的缺陷 2.是完全面向对象的 3.能使编程者创建更新型的、简化的代码
第1章:入门 • 提供一种解释环境: 1.提高了开发速度 2.代码更易于移植 • 使用户能够运行多个活动线程 • 可动态加载需要的类 • Java起源于网络,提供了很好的安全性
第1章:入门 Java语言通过以下技术实现了上述目标: • Java虚拟机(JVM) • 垃圾收集(GC) • 代码安全(CS)
第1章:入门 Java虚拟机是: • 提供了硬件平台规范 • 读取平台独立的编译好字节码(byte code) • 可作为硬件或软件来实现 • 在Java SDK和Web浏览器中都有实现
第1章:入门 JVM提供以下定义: • 一套指令系统(CPU) • 一组寄存器 • 类文件格式 • 堆栈 • 垃圾收集堆 • 内存区
第1章:入门 JVM的功能: • 编译时完成大部分的类型检查 • 符合Sun公司的JVM规范的虚拟机必须能够运行任何满足类文件格式的字节码
第1章:入门 垃圾收集是: • Java提供了一个系统级的线程来跟踪内存分配 • 垃圾收集是自动进行的 • 在不同的JVM实现中,垃圾收集机制大不相同
第1章:入门 • 虽然有garbage collection,但应用程序还是有可能内存溢出; • 要让一个对象满足垃圾回收,必须移掉该对象上的所有引用,通常是置null; • 定义在方法中的对象当退出方法时该对象满足垃圾回收,除非该对象被返回;
第1章:入门 • Given: • 1. class Test { • 2. • 3. public static void main (String [] args) { • 4. String first = "Greetings "; • 5. String second = "human."; • 6. String third = "Grok."; • 7. first = second; • 8. second = first; • 9. third = second; • 10. • 11. System.out.println("Now what?"); • 12. } • 13. } • Which of the following objects are eligible for collection at line 10? (Choose all that apply.) • A. "Greetings " B. "human." C. "Grok."
第1章:入门 • Given: • 1. class Example { • 2. public static void main(String args[]) { • 3. new Example().useObject(); • 4. System.out.println("Done!"); • 5. } • 6. private void useObject() { • 7. String anObject = allocateObject(); • 8. System.out.println(anObject); • 9. } • 10. private String allocateObject(){ • 11. String myObject = new String("When will I be deleted?"); • 12. return myObject; • 13. } • 14. } • When will the object created as myObject become eligible for deletion? • A. When the allocateObject() method completes. B. When the call to System.out.println() completes in line 8. C. When the useObject() method completes. D. When the main program completes.
第1章:入门 Java运行时环境执行三个主要任务: • 加载代码 • 校验代码 • 执行代码
第1章:入门 类加载器完成: • 加载程序执行需要的全部类 • 使用“名子空间”来使得类文件和本地文件系统分离 • 防止欺骗
第1章:入门 字节码校验器完成: • 代码符合JVM规范 • 代码不要违反系统的完整性 • 代码未引起操作数堆栈的上溢或下溢 • 所有操作代码的参数类型是正确的 • 无非法数据类型转换
第1章:入门 Java运行时环境JRE:见书P1-12 编译 TestGreeting.java javac TestGreeting.class Java 类加载器 字节码校验器 解释器 运行时 硬件 从硬盘、网络或其他资源下载
第1章:入门 一个基本的Java应用程序: //Sample “hello world” application public class TestGreeting{ public static void main(String[] args){ Greeting hello = new Greeting(); hello.greet(); } } public class Greeting{ public void greet(){ System.out.println(“hi”); } }
第1章:入门 编译和运行TestGreeting程序 • Compile TestGreeting.java >javac TestGreeting.java • Greeting.java自动编译 • Run >java TestGreeting • check
第1章:入门 注意: 1.一个Java源文件最多只能包含一个公有类; 2.公有类的类名必须和文件名相同; 3.主方法的形式必须是如下: public static void main(String[] a){} 4.垃圾收集。