Java语言概述与开发环境_第1页
Java语言概述与开发环境_第2页
Java语言概述与开发环境_第3页
免费预览已结束,剩余5页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、I.IJava语言发展简史1995年:sun公司发布Java语言。1996年年初:发布了JDK1.Q这个版本包括两部分:运行环境(即JRE开发环境(即JDK)运行环境包括核心API、集成API、用户界面API、发布技术、Java虚拟机(JVM)5个部分;开发环境包括编译Java程序的编译器(即javac命令)。1997年2月18日发布JDK1.1。JDK1.1增加了JIT卸时编译)编译器。JIT和传统的编译器不同,传统的编译器是编译一条,运行完后将其扔掉;而JIT会将经常用到的命令保存在内存中当下次调用时就不需要重新编译了,通过这种方式让JDK在效率上有了较大提升。1998年12月:sun发布

2、了Java历史上最重要的JDKB本:JDK1.2伴随JDK1.2同发布的还有JSP/ServletEJ澹规范,并将Java分成了J2EEJ2S畤日J2ME三个版本。JDK1.2还把它的API分成了三大类:核心API、可选API、特殊API。2002年2月:sun发布了JDKB史上最为成熟的版本:JDK1.42004年10月,sun发布了万众期待的JDK1.5同时,sun将JDK1.5改名为JavaSE5.0J2EEJ2ME也相应的改名为JavaE琢日JavaMEJDK1.5增加了诸如泛型、增强的for语句、可变数量的形参、注释(Annotations)白动拆箱和装箱等功能;同时,也发布了新的企

3、业级平台规范,如通过注释等新特性来简化EJ国勺复杂性,并推出了EJB3.0规范。还推出了白己的MVC框架规范:JSFJSF似于ASPNET的服务器端控件,通过它可以快速的构建复杂的JS脚面。2006年12月,sun公司发布了JDK1.62009年4月20日,Oracle宣布将以每股9.5美元的价格收购sun,该交易的总价值约为74亿美元。2011年7月28日,Oracle发布了JavaSE7引入了二进制整数、支持字符串的switch语句、菱形语法、多异常捕捉、白动关闭资源的try语句等新特性。2014年3月18日,Oracle发布了JavaSE8这次版本升级为Java带来了全新的Lambda表

4、达式等大量新特性。1.3Java程序运行机制1.3.1高级语言的运行机制Java语言是一种特殊的高级语言,它既具有解释型语言的特征,也具有编译型语言的特征,因为Java程序要经过先编译,后解释两个步骤。计算机高级语言按程序的执行方式可以分为编译型和解释型两种。现有的C、C+-KObjective-C、Pascal等高级语言都属于编译型语言。对于解释型语言,可以认为:每次执行解释型语言的程序都需要进行一次编译,因此解释型语言的程序运行效率通常较低,而且不能脱离解释器独立运行。但解释型语言有一个优势:跨平台比较容易,只需提供特定平台的解释器即可,每个特定平台上的解释器负责将源程序解释成特定平台的机

5、器指令即可。解释型语言可以方便的实现源程序级的移植,但这是以牺牲程序执行效率为代价的。现有的Ruby、Python等语言都属于解释型语言。1.3.2Java程序的运行机制和JVMJava语言比较特殊,有Java语言编写的程序需要经过编译步骤,但这个编译步骤并不会生成特定平台的机器码,而是生成一种与平台无关的字节码(也就是*.class文件)。当然,这种字节码不是可执行性的,必须使用Java解释器来解释执行。因此可以认为:Java语言既是编译型语言,也是解释型语言。或者说,Java语言既不是纯粹的编译型语言,也不是纯粹的解释型语言。Java程序的执行过程必须经过先编译、后解释两个步骤,如图1.1

6、所示。Jav鲜言里负责解释执行字节码文件的是Java虚拟机,即JVM(JavaVirtualMachine)。JVM是可运行Java字节码文件的虚拟计算机。当使用Java编译器编译Java程序时,生成的是与平台无关的字节码,这些字节码不面向任何具体平台,只面向JVM。不同平台上的JVM都是不同的,但它们都提供了相同的接口。JVM是一个抽象的计算机,和实际的计算机一样,它具有指令集并使用不同的存储区域。它负责执行指令,还要管理数据、内存和寄存器。Oracle公司制定的Java虚拟机规范在技术上规定了JVM的统一标准,具体定义了JVM的如下细节:指令集、寄存器、类文件的格式、栈、垃圾回收堆、存储区

7、。1.4开发Java的准备1.4.1下载和安装JDKJDK的全称是JavaSEDevelopmentKjt即Java标准开发包,它提供了编译、运行Java程序所需的各种工具和资源,包括Java编译器、Java运行时环境,以及常用的Java类库等。Java运行时环境,它的全称是JavaRuntimeEnvironment,因此也被称为JRE它是运行Java程序的必须条件。注意:简单地说,JRE&含JVM。JVM是运行Java程序的核心虚拟机,而运行Java程序不仅需要核心虚拟机,还需要其他的类加载器、字节码校验器以及大量的基础类库。JREB了包含JVM之外,还包含运行Java程序的其它环

8、境支持。一般而言,如果只运行Java程序,可以只安装JRE安装JVM是不够的),无需安装JDK开发Java程序,则选择安装JDKJDK包含了JRE后来开发JavaEE用时,安装JavaEESDK包含了JDK安装JDK步骤:登录Oracle官方网站,根据所用电脑系统选择合适的JDK版本。开始安装,注意不装publicJRE把它去掉。DevelopmentTools是JDK的核心,包括编译Java程序必需的命令工具。实际上,它已经包含了JRE安装SourceCode这个选项将会安装Java所有核心类库的源代码。选择JDK的安装路径,系统默认安装在C:ProgramFilesJav痛径下,但不推荐安

9、装在有空格的路径下,会导致一些未知问题。示例路径:。基本目录解释:bin:该路径下存放了JDK的各种工具命令,常用的javac、java等命令就放在该目录下。db:该路径是安装JavaDB的路径。include:一些平台特定的头文件。jre:该路径下安装的就是运行Java程序所必需的JRE环境。lib:该路径下存放的是JDK工具命令的实际执行程序。javafx-src.zip该压缩文件里存放的就是JavaF瀚有核心类库的源代码。src.zip:该压缩文件里存放的是Java所有核心类库的源代码。READMELICENSE?说明性文档。1.4.2设置PATHM境变量Windows不区分大小写,而L

10、inux区分大小写,因此只需要设置PATHW境变量即可(就通用了)。在win10系统中右击计算机,选择属性,进入高级系统设置,选择环境变量,设置如下:在用户变量中(或者系统变量(对所有用户有效)添加一个新变量:变量名:JAVA_HOM肆量值为:jdk安装目录,如D:Javajdk1.8.0_60设置PATH®量:在PATH®量的变量值前面添加%JAVA_HOME%bimP可(注意不要丢失分号)。该步骤现在可以省略.;JAVA_HOME%libdt.jar;%JAVA_HOME%libtools.jar;(classpath环境变量,1.5后可以不配)在Windows命令行界

11、面键入javac或java命令,测试环境变量是否配置成功。1.6Java®序的基本规则1.6.1 Java®!序的组织形式Java程序必须以类(class勺形式存在,类(class隹Java程序的最小程序单位。Java程序不允许可执行性语句、方法等成分独立存在,所有的程序部分都必须放在类定义里。Java解释器规定:如需某个类能被解释器直接解释执行,则这个类里必须包含main方法,而且main方法必须使用publicstaticvoid来修饰,且main方法的形参必须是字符串数组类型(Stringargs)。Java虚拟机就是从这个main方法开始解释执行。因此,main方法

12、是程序的入口。对于一个大型的Java程序而言,往往只需要一个入口,也就是只有一个类包含main方法,而其它类都是用于被main方法直接或间接调用的。1.6.2 JavO®文件的命名规则(1) Jav雅序源文件的后缀必须是.java,不能是其它文件后缀名。在通常情况下,Java程序源文件的主文件名可以是任意的。但有一种情况例外,如果Java程序源代码里定义了一个public类,则该源文件的主文件名必须与该public类的类名相同。(因此一个Java源文件里可以包含多个类定义,但最多只能定义一个public类)。建议:一个Java源文件只定义一个类,不同的类使用不同的源文件定义,让Jav

13、a®文件的主文件名与该源文件中定义的public类同名。1.7垃圾回收机制Java程序的内存分配和回收都是由JR碓后台白动进行的。JR绘负责回收那些不再使用的内存,这种机制被称为垃圾回收(GarbageCollection,GC通常JRE会提供一个后台线程来进行检测和控制,一般都是在CPU空闲或内存不足时白动进行垃圾回收,而程序员无法精确控制垃圾回收的时间和顺序等。Java的堆内存是一个运行时数据区,用以保存类的实例(对象),Java虚拟机的堆内存中存储着正在运行的应用程序所建立的对象,这些对象不需要程序通过代码来显式地释放。除了释放没用的对象外,垃圾回收也可以清除内存记录碎片。垃圾

14、回收使得Java虚拟机具有两个显著的优点。垃圾回收机制可以很好的提高编程效率。在没有垃圾回收机制时,可能需要花很长的时间来解决一个难懂的存储器问题。在用Java语言编程时,依靠垃圾回收机制可大大缩短时间。(1) 垃圾回收机制保证程序的完整性,垃圾回收是Java语言安全性策略的一个重要部分。一个潜在缺点:它的开销影响程序性能。垃圾回收具有如下几个特点:(1) 垃圾回收机制的工作目标是回收无用对象的内存空间,这些内存空间都是JVM堆内存里的内存空间,垃圾回收只能回收内存资源,对其它物理资源,如数据库连接、磁盘I/O等资源则无能为力。(2) 为了更快的让垃圾回收机制回收那些不再使用的对象,可以将对象的引用变量设置为null,通过这种方式暗示垃圾回收机制可以回收该对象。垃圾回收发生的不可预知性。程序员可以通过调用Runtime对象的gc(威System.gc(痔方法来建议系统进行垃圾回收,但这种方法仅仅只是建议,依然不能精确控制垃圾回收机制的执行。(3) 垃圾回收的精确性主要包括两个方面:一是垃圾回收机制能够精确的标记活着的对象;二是垃圾回收器能够精确地定位对象之

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论