Java概述
Java是一种高级计算机语言,前身是Oak语言,是一种可以撰写跨平台应用软件的面向对象的程序设计语言,由Sun公司的James Gosling等人于20世纪90年代初开发,目标设定在家用电器等小型系统的编程语言。
针对不同的开发市场,Sun公司将Java划分为3个技术平台:
- Java SE(Java Platform Standard Edition)标准版,是为开发普通桌面和商务应用程序提供的解决方案。JavaSE是三个平台中最核心的部分,包括了Java最核心的类库。
- Java EE(Java Platform Enterprise Edition) 企业版,是为开发企业级应用程序提供的解决方案。用于开发、装配以及部署企业级应用程序,其中主要包括Servlet、JSP 、JavaBean 、JDBC、EJB、Web Service等技术。
- Java ME(Java Platform Micro Edition) 小型版,是为开发电子消费产品和嵌入式设备提供的解决方案。JavaME主要用于小型数字电子设备上软件程序的开发。
Java语言的特点
- 简单性:最基本的方法,丢弃C++中模糊概念,不使用指针,提供自动的垃圾回收机制
- 面向对象
- 安全性:不支持指针,对内存的访问通过对象的实例变量实现
- 与平台无关:即跨平台性
- 多线程:程序中多个任务可以并发执行,提高执行效率
- 分布式
- 健壮的
- 解释运行效率高
- 多态的
Java的运行机制
“一次编译,到处运行”的原理
字节码文件是一种和任何具体机器环境及操作系统环境无关的中间代码,是Java源文件由Java编译器编译后生成的目标代码文件。编程人员和计算机都无法直接读懂字节码文件,它必须由专用的Java解释器来解释执行,因此Java是一种在编译基础上进行解释运行的语言。
Java解释器负责将字节码文件翻译成具体硬件环境和操作系统平台下的机器代码,以便执行。因此Java程序不能直接运行在现有的操作系统平台上,它必须运行在被称为Java虚拟机的软件平台之上。
Java虚拟机(JVM)是运行Java程序的软件环境,Java解释器就是Java虚拟机的一部分。在运行Java程序时,首先会启动JVM,然后由它来负责解释执行Java的字节码,并且Java字节码只能运行于JVM之上。
利用JVM就可以把Java字节码程序和具体的硬件平台以及操作系统环境分隔开来,只要在不同的计算机上安装了针对于特定具体平台的JVM,Java程序就可以运行,而不用考虑当前具体的硬件平台及操作系统环境,也不用考虑字节码文件是在何种平台上生成的。JVM把这种不同软硬件平台的具体差别隐藏起来,从而实现了真正的二进制代码级的跨平台移植。JVM是Java平台无关的基础,Java的跨平台特性正是通过在JVM中运行Java程序实现的。
Java开发环境
JDK简介
JDK:Java Development Kit的简称,是 SUN公司提供的一套Java开发环境,它是整个Java的核心,其中包括Java编译器、Java运行工具、Java文档生成工具、Java打包工具等。
JDK目录介绍
- bin目录:用于存放一些可执行程序,如javac.exe(Java编译器)、java.exe(Java运行工具)、jar.exe(打包工具)和javadoc.exe(文档生成工具)等。
- db目录:一个小型的数据库。从JDK 6.0开始,Java中引入了一个新的成员JavaDB,一个纯 Java 实现、开源的数据库管理系统。这个数据库不仅很轻便,而且支持JDBC 4.0所有的规范,在学习JDBC时,不再需要额外地安装一个数据库软件,选择直接使用JavaDB即可。
- jre目录:“jre”是Java Runtime Environment的缩写,意为Java程序运行时环境。此目录是Java运行时环境的根目录,它包含Java虚拟机,运行时的类包、Java应用启动器以及一个bin目录,但不包含开发环境中的开发工具。
- include目录:由于JDK是通过C和C++实现的,因此在启动时需要引入一些C语言的头文件,该目录就是用于存放这些头文件的。
- lib目录:lib是library的缩写,意为Java类库或库文件,是开发工具使用的归档包文件。
- src.zip文件:src.zip为src文件夹的压缩文件,src中放置的是JDK核心类的源代码,通过该文件可以查看Java基础类的源代码。
创建Java Application程序
先new一个【Java Project】,再new一个【Package】,接着new一个【Class】,然后在这个.java的文件里书写程序。
一个简单的输出hello的java程序:
package java_test;
public class hello {
public static void main(String[] args) {
System.out.println("hello");
}
}
运行该程序:右击,选择【Run As】
包的定义与使用
(1)包的引入
为了便于对硬盘上的文件进行管理,通常都会将文件分目录进行存放。同理,在程序开发中,也需要将编写的类在项目中分目录存放,以便于文件管理。为此,Java引入了包(package)机制,程序可以通过声明包的方式对Java类定义目录。
(2)包的定义
Java中的包是专门用来存放类的,通常功能相同的类存放在相同的包中。
在声明包时,使用package语句,并只能位于Java源文件的第一行。
在实际程序开发过程中,定义的类都是含有包名的,如果没有显式地声明package语句,创建的类则处于默认包下,在实际开发中,这种情况是不应该出现的。
(3)包的使用
当一个包中的类需要调用另一个包中的类时,需要使用import关键字引入需要的类。使用import可以在程序中一次导入某个指定包下的类,这样就不必在每次用到该类时都书写完整类名,简化了代码量。
使用import关键字的具体格式如下所示:import 包名.类名;
import通常出现在package语句之后,类定义之前。如果有时候需要用到一个包中的许多类,则可以使用“import 包名.*;
”来导入该包下所有类。
(3)包的使用
在JDK中,不同功能的类都放在不同的包中,其中Java的核心类主要放在java包及其子包下,Java扩展的大部分类都放在javax包及其子包下。
- java.util:包含Java中大量工具类、集合类等,例如Arrays、List、Set等。
- java.net:包含Java网络编程相关的类和接口。
- java.io:包含了Java输入、输出有关的类和接口。
- java.awt:包含用于构建图形界面(GUI)的相关类和接口。
除了上面提到的常用包,JDK中还有很多其它的包,比如数据库编程的java.sql包,编写GUI的javax.swing包等等,JDK中所有包中的类构成了Java类库
注意点:
- Java程序的基本组成单元是类
- 一个Java源程序最多只能有一个类可以使用public来声明
- 每一个应用程序都必须包含一个main()方法,含有main()方法的类称为主类。
- Java语句必须用分号结束
- 区分大小写
- Java源文件的名字必须与public类的名字一致,以.java为扩展名