本节书摘来自异步社区《Java和Android开发实战详解》一书中的第1章,第1.2节Java基础知识,作者 陈会安,更多章节内容可以访问云栖社区“异步社区”公众号查看
1.2 Java基础知识
Java和Android开发实战详解
Java语言类似于C++是一种编译型语言,不过两者并不完全相同,严格说来,Java是结合编译和解释优点的一种编程语言。
1.2.1 Java平台
“平台”(Platform)是一种结合硬件和软件的执行环境。Java既是一种高级的面向对象的编程语言,也是一个平台。Java平台是一种纯软件平台,它可以在各种基于硬件的平台上运行,与硬件无关,主要是由JVM和Java API两个部分组成。
1.JVM虚拟机
JVM(Java Virtual Machine,Java虚拟机)是由软件虚拟出来的一台计算机,Java源代码并不是使用Java编译程序(Java Compiler)编译成其安装实体计算机可执行的机器语言,而是JVM虚拟机的机器语言,称为“字节码”(Bytecode)。
字节码是一种可以在JVM解释或编译执行的程序,换句话说,计算机操作系统需要安装JVM,才能够使用Java解释程序(Java Interpreter)来解释和执行字节码,如图1-3所示。
图1-3中的Java源代码(扩展名为.java)在编译成字节码(扩展名为.class)后,即可在Windows、UNIX,或Machintosh的Mac OS操作系统上执行,只需安装JVM,同一个字节码文件就可以跨平台运行在不同操作系统上,使用Java解释程序来正确执行Java应用程序。
2.Java API
Java API(Java Application Programming Interface)是软件组件的一个集合,也就是C/C++语言所谓的函数库,它提供集合对象、GUI组件、文件处理、数据库访问和网络等相关的类和接口,称为“包”(Package)。
1.2.2 Java语言的版本
Java是一种高级和面向对象编程语言,其语法和C/C++语言十分相似,支持Windows、Solaris、Linux和Mac OS X操作系统,分成企业版(EnterPrise Edition,EE)和标准版(Standard Edition,SE)。
1.标准版的版本演进
本书介绍应用程序开发使用的是Java SE标准版,其版本演进如表1-3所示。
其中1.0、1.1、5.0和6简称JDK,1.2、1.3和1.4版简称SDK。在1.2版时,因为与前版有极大改进,增加全新Swing图形用户接口,所以称为Java 2平台。
从1.3版后,Sun将平台与平台开发工具的名称分开,平台分为标准版(Standard Edition,SE)和企业版(Enterprise Edition,EE)。企业版新增额外函数库,主要用来开发企业级的服务器端Java应用程序。
到了5.0版,Java版本号也分为两种:产品版本号是5.0版(Product Version),JDK使用1.5.0版,为开发版本号(Developer Version)。从SE 6版开始,官方名称由J2SE改为Java SE,不再称为Java 2,Java SE 7是平台名称,同时使用开发版本号1.7.0和产品版本号7代表新版的Java平台。
2.Java SE 7
Java SE 7是Jave语言的最新版本,也是甲骨文(Oracle)并购Sun公司后,首次发布的Java平台版本。Java SE 7版包含很多全新功能、增强功能与错误修正,可以全方面提升开发与执行Java程序的效率。
Java SE 7除了修正不少漏洞及提升整体性能外,更提供对Ruby、Python和JavaScript语言的支持,并且针对多内核环境新增全新API,并大幅提升JVM性能,使用全新文件系统API,支持异步I/O。其主要增强功能简要说明如下。
改善整体性能、稳定性及安全性。
增强Java插件的功能,方便Intenet应用程序的开发与部署。
强化Java语法,让开发人员更轻松地编写与优化Java程序代码。
增强Java虚拟机的功能,使其可以支持非Java语言。
1.2.3 Java编程语言的特点
Java语言是一款简单、功能强大和高性能的面向对象编程语言,不只这样,Java语言还拥有一些传统编程语言所没有的特点。
1.分布式
Java语言最初的规划是一种网络编程语言,可以支持各种网络协议,能够建立分布式(Distributed)主从架构的应用程序,轻松访问网络上其他主机的资源。
2.多线程
Java语言支持多线程(Multi-Threading),在同一程序能够创建多个执行小程序,称为“轻量级进程”(Light Weight Process),以便执行不同的工作,并且支持同步功能,能够避免“死锁”(Deadlock)情况的发生。
3.垃圾回收
垃圾(Garbage Collection)是指处理程序不再使用的内存空间。在C/C++语言中需要程序员自行处理内存的配置与释放,当不再使用时,程序需要提供程序代码来释放内将其存归还给操作系统,这样操作系统才能够再次分配内存给其他应用程序。
Java语言则拥有自动垃圾回收能力,程序设计者不用担心内存配置不足的问题,因为在执行Java程序时,会自动将不再使用的内存归还给操作系统。
4.异常处理
计算机程序不可能没有“小臭虫”(Bugs)。在程序运行时极有可能产生一些小错误,有些可能只会产生错误结果,但是有一些小错误可能导致严重的系统当机问题,传统编程语言并没有完善的异常处理(Exception Handling)机制,所以常常会出现一些不明的系统错误。
异常处理的目的是为了让程序能够更加“强壮”(Robust),就算程序遇到不寻常情况,也不会造成程序“崩溃”(Crashing),甚或导致整个系统的当机。