1、java程序的运行过程
Java程序运行需要经过编译,运行两个阶段。
- 编译:javac 命令
- 运行:java 命令
2、JKD,JRE,JVM三者区别
三者是包含的关系,如图
- JDK(Java Development Kit):Java开发工具包,提供给Java程序员使用,包含了JRE,同时还包含了编译器javac与自带的调试工具Jconsole、jstack等。
- JRE(Java Runtime Environment):Java运行时环境,包含了JVM,Java基础类库。是使用Java语言编写程序运行的所需环境。
- JVM(Java Virtual Machine)JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
3、JVM的组成
JVM:实际上底层由C/C++代码实现的
- 虚拟机栈(JVM statck):我们平时所说的栈,存放基本类型的变量数据(局部变量)和对象的引用,但对象本身不存放在栈中,而是存放在堆(new出来的对象)或者常量池中(字符串常量对象存放在常量池中。)
- 本地方法栈(Native Method Stack): 本地方法栈与虚拟机栈的作用类似. 只不过保存的内容是Native方法的局部变量.在有些版本的 JVM 实现中(例如HotSpot), 本地方法栈和虚拟机栈是一起的,运行C/C++代码。
- 堆(Heap): JVM所管理的最大内存区域. 使用 new 创建的对象都是在堆上保存,用来存放所有new出来的对象。
- 程序计数器(PC Register): 只是一个很小的空间, 保存下一条执行的指令的地址
- 方法区(Method Area): 用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据.方法编译出的的字节码就是保存在这个区域
- 运行时常量池(Runtime Constant Pool): 是方法区的一部分, 存放字面量字符串常量与符号引用.jdk1.7后放在堆当中
4、简单的main方法个组成部分解释
- 在一个java文件中,如果有public class这样的类,那么文件名应与public修饰的类同名
- 一个java文件只能有一个public calss与之对应
5、Java程序的结构
- 源文件(扩展名为*.java):源文件带有类的定义。类用来表示程序的一个组件,小程序或许只会有一个类。类的内容必须包含在花括号里面。
- 类:类中带有一个或多个方法。方法必须在类的内部声明。
- 方法:在方法的花括号中编写方法应该执行的语句。
总结一下:类存在于源文件里面;方法存在于类中;语句存在于方法中。
6、java编码方式
java采用的是UTF-8的Unicode的一种可变长度字符编码,在 C 语言中使用 ASCII 表示字符, 而 Java 中使用 Unicode 表示字符. 因此一个字符占用两个字节, 表示的字符种类更多, 包括中文,相较于C语言更为丰富
7、三种注释方法
- 单行注释:// 注释内容(用的最多)
- 多行注释:/* 注释内容*/(不推荐)
- 文档注释: /** 文档注释 */(常见于方法和类之上描述方法和类的作用),可用来自动生成文档