在上一篇文章中,最后提到两个问题, 相信读者们已经提前超额完成了“任务”
下面跟着笔者的思路,深入掌握JAVA底层的运行机制
JAVA运行机制是贯穿整个JAVA体系根源 我们务必要了解它的底层实现细节,笔者可通过列举生活常例描述其原委
就像我们刚刚认识了一位朋友一样,我们怎么样能够更准确的找到聊天话题呢?
此时就需要我们去了解对方的性格,脾气,爱好等一些特征
反过来讲,我们知道了如何去交朋友,也就明白为什么要了解JAVA底层的运行实现机制的了,
只有了解一个事物最基础的特征,才能更好的相互“交流”什么是JAVA虚拟机? JVM可以理解成为一个可以运行java字节码的虚拟计算机系统
JAVA平台 JAVA平台是纯软件平台,包含:
java虚拟机,javaapi接口(编程接口),可执行文件是 .class(字节码)
java应用程序是不直接运行在操作系统上,此时需要在不同的操作系统上部署不同的JVM(java虚拟机)JAVA编译环境 ——>JAVA源代码(后缀名.java文件)——>JAVA编译器——>JAVA字节码(后缀名.calls文件)——>字节码> 本地或网络——>JAVA平台运行环境——> java虚拟机 ——>类装载器字节码验证 ——> <—— JAVA类库
JAVA解释器 ——>即时编译器 和 运行期系统——>操作系统——>底层硬件多看,多理解,掌握了运行原理之后,与你的朋友分享你的对JAVA运行机制的理解
笔者先将代码拆分为三步,其解释含义,拆分得目的是让读者明白JAVA语言结构,最后将组成JAVA语言基础程序
/**
* **第一个Helloword程序 关键字**
* public 修饰符 公共的
* class 类 定义类
* HelloWord 类的名称 自定义
* static 静态的
* void 无返回的
* main 方法名称 主函数 程序入口(参数)
*
**/
/**
*
* 1.表示声明一个类
* 类可以简单理解为一个容器,关于“类”,到后面详细解说其含义
*
**/
public class HelloWord{
}
/**
*
* 2.表示声明一个方法体
* 类相当于容器存放着方法体
*
**/
public static void main(String[] args){
}
/**
*
* 3.表示功能执行语句
* 方法体又存放着执行语句
*
**/
System.out.println("HelloWord");
/**
*
* 最后将其组合成一起
**/
//关键字:public公共的修饰符 //class类:声明一个类的关键字 //类名称:HelloWord,是声明一个类
public class HelloWord{
// public公共的,static静态的,void无返回值类型的main主方法,String[]字符串数组 args参数名称
public static void main(String[] args){
//功能执行语句
System.out.println("HelloWord");
}
}
1.单行注释,// 后到本行结束的所有字符会被编译器忽略;
2.多行注释,/* */之间的所有字符会被编译器忽略
3.文档注释,在/* /之间的所有字符会被编译器忽略,java特有的(用于生成文档);
可简单理解为在Java程序中为了增强阅读性自定义的名称。比如:类名,方法名,变量名等。
(1) 由字母、数字、下划线、$组成,不能以数字开头
(2) 大小写敏感
(3) 不得使用java中的关键字和保留字
(4) 不能用Java API里面的类名作为自己的类名。
1.JAVA语言严格区分大小写
2.一个java源文件里面可以定义多个java类, 但其中最多只能有一个类被定义成public(公共的)类
3.若源文件中包含了public类文件,该源文件命名必须和该public类名一致
4.一个源文件中包含了N个java 类时,编译后会生成N份字节码文件,即每个类都会生成一份单独的class文件,且字节码文件名和气对应的类名相同
5.一个源文件中只能定义一个类,不同的类使用不同的源文件定义
6.将每个源文件中单独定义的类都定义成public,保持java 源文件的主文件名与源文件中的类名一致