目录
一、简介
Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称。由James Gosling和同事们共同研发,并在1995年正式推出。
Java分为三个体系:
- JavaSE(J2SE)(Java2 Platform Standard Edition,java平台标准版)
- JavaEE(J2EE)(Java 2 Platform,Enterprise Edition,java平台企业版)
- JavaME(J2ME)(Java 2 Platform Micro Edition,java平台微型版)。
2005年6月,JavaOne大会召开,SUN公司公开Java SE 6。此时,Java的各种版本已经更名以取消其中的数字"2":J2EE更名为Java EE, J2SE更名为Java SE,J2ME更名为Java ME。
二、Java体系结构
- JVM(Java Virtual Machine)——Java 虚拟机
- JVM是一个可运行Java字节码的虚拟计算机系统,是java程序的运行环境,是java最具吸引力的特性之一,我们所编写的java代码都运行在jvm之上。
- JVM屏蔽了底层运行平台的差别,实现了“一次编译,随处运行”通过JVM来实现跨平台。
- 编写的程序运行在jvm上,而jvm运行在操作系统上。对于不同的运行平台,有不同 的JVM。
- JRE(Java Run Environment)——Java运行环境
JRE是java程序运行时的环境,包含JVM和运行时所需要的核心类库
- JDK(Java Development Kits)—— Java开发工具集
JDK是java程序开发的工具包主要包括:
- JRE(Java RunTime Environment)Java运行时环境
- Java编译器(javac.exe)
- Java运行时解释器(java.exe)
- Java文档化工具(javadoc.exe)
- 其它工具及资源
如果我们只是想运行一个java程序,只需要JRE就可以了,但是如果我们希望开发java程序就需要JDK
- 三者关系
三、运行机制
1、 计算机的高级编程语言类型
- 编译型 C 、C++、Java,会生成二进制文件比如:.exe文件、字节码文件
- 解释型 JavaScript、basic 不会生成二进制文件
而Java 语言是两种类型的结合;先编译,再解释执行
2、Java的两个核心机制
2.1 Java虚拟机JVM
1️⃣Java编译系统将源文件(.java)编译成字节码文件(.class)
2️⃣由Java虚拟机执行字节码文件
虚拟机执行过程有:多线程、动态链接、异常处理。
2.2 垃圾回收机制(Garbage Collection)
自动回收将不再使用的内存空间。
- 在C/C++等语言中,由程序员负责回收无用内存,而Java语言消除了程序员回收无用内存空间的责任:
- JVM提供了一种系统线程跟踪存储空间的分配情况。并在JVM的空闲时,检查并释放那些可以被释放的存储空间。
- 垃圾回收器在Java程序运行过程中自动启用,程序员无法精确控制和干预,即使程序员通过代码告诉垃圾回收器执行,不会立即回收内存。
3、运行Hello world!——Java开发三步走
- 第一步:编写源程序
// HelloWorld类名和文件名相同
public class HelloWorld {
// 公开的 static 静态的 void 没有返回值 String[] args 参数
public static void main(String[] args){
//向外输出 打印
System.out.println("Hello World!");
}
}
//解释说明:
//1 public 关键字 公开的
//2 class 关键字 表示定义一个类
//3 HelloWorld 类名 和文件名一致
//4 static 静态的,先记住意思,后面详细讲
//5 void 表示无返回值,先记住意思,后面讲
//6 main 主函数(方法),程序入口函数
//7 String[] 字符串数组类型
//8 args 方法参数
//9 System.out.println("Hello World!");输出Hello World
Java源程序(文件): 是一个后缀面是.java的文件,里面写的是java代码
- 第二步:编译(Compiler)
在命令行中输入:javac HelloWorld.java
编译后会生成后缀名为class的文件,我们称为字节码文件
- 第三步:运行
在命令行中输入:java HelloWorld
四、特性
- 一种面向对象的编程语言
- 一种跨平台的语言。(它提供了在不同平台下的解释运行环境)
- 一种健壮的语言,吸收了C/C++语言的优点。
- 具有较高的安全性。(自动回收垃圾,强制类型检查,取消指针)
- 开源
考题
1.一个".java"源文件中是否可以包括多个类?有什么限制?
无数个类,只能有一个public修饰的类,且类名必须与文件名相同
2.垃圾回收器的作用?垃圾回收器可以马上回收内存吗?
可以帮助我们清除不再需要的数据,已释放内存;如果需要可以随时使用gc操作立即回收不需要的内存
3 .此处,Something类的文件名叫OtherThing.java
class Something {
public static void main(String[] args) {
System.out.println(“Do something …”);
}
}对吗?
对,因为类没有被public修饰