《java开发手册》学习进程之第1章初步认识java
1996年,原sun公司(现已被oracle公司收购)正式发布java.
java语言解决了Internet程序的安全性、健壮性、平台无关性、可移植性等多种问题。
1.1 java的概念
java主要是一门面向网络的高级语言,意在可以用它创建应用程序,这些程序可通过网络下载运行。java的分布式特性使网络上的任何主机都能运用部署的程序。
java语法规则与C++相似,但又避免了C++中存在的弊端。而且作为一种网络程序设计语言,它的Applet程序可被编译器编译成字节码文件并放在网页中,通过HTML做出标记,只要用户的计算机安装了Java就可以直接运行Applet。
平台是程序运行的软件和硬件的结合,大多数平台包括硬件和操作系统两部分。由于Java简单、便于网络传输、对硬件依赖比较低,它已经从一门语言演化为一个计算机平台。java平台广义的概念指可执行Java字节码的平台,其由两部分组成:JVM和Java API。
Java的平台结构(即Java程序(应用程序或小程序)在Java虚拟机上运行的结构框架):
Java Program
↓
Java API
↓
JVM
↓
Hardware-Based Platform
Java平台在具体实现中,有三种方式:
- Java虚拟机
- Java操作系统
- Java芯片
Java虚拟机在操作系统上解析Java字节码,并在操作系统的配合下执行字节码。
如图:
Java 字节码
↓
Java 虚拟机
↓
操作系统
↓
芯片
注意:包含JVM的部件才可称为Java平台。
Java操作系统将JVM和操作系统整合在一起。如图:
Java 字节码
↓
Java 操作系统
↓
芯片
Java芯片将Java操作系统和芯片整合到一起。如图:
Java 字节码
↓
Java 芯片
执行架构即上面所说的三种。通常情况下,通过Java操作系统执行Java字节码的效率比JVM的方式要好,而Java芯片的方式对程序的执行速度则有很大的提高,这种方式将会成为嵌入式系统的主流。
Java有多种优点,其中:
分布式是指数据形式的分布和操作形式的分布。数据分布指将数据存储在不同的网络主机上;操作分布指将一个计算分散到不同的网络主机上完成。
健壮性指为预防程序设计中遇到的会导致程序不稳定的一系列错误而采取的有效方法,即内存管理机制、限制指针操作、抛出运行时异常等。
平台无关性概念具有两个层次:源代码级和目标代码级。
可移植性指源代码的可移植性,即任何一个Java程序,在任何的CPU、操作系统和Java编译器上都能产生相同的运行效果。
解释性指的是它的源程序不是编译成特定的机器语言,而是编译成与系统无关的字节码,由JVM来执行。
多线程的概念来自于操作系统。Java对多线程的支持表现在:Java环境就是多线程的,而且Java语言可以内置成多线程操作。
1.2 Java术语(资料来源:《Java核心技术卷1(中文第9版)》第13页)
JDK:编写Java程序的开发工具包(包括JRE、一堆Java工具和Java基础类库rt.jar,现今的JDK分为J2SE,J2EE,J2ME)
JRE:运行Java程序的环境集合(包括JVM的标准实现和Java核心类库)
J2SE(从JDK 5.0开始,改名为Java SE):用于桌面或简单的服务器应用的Java平台
J2EE(从JDK 5.0开始,改名为Java EE):用于复杂的服务器应用的Java平台
J2ME(从JDK 5.0开始,改名为Java ME):用于手机和其他小型设备的Java平台
Java 2(J2):一个过时的术语,用于描述98年~06年之间的Java版本
SDK:一个过时的术语,用于描述98年~06年之间的JDK(不过现在的android开发用到的开发包是以这个术语来表示的)
1.3 配置Java开发环境
在http://www.oracle.com/index.html上下载好JDK后,即可安装。安装成功后,可在安装根目录中见到以下文件(本人安装的是JDK 8.0):
- bin目录:JDK中所包含的开发工具的可执行文件(文件扩展名:.exe)。path环境变量应该包含一个指示此目录的项。
- include目录:一些C语言的头文件,用于支持JNI
- jre目录:JDK中的JRE根目录,这个目录中又有两个子目录,bin目录存放JRE要用到的一些工具软件和可执行库文件DLL;lib子目录存放JRE要用到的一些类库(jar包)、参数设置和资源文件。
- lib目录:JDK要用到的开发文件。
- src.zip:构成JDK核心API所有类的源代码的归档文件。
JDK安装完成后,只有对Windows进行环境变量配置才能运行Java程序,包括Path和CLASSPATH。
设置环境变量(本人的操作系统为win8):
(1) 选择“控制面板”|“系统”|“高级系统设置”|“高级”|”环境变量“,在系统变量列表框中进行设置。
(2) 找到“JAVA_HOME”变量,单击“编辑”,输入的变量值为JDK的安装路径(一定要先安装好JDK再设置,这样你才知道自己计算机上所安装的JDK具体路径)。如果没有“JAVA_HOME”,则先新建该变量再设置即可。
(3) 同理,将“PATH”变量值设置为“%JAVA_HOME%\bin”,并以分号与其后面的变量值隔开。
(4) 将”CLASSPATH“变量值设置为”.; %JAVA_HOME%\lib\dt.jar %JAVA_HOME%\lib
\tools.jar“。
将JDK目录中的bin目录设置在Path下可以使得系统可以在Path的路径(通过”;“可以让Path存储不同的路径,其它变量亦是如此)里识别Java的命令(这些命令需要调用JDK中的bin目录下的程序),而CLASSPATH为Java加载类的路径,只有在CLASSPATH中,Java的命令才能将其识别。
1.4 第一个程序——HelloWorld
每个Java文件有且只能有一个public类,这个类的名字必须和文件名的大小写完全一样。
Java对大小写是敏感的。若将main()方法写成Main()方法,则程序运行时将会出现无法找到main函数的异常。
关键字”class“表明Java程序的所有内容都包含在类中,类是作为一个加载程序逻辑的容器。
在使用cmd编译程序时,如果要编译的源代码在另一个盘上的文件夹内,则应先输入那个盘符(注意要加上冒号),然后再通过cd进入才能进入那个文件夹。cd是切换同一个磁盘底下的目录的意思。
注意Java的常用命令javac,java,jdb,javap,javadoc,javah和Applet Viewer的使用及在cmd中javac和java的多种用法。
(完)