版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1,JAVA语言程序设计,西藏民族学院 张孝飞,2,第1章 Java语言概述,1.1 Java语言的发展历史 1.2 Java语言的特点 1.3 java 虚拟机 1.4 Java程序种类和结构,3,1.1 Java语言的起源和发展,1.1.1 几种典型语言的发展历程 1.1.2 Java语言的起源 1.1.3 Java语言的发展,Return,一般认为,B语言导致了C语言的诞生、C语言演变出C+语言,而Java语言则明显带有C+语言的特征。本节将对Java语言的起源和发展作简要介绍。,4,1.1.1 几种典型语言的发展历程,Return,Java总是和C+联系在一起,而C+则是从C语言派生而
2、来的,所以Java语言继承了这两种语言的大部分特性。Java的语法是从C继承的,Java许多面向对象特性都受到C+的影响。事实上,Java中几个自定义的特性都来自于或可以追溯到它的这些前驱语言。略有不同的是,Java语言完全面向对象,从而摒弃了二者的不足之处。Java语言的诞生与过去约30年中计算机语言的不断改进和发展密切相关。基于这些原因,下面我们将简要介绍一下这个发展历程。,1现代编程语言的诞生:C语言 2对编程方法的新需要:C+语言 3时机的到来:Java语言的出现,5,1.1.2 Java语言的起源,Return,1990年12月,SUN公司的一个开发小组从事家用电器方面的小型研究项目
3、。最初的方案是用C+开发。开发人员James Gosling对C+实现这一任务感到失望,决定自己编写一种更好的语言来实现这一项目。最初,这种语言命名为OAK , 后来发现“Oak”已经是Sun公司另外一种语言的注册商标,于1995年更名为“Java”,即太平洋上一个盛产咖啡的岛屿的名字。从1992 的秋天Oak问世,到1995春天公开发布Java语言,许多人都对Java的设计和改进做出了贡献。,6,1.1.3 Java语言的发展,JAVA最初为用于家用电器而开发,JAVA的小型、安全、可移植性等特点,使其适用于WEB。 JAVA产生的时候,Internet正日益流行。95年8月,Netscap
4、e公司的浏览器率先支持JAVA。随后,Microsoft的Internet Explorer浏览器也支持JAVA。这样,随着万维网的日益普及,JAVA得到了广泛的使用。,7,Java语言在互联网时代获得巨大成功,互联网的出现使得计算模式进入了网络计算时代。 网络计算模式的特点 计算机是异构的即计算机的类型和操作系统是不一样的。 例如:SUN工作站的硬件是SPARC体系,软件是UNIX中的Solaris操作系统,而PC机的硬件是INTEL体系,操作系统是windows或者是Linux。 代码可以通过网络在各种计算机上进行迁移。 网络的计算模式迫切需要一种跨平台的编程语言,使得用它编写的程序能够在
5、网络中各种计算机上能够正常运行,Java就是在这种需求下应运而生的。 Java语言具有安全、跨平台、面向对象、简单等适用于网络的显著特点,使得它已经成为最流行的网络编程语言。,8,Java版本历史,1996年初,Sun公司发布了Java 1.0. 该版本实际上并不能用来进行真正的应用程序开发。 1998年,Sun在JavaOne会议上发布Java 1.2。 三天后,又将Java1.2改名为“Java 2标准版软件开发工具箱1.2版” 在Java 1.2中分为3个版本: J2SE:标准版,面向一般用户 J2ME:微型版,用于手机等嵌入式设备的应用程序开发 J2EE:企业版,用于服务器端处理的软件
6、开发。 本课程内容主要基于J2SE。,9,Java版本历史(续),Java 1.3和1.4对最初的Java 2版本作了一些细微的改进,如扩展了标准类库、提高了系统性能个,修正bug。 2004年发布的Java 1.5改称Java5.0,该版本对Java作出了重大改进: 2006年12月,JDK 6.0正式版发布。,10,Java SE 5.0语言上的主要变化,Java SE 5.0 (即JDK 5.0 ,其内部版本号为JDK 1.5.0) 是从JDK 1.0版本以来,语言上变化最大的版本,其新增的主要功能包括: 泛型(Generics) 自动封装(Autoboxing/Unboxing) 增强
7、的for循环 枚举类型 可变参数 静态导入 注解(Annotation, Metadata),11,Java SE 6.0的新特性,Web服务支持 内嵌脚本语言 桌面集成API 还有很多很多,12,Java SE 5.0, 6.0, 100多项新特性 功能很强大 需要投入时间学习细节 创造机会使用新特性 尽可能升级到最新的JVM https:/M,13,Java目前的主要应用,许多大公司购买了Java的许可证。 众多软件开发商开始支持Java软件产品。 面向对象的应用开发。 Intranet(企业内部网)上的软件开发。 动态画面的设计,包括图形图像的调用。 与各类数据库连接查询的SQL语句实现
8、。 其他应用类型的程序。,14,1.2 Java语言的特点,Java白皮书解释了设计Java语言的初衷及完成的情况,在白皮书的摘要中有11个关键术语: 1.简单性 2面向对象 3分布式 4健壮性 5安全性,6.体系结构中立 7.可移植性 8.解释型 9.高性能 10.多线程 11.动态性,15,1.2 Java语言的特点(续),1. 简单性 目标之一:建立一种简单的系统,它允许使用者不需要像现今的标准程序一样接受深奥的训练就能轻易地设计程序,而且要符合当今的标准惯例。 Java的语法与C+的语法相似,但删除了许多极少被使用、不容易理解和令人混淆的C+功能,如运算符重载(operator ove
9、rloading)、多重继承(inheritance) 以及指针; Java增加自动内存垃圾收集(auto garbage collection) 功能,因此简化Java程序工作。,16,1.2 Java语言的特点(续),2. 面向对象 将事物抽象为对象。 面向对象语言关注“对象”和接口 非面向对象语言关注“过程”和“工具” 提高了程序代码的重用性,17,Java语言与C+,Java产生于C之后,是完全的面向对象的编程语言,充分吸取了C的优点,同时摒弃了C的一些弊端。 采用了程序员所熟悉的C和C语言的许多语法,同时又去掉了C语言中指针、内存申请和释放等影响程序健壮性的部分。 Java语言的一个
10、目标是跨平台,因此采用了解释执行而不是编译执行的运行环境,在执行过程中根据所在的不同的硬件平台把程序解释为当前的机器码,实现跨平台运行。 Java语言具备动态下载程序代码机制,是为了适应网络计算的特点程序可以根据需要把代码实时地从服务器中下载到目标机器来执行。在此之前还没有任何一种语言能够支持这一点。,18,1.2 Java语言的特点(续),3. 分布式(网络适用性) 将复杂的网络编程变成简单化: 提供大量的系统模块支持TCP/IP协议的编程。 远程方法调用机制使得分布式对象之间可以进行通信。 Java应用程序可以借由URL在通过网络开启和存取对象,就如同存取一个本地(local)文件系统一样
11、简单。,19,1.2 Java语言的特点(续),4. 健壮性 Java的设计目标之一为程序的可靠性 强调在设计初期即检查可能存在的问题(编译检查), 运行时执行动态(runtime)检测,并排除容易出现错误的条件。 Java和C+的最大不同是Java可以消除重写内存和损坏数据的可能性。,20,1.2 Java语言的特点(续),5. 安全性 Java设计目的是要供使用于网络/分布式运算环境。为此,Java非常强调安全性 禁止运行时堆栈溢出。(蠕虫病毒常用的攻击手段) 禁止在自己的处理空间之外破坏内存 未经授权禁止读写文件,21,1.2 Java语言的特点(续),6. 体系结构中立性(平台无关性)
12、 Java编译器能产出与某一计算机结构无关的字节代码指令,该字节码可以在多种不同处理器上执行。 Java应用程序能够在网络上的各种异构计算机上执行。,22,1.2 Java语言的特点(续),7. 可移植性 在Java中,数据类型的大小固定(C/C+数据类型大小不不固定),消除了代码移植时数据类型大小不一致的问题; 二进制数据采用固定的格式存储和传输,消除了字节顺序的困扰。 定义了可移植的接口。 例如:有一个抽象的window类给出了在UNIX、Windows和Macintosh环境下的不同实现。,23,1.2 Java语言的特点(续),8. 解释型 Java解释器(interpreter) 将
13、字节码翻译成本地机器指令执行。,编写Java程序,文本格式,字节码文件,面向Linux的JRE,面向Windows的JRE,传输,编译,传输,24,1.2 Java语言的特点(续),9. 高性能 字节码可以(在运行时)被快速地翻译成运行该应用程序的特定CPU的机器码。 提供“即时编译”方式,即一次将字节码编译成本地代码,并将结果缓存起来。在需要的时候重新调用。 在Java虚拟机技术中,还可以监控代码被执行的“热度”。将最常执行的字节码部分可以逐渐翻译成本地代码并小心地优化,能够极大地提高程序执行速度。,25,1.2 Java语言的特点(续),10. 多线程 Java中的多线程处理非常便捷。只要
14、OS支持,Java中的线程就可以利用多个处理器。 但在底层,主流平台的线程实现机制各不相同,Java并没有对此实现平台相关性。在不同的机器上,只是调用多线程的代码完全相同,Java仅是简单地把多线程的实现交给底层的OS去处理。 问题:正因为如此,有些程序员不得不为不能深入控制线程而苦恼,并认为这是Java的缺陷之一。,26,1.2 Java语言的特点(续),11. 动态性 Java能支持不断变化的运算环境。 C+中,如果修改了某一个类,整个程序都得重新编译。 在Java中,可以在类库中自由地加入新的方法和实例变量,而不影响用户的程序执行。虽然C+也可以实现这样的动态性,但使用起来非常复杂,代价
15、也很高。,27,1.3 Java虚拟机,Java虚拟机(Java Virtual Machine,JVM)是软件模拟的虚拟计算机,JVM的建立需要针对不同的软硬件平台做专门的实现,既要考虑处理器的体系结构,也要考虑操作系统的种类。 目前在SPARC结构、X86结构、MIPS和PPC等嵌入式处理芯片上,在UNIX、Linux、Windows和部分实时操作系统上都实现了Java虚拟机。 JVM中的Java解释器(java.exe)负责将字节码文件解释成为特定的机器码并执行。JVM执行Java程序的过程如图1-1所示。,28,1.3 Java虚拟机(续一),图1-1 JVM执行Java程序的过程,2
16、9,1.3 Java虚拟机(续二),图1-2 JVM运行时数据区,30,1.4Java程序的类型,Application程序:需要独立的解释器解释运行。必须有main()方法。 Applet程序:嵌入在HTML编写的WEB页面中的非独立程序。由Web浏览器内部包含的Java解释器解释运行。,31,1.4.1 JAVA Application 结构,例如:有一个java源程序可以是如下结构,该源程序命名为HelloWorldApp.java: package javawork.helloworld; /*把编译生成的所有.class文件放 到包javawork.helloworld中*/ imp
17、ort java.awt.*; /告诉编译器本程序中用到系统的AWT包 public class HelloWorldApp. public static void main(String args) . /*公共类HelloWorldApp的定义, 名字与文件名相同*/ class TheFirstClass. /第一个普通类TheFirstClass的定义 class TheSecondClass. /第二个普通类TheSecondClass的定义 . /其它普通类的定义 interface TheFirstInterface. /第一个接口TheFirstInterface的定义,32,
18、1.4.2 java编程规范,包(package) 即目录,它能够将某一个类放入到某个目录当中,使得程序员能够更好地管理Java类(Class)和接口(Interface)。 import语句 如果在源程序中用到了除java.lang这个包以外的类(无论是系统的类还是自己定义的包中的类),都必须用import语句标识,以通知编译器在编译时找到相应的类文件。,33,1.4.3 Java命名规范,包名:系统包名是全小写的名词,中间可以由点分隔开,例如:java.awt.event; 类名:通常首字母大写由多个单词合成一个类名,每个单词的首字母也要大写,例如:class HelloWorldApp;
19、 接口名:命名规则与类名相同,例如:interface Collection; 方法名:往往由多个单词合成,第一个单词通常为动词,首字母小写,中间的每个单词的首字母都要大写,例如:balanceAccount,isButtonPressed 变量名:全部字母小写,一般为名词。例如:length; 常量名:习惯上应该全部字母大写,单词间用下划线“_”,分隔。例如: MAX_SIZE, R_PG13, TERM_LIMIT,34,1.4.4 Java命名规范(续),参数的命名:参数的命名规范和方法的命名规范相同,而且为了避免阅读程序时造成迷惑,请在尽量保证参数名称为一个单词的情况下使参数的命名尽可
20、能明确。 Javadoc注释:除了常见的注释方式之外,Java语言规范还定义了一种特殊的Javadoc多行注释:以/*开头,而以*/结束。 使用Javadoc注释的好处:编写的注释可以被自动转为在线文档,省去了单独编写程序文档的麻烦。例如: /* This is an example of* Javadoc* author Darchon* since 2008-2-28*/ #,Eclipse演示,35,1.4.5 Java Application 注意问题,注意问题: (1) 类个数:至少一个类,最多只能有一个public类 (2) 源文件命名:若有public类,源文件必须按该类命名 (
21、3) 标识符:区分大小写 (4) main()方法:一个应用程序有且只有一个main()方法,main()方法必须包含在一个类中,该类即为应用程序的外部标志。,36,注意:存盘时文件名和公共类名(用public声明)要一致 HelloWorldApp.java,public class HelloWorldApp public static void main(String args) System.out.println(“Hello World!”); ,1.4.6 Java应用程序的编辑,37,1.5 JAVA程序的集成开发环境,1. NetBeans 2. Eclipse,3. JBu
22、ilder2007,38,1.5.1 NetBeans,1下载和安装NetBeans NetBeans官方网站的下载页面 /downloads/index.html,图1-22 NetBeans 5.5 IDE主界面,39,1.5.2 Eclipse,1下载和安装Eclipse 1)/downloads/index.php,图1-30 Eclipse官方下载页面 图1-31 下载Eclipse的镜像服务器页面,40,1.5.2 Eclipse,2)下载后得到的是一个压缩包文件“eclipse-SDK-3.2.2-win32.zip”,将下载的压缩包解压缩到某个磁盘(此处为“C:”),即可完成Eclipse的安装。解压缩后生成的eclipse文件夹中的文件结构如图1-32所示。其中plugins和features文件夹存放的是插件的相关文件,双击“eclipse.exe”即可启动Eclipse 3.2.2集成开发环境。 3)用户可以根据需要到Eclipse插件的官方网站(/ eclipse/plugins.jsp)下载有关插件,插件的安装方法有链接和复制两种。,4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 腹腔穿刺护理考试题库及答案解析
- 2025-2030绿色供应链管理市场需求变化及投资可行性评估报告
- 2025-2030组织工程产品检测技术发展与应用场景拓展研究
- 2025-2030绘本阅读对幼儿语言思维发展的影响机制研究
- 2025-2030线上亲子互动平台的内容创新与用户留存策略
- 2025-2030纳米药物递送技术突破与临床应用分析报告
- 2025-2030纳米材料产业市场供需状况及投资前景分析研究报告
- 2025-2030红外热成像光学系统成本下探对安防市场影响报告
- 2025-2030精酿啤酒行业小微企业扶持政策分析与创业孵化模式研究
- 2025-2030精酿啤酒标准化体系建设与行业规范发展路径专题报告
- 四川省绵阳市重点中学2023-2024学年高二年级上册期中考试语文试卷(含答案)
- 人教版地理八年级上册知识点总结
- 青钢竹叶剑的文化传承与发展
- 电测应力应变实验课件ppt
- 乘法小故事小学二年级
- 战略地图及平衡计分卡课件
- 民航服务沟通PPT完整全套教学课件
- (鲁科版五四制)小学三四五年级全部单词(带音标)
- 中考模拟考试语文答题卡Word版可以编辑(全黑色)
- jzzl015筑博设计新区地块
- 新冠肺炎疫情疫源地消毒技术指南
评论
0/150
提交评论