关于Java
Java既是编程语言又是平台。
Java编程语言
Java编程语言是一种高级语言,具有以下的几种特性:
- 简单(相对于C/C++这类语言)
- 面向对象(而且是纯面向对象)
- 跨平台(只要该平台有JRE就可以运行Java程序)
- 分布式(Java的RMI机制是目前分布式技术中最成熟的)
- 高性能(Java是编译解释混合的语言,比Python,Javascript这类解释型语言效率高很多,当然性能上不如C/C++这类编译型的语言)
- 多线程(Java内置多线程功能)
- 动态的(Java提供了反射机制)
- 安全的(舍弃C/C++的指针,使用垃圾回收机制,强制类型转换机制,异常处理机制,安全性检查等机制)
Java跨平台原理
在Java编程语言中,所有源代码用以.java
扩展名结尾的纯文本文件编写。然后用javac
(Java Compiler)将源文件编译成.class
结尾的字节码文件。字节码文件中不包含与CPU相关的具体指令,而是JVM(Java Virtual Machine)使用的指令。运行时,使用java
启动工具将java程序运行在JVM上。JVM负责将.class
字节码文件解释成CPU能认识的机器语言。
因为JVM可以运行在许多不同的操作系统上,所以相同的.class
文件能够在诸如Windows,Solaris OS,Linux,Mac OS等多种操作系统上运行。某些虚拟机(如Java HotSpot)还会在运行时通过执行附加操作(如将使用频率较高的代码段翻译成本地及其代码),来提升Java应用程序的性能。
Java平台
平台指的是程序运行的硬件或软件环境。比如常见的Windows,Linux,MacOS操作系统。大多数情况下平台指的是操作系统和底层硬件的组合。而Java平台与这些平台的不同之处在于,Java平台只是一个软件平台。
Java平台有两部分组成:
- JVM(Java虚拟机)
- Java API(应用程序接口)
JVM前面也提到了,它是Java平台的基础,并且被移植到了各种硬件平台。
API是一些现成的软件组件,提供了许多有用的功能。这些功能以类和接口的形式按功能类别封装到各个库中,这个库也就是package
(包)。
作为一个独立的平台环境,Java平台可能比本地机器代码慢一些。但是随着Java编译器和Java虚拟机技术的不断发展,Java程序的性能能够接近本地机器代码的性能,并且不会影响到Java程序的可移植性。
Java能够做什么
Java是一个强大的软件平台,Java API文档中提供了一张整体架构图大致概括了Java平台的所有功能。
常用Java工具
这些工具在JDK主目录下的bin目录下。
- 基本工具(appletviewer,extcheck,jar,java,javac,javadoc,javah,javap,jdb,jdeps)
- 安全工具(keytool,jarsigner,policytool,kinit,klist,ktab)
- 国际化工具(native2ascii)
- 远程方法调用(RMI)工具(rmic,rmiregistry,rmid,serialver)
- Java IDL和RMI-IIOP工具(tnameserv,idlj,orbd,servertool)
- Java部署工具(javapackager,pack200,unpack200)
- Java Web Start Tools(javaws)
- Java疑难解答,分析,监控和管理工具(jcmd,jconsole,jmc,jvisualvm)
- Java Web服务工具(schemagen,wsgen,wsimport,xjc)
其中常用的工具有:
- javac(Java Compiler):Java的编译器
- java:Java应用的启动程序
- javadoc(Java Document):Java API文档生成器
- javah(Java Header):JNI开发时用于生成C语言头文件
- jdb(Java Debug):Java调试器
- jar(Java Archive):Java类库打包工具
- native2ascii(Native to ASCII):国际化转码工具,将本地编码字符使用Unicode字符集转码成
\uXXXX
表示形式