一、Java概述

前言:Java的简介和发展史有兴趣的可以去了解一下,这里不做探究。本节的主要内容如下,先来个导图镇楼。

Java概述_vscode

1、J相关

要学Java,首先得了解JDK、JRE和JVM,首先从目录结构上分析所属范围,最后再得到一个整体的关系认识。

1.1 JDK

JDK (Java Development Kit),Java标准开发包,它提供了编译、运行Java程序所需的各种工具和资源,包括Java编译器、Java运行时环境(JRE),以及常用的 Java类库等。

Java概述_jvm_02

1.2 JRE

1)JRE ( Java Runtime Environment) :Java运行环境,用于解释执行Java的字节码文件。普通用户只需要安装 JRE来运行 Java 程序。而程序开发者必须安装 JDK来编译、调试程序。

2)JRE安装目录:里面有两个文件夹 bin和 lib,一般认为 bin里的就是 jvm,lib中则是 jvm工作所需要的类库,而 jvm和 lib和起来就称为 jre。

Java概述_Java_03

1.3 JVM

1) JVM(Java Virtual Mechinal),Java虚拟机,是 java 编程语言的核心并且具有平台独立性,是JRE的一部分。它是整个java实现跨平台的最核心的部分,负责解释执行字节码文件,是可运行java字节码文件(.class) 的虚拟计算机。所有平台的上的JVM向编译器提供相同的接口,而编译器只需要面向虚拟机,生成虚拟机能识别的代码,然后由虚拟机来解释执行。当使用Java编译器编译Java程序时,生成的是与平台无关的字节码,这些字节码只面向JVM。不同平台的JVM都是不同的,但它们都提供了相同的接口。JVM是Java程序跨平台的关键部分,只要为不同平台实现了相应的虚拟机,编译后的Java字节码就可以在该平台上运行。

2)Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。这就是Java能够“一次编译,到处运行”的原因。

3)bin目录下主要可执行文件及其作用:

java:这个可执行程序其实就是JVM,运行Java程序,就是启动JVM,然后让JVM执行指定的编译后的代码;

javac:这是Java的编译器,它用于把Java源码文件(以.java后缀结尾)编译为Java字节码文件(以.class后缀结尾);

jar:用于把一组.class文件打包成一个.jar文件,便于发布;

javadoc:用于从Java源码中自动提取注释并生成文档;

jdb:Java调试器,用于开发阶段的运行调试。

Java概述_intellij-idea_04

1.4 关系

三者的关系可以简化如下:

Java概述_Java_05

1.5 面试可能问的问题

1)JDK、JRE、JVM 三者什么关系?
2)怎么理解Java 被称作是“平台无关的编程语言”?
3)JDK 各版本的新特性?(拓展)
4)Java 和 C++ 有什么区别?(拓展)
前两问答案已经在上面,剩余两问请读者自行查阅资料并思考。

1.6 JSP、JCP(可不看)

1)JSR规范
为了保证Java语言的规范性,SUN公司搞了一个JSR规范,凡是想给Java平台加一个功能,比如说访问数据库的功能,大家要先创建一个JSR规范,定义好接口,这样,各个数据库厂商都按照规范写出Java驱动程序,开发者就不用担心自己写的数据库代码在MySQL上能跑,却不能跑在PostgreSQL上。
2)JCP组织
JSR是一系列的规范,从JVM的内存模型到Web程序接口,全部都标准化了。而负责审核JSR的组织就是JCP。

2、Java主要特性(简单了解)

面向对象、健壮性、安全性、多线程、跨平台/可移植性、动态性等。有很多,简要了解即可。