走进Java的世界
初始Java
Java体系
Java SE (Java Standard Edition) : 标准版,定位在个人计算机上的应用
这个版本是Java平台的核心,他提供了非常丰富的API来开发一般个人计算机上的应用程序,包括用户界面接口AWT
及Swing
,网络功能与国际化,图像处理能力以及输入输出支持等。在上个世纪90年代末互联网上大放异彩。Applet后来为Flash取代,Flash即将被HTML5取代。
JavaEE (Java Enterprise Edition) : 企业版,定位在服务器端的应用
JavaEE是JavaSE的扩展,增加了用于对于服务器开发的类库,如:JDBC
是让程序员能在Java内使用的SQL
的语法来访问数据库内的数据;Servlet能够延申服务器的功能,通过请求-响应的模式来处理客户端的请求;JSP
是一种可以将Java程序代码内嵌在网页的技术。
JavaME (Java Micro Edition) : 微型版,定位在消费性电子产品的应用上
JavaME是JavaSE的内伸,包括J2SE的一部分核心类,也有自己的扩展类,增加了适合微小装置的类库:javax.microedition.io.*
等。该版本针对资源有限的电子消费产品的需求精简核心类库,并提供了模块化的架构让不同类型产品能够随时增加支持的能力。
Java的特征和优势
- 跨平台/可移植性
- 安全性
- 面向对象
- 简单性
- 高性能
- 分布式
- 多线程
- 健壮性
Java核心机制
垃圾收集机制
垃圾收集机制的目的是去除不在使用的对象,当对象建立的时候垃圾收集,就开始监控对象动态情况,垃圾收集主要是对内存的释放,即程序员不需要去关心内存动态分配和垃圾回收的问题,一切都交给JVM(java虚拟机)来处理。
- 不再使用的内存空间应回收–>垃圾收集;
- Java消除了程序员回收无用内存空间的职责;提供一种系统级线程跟踪存储空间的分配情况。在JVM的空闲时,检查并释放可被释放的存储器空间;相比c++,开发人员负责要自己收回无用内存。
- 垃圾收集在Java程序运行过程中自动进行,程序员无法精确控制和干预;
- GC的自动回收,提高了内存空间的利用效率,也提高了编程人员的效率,很大程度上减少了因为没有释放空间而导致的内存泄露。
跨平台机制
Java跨平台机制实现了:一次编译,到处运行。
(与C语言的跨平台区别在于:C语言是多次编译多次运行,而这里所指的是指编译后的文件跨平台)
Java跨平台原理:
-
编译:通过编译器将.java文件(源文件)编译成.class字节码文件(二进制文件),编译器即javac.exe,实际上也是运行其背后的代码。
-
解释(执行):通过解释器将.class文件转换为对应的操作系统可以识别的执行文件格式。
Java环境的准备
下载JDK
- 下载JDK
官网:www.oracle.com/technetwork/java/javase/downloads/index.html - 安装JDK
安装步骤这里就不详细演示,可以自行搜索安装步骤
配置环境变量
- 找到JDK安装路径
- 进入到jdk\bin目录下,复制该路径
- 将复制的路径添加到系统环境变量中
- 验证
win+R 输入cmd 打开命名提示行,输入Java -version查看 :
第一段Java程序(HelloWorld)
当我们准备好java环境后,我们就可以写我们第一个程序(HelloWorle)了。
- 1.在E://新建一个HelloWorld.java文件
- 2.用记事本打开,编写程序代码并保存
注意,文件名要和class后面的类名要保持一致
public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello world");
}
}
- 3.win+r打开命令提示符,输入cmd
- 4.进入文件所在的位置(这里我的
HelloWorld.java
在E盘的根目录下)
- 5.输入命令javac HelloWorld.java,成功编译,这时就会生成
.class
文件。
- 6.进行解释翻译执行–>执行成功
这样,我们Hello World
就出来了,第一段java程序就完成了!!!
Java API
API (应用程序编程接口)
- JDK帮助文档
- SUN公司为JDK工具包提供了一整套文档资料,我们习惯上称之为JDK文档。
- JDK文档中提供了Java中的各种技术的详细资料,以及JDK中提供的各种类的帮助说明。
- JDk文档是Java语言的完整说明,大多数书籍中的类的介绍都要参照它来完成,它是编程者经常查阅的资料
- 如何理解API:就当做是一个“字典”,“使用手册”,API就相当于是一个电子的帮助文档,可以帮我们查看JDK提供的类的信息,平时查看的时候可结合百度一起看。
就是一个电子文档而已,帮助我们查看JAVA中涉及到的一些技能点:
JDK、JRE、JVM的区别(重点)
JDK、JRE、JVM的关系
- JDK(Java Development Kit)–> ava开发工具包
Java标准开发包,它提供了编译、运行Java程序所需的各种工具和资源,包括Java编译器、Java运行时环境、以及常用的Java类库等。
- JRE(Java Runtime Enviroment)–> Java的运行环境
Java运行环境,用于解释执行Java的字节码文件。普通用户只需要安装JRE来运行Java程序。而程序开发者就必须安装JDK来编译、调试程序。
光有JVM还不能成class的执行,因为在解释class的时候JVM需要调用解释所需要的类库lib。在JDK的安装目录里你可以找到jre目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib和起来就称为jre。
如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。
- JVM(Java Virtual Machine)–> Java虚拟机
Java虚拟机,是JRE的一部分。他是整个Java实现跨平台的最核心的部分,负责解释执行字节码文件,是可运行Java字节码文件的虚拟计算机。所有平台上的JVM向编译器提供相同的接口,而编译器只需要面向虚拟机,生成虚拟机能识别的代码,然后由虚拟机来解释执行。
当使用Java编译器编译Java程序时,生成的是与平台无关的字节码文件,这些字节码只面向JVM。不同平台的JVM都是不同的,当他们都提供了相同的接口。
JVM是Java程序跨平台的关键部分,只要为不同平台实现了相应的虚拟机,编译后的Java字节码就可以在该虚拟机下运行。
JVM
:将字节码文件转成具体系统平台的机器指令。
JRE
:JVM+Java语言的核心类库(lib)。
JDK
:JRE+Java的开发工具。
我们开发的实际情况是:我们利用JDK(调用JAVA API)开发了属于我们自己的JAVA程序后,通过JDK中的编译程序(javac)将我们的文本java文件编译成JAVA字节码,在JRE上运行这些JAVA字节码,JVM解析这些字节码,映射到CPU指令集或OS的系统调用。