- Java程序设计教程(慕课版)
- 满志强 张仁伟 刘彦君
- 1951字
- 2025-03-31 17:29:10
1.1 Java简介
1.1.1 Java的产生与发展
Java语言是由James Gosling创建的。James Gosling于1983年在卡内基梅隆大学(CMU)获计算机科学博士学位,毕业后到IBM工作,后来又到SUN公司工作,1990年与Patrick Naughton和Mike Sheridan等人设计了一种语言叫作Oak,后来改名为Java。
Java语言从发布到现在,一直处于快速发展过程中,具体体现在它的版本升级以及每个新版本带来的新特性上。Java语言有3个主版本:标准版(Standard Edition,SE)、企业版(Enterprise Edition,EE)和微型版(Micro Edition,ME)。
本书以标准版1.7为主介绍Java语言的基础语法和实用类以及应用编程知识。
Java标准版从JDK1.0开始,当前在Oracle官网发布的最新JDK版本是Java SE 8u65 /8u66。Java 开发工具包即JDK(Java Development Kit),顾名思义,可以用它开发、调试、编译、运行Java程序。
在JDK各版本中,有2个版本的发布具有里程碑意义,它们是JDK1.2和JDK1.5。
JDK1.2的发布版本被称之为Java 2,此处的“2”表示“第二代”。Java 2的发布可以说标志着一个Java“新时代”的开始。通过Java 2,Sun公司将Java产品重新包装成Java 2平台标准版J2SE(Java 2 Platform Standard Edition),Java 2平台企业版(J2EE)和Java 2平台微型版(J2ME),其后推出的版本一直冠以 Java 2,例如 J2SE1.3、J2SE1.4。这种看似概念混淆的命名方式直到JDK1.6版才有改变。
Java 2增加了大量新特性,例如Swing和集合框架,并且改进了Java虚拟机和各种编程工具。Java 2建议不再使用某些特性,例如对于Thread类,建议不再使用该类中的suspend()、resume()和stop()等方法。
2004年发布的J2SE5,即JDK1.5,也是革命性的版本。与先前的大多数Java升级不同,该版本有很多重要的改进,从根本上扩展了 Java 语言的应用领域、功能和范围。JDK1.5的主要新特性包括泛型、注解、自动装箱和自动拆箱、静态导入等10余项内容。
在2005年JDK1.6推出之后,J2SE/J2EE/J2ME的称谓统一改为JavaSE/JavaEE/JavaME。有人出于习惯,仍称之为J2SE/J2EE/J2ME。
介绍JDK新特性一般有两种方式:将其融入各章介绍或者单独介绍,本书采用融入的方式。对JDK新版本与新特性,希望读者给予足够的关注。所谓工欲善其事,必先利其器。新特性意味着一些新的编程利器的引入。
JDK1.7的新特性包括switch语句条件表达式取值允许为String类型、支持二进制整型字面量、支持数值字面量下划线、支持构造泛型实例时的类型推断等。
1.1.2 Java的特点
1.简单性
Java语言语法与C/C++有很多相似的地方,例如数据类型、运算符、表达式和语句等。对比一下关键字列表就可以发现这种相似性。可以将C与Java的语法做详细对比,找出相同点和不同点。通过对比法可以提高学习效率,同时也有利于快速辨析清楚语法规则和用法的许多细微之处。
2.解释式
高级语言的工作方式有两种:编译式和解释式。二者的一个显著区别是看有没有目标代码文件(.obj)和可执行文件(.exe)产生。C、C++、Pascal 等属于编译式语言,BASIC 和 Java 等属于解释式语言。编译式语言之编译器负责将源程序文件转换成目标代码文件和可执行文件,然后执行可执行文件;解释式语言则由解释器对源程序逐条语句解释执行。解释式语言分为两类:纯粹的解释式语言和介于解释式和编译式的混合形式。纯粹的解释式语言的源文件直接被逐句解释执行,没有任何中间文件生成。Java语言属于混合形式,Java源文件(.java)需转换成一种中间代码,也叫字节码文件(.class),然后用Java虚拟机(Java Virtual Machine,JVM)解释执行。这种混合形式也可称为伪编译(pseudo compile)。
开动脑筋
编译式和解释式语言各有哪些优缺点?
3.安全性
Java语言的安全性即其字节码和虚拟机的安全性。Java 通过自动垃圾回收机制、不支持指针类型、字节代码验证机制、异常处理机制等保证其安全性。实时内存分配防止程序员直接修改物理内存布局。通过字节代码验证机制对执行的字节码进行安全检验防止病毒及非法代码侵入。此外,Java的异常处理机制,对一些异常事件,如内存空间不够等,进行处理。这些构成了Java安全性的基本内容。
4.面向对象
Java语言是一种面向对象的程序设计语言。面向对象的思想使人们分析问题和解决问题更接近人类固有的思维模式,在设计程序时变得更自然顺畅。因此,用面向对象程序语言(OOPL)编程更高效。
5.平台无关
Java源文件经编译生成与计算机指令无关的字节代码,这些字节代码不依赖于任何硬件平台和操作系统。当Java程序运行时,需要由一个解释程序对生成的字节代码解释执行。这体现了Java语言的平台无关性,使得Java程序可以在任何平台上运行,如MS-DOS、Windows、Unix等,因此具有很强的可移植性。这就实现了Java “编写一次,到处运行”(write once,run anywhere)的目标。
6.多线程
Java语言支持多线程,多线程机制使得一个Java程序能够同时处理多项任务。Java提供了实现多线程程序的类,通过线程类,程序员可以方便地编写出健壮的多线程程序。
7.动态性
C语言的基本程序模块是函数。程序执行过程中所调用的函数,其代码已静态地加载到内存中。Java的类是程序构成的模块,Java程序执行所需要调用的类在运行时动态地加载到内存中,这使得Java程序运行的内存开销小。这也是它可以用于许多嵌入式系统和部署在许多微小型智能设备上的原因。Java还可以利用反射机制动态地维护程序和类,而C/C++不经代码修改和重新编译就无法做到这一点。
此外,Java语言还具有网络适用性、类库丰富、高性能等特点。