Java的特点与加载
一、Java是堪称完全面向对象的。面向对象更容易让人理解,人类通常是以对象的方式认知世界的。采用面向对象的方式可以让复杂问题简单化。
1、健壮性
主要是因为Java中有一种机制:
自动垃圾回收机制(GC机制)
Java语言是健壮的,相对于c语言来说,C语言没有Java健壮
Java不容易导致内存泄露
c++或者C语言使用不当时容易导致内存泄露
JVM(c++语言写的虚拟机)负者调度GC机制,程序员不需要干涉。
2、Java支持多线程并发机制
支持多个线程同时并发执行,极大提高了程序执行效率
3、可移植性、跨平台
Java语言只要编写一次,就可以在不同的平台(操作系统)上运行,得益于JVM虚拟机
JVM:JAVA虚拟机,使得Java程序实际上并不直接和操作系统打交道。(针对不同的操作系统使用不同的JVM虚拟机)
4、简单性
等等
二、
JDK、JRE、JVM三者的关系?
JDK(Java Development Kit): Java开发工具箱
JRE(Java Runtime Environment):Java运行时环境
JVM(Java Virtual Machine): Java虚拟机
JDK包括JRE ,JRE包括JVM
JVM是不能独立安装的
JRE和JDK都是可以独立安装
安装JDK的时候:JRE就自动安装了,同时JRE内部的JVM也就自动安装了
为什么安装JDK时会自带一个JRE?
因为Java程序员开发完程序后,要测试这个程序,让程序运行起来就需要运行环境(JRE)。
三、Java的加载与执行
注意:Java程序员直接编写的Java代码(普通文本)是无法被JVM识别的。这种普通文本必须经过一个过程,将这个“普通文本代码”变成“字节码文件”,JVM能够识别字节码文件。这个过程被称为:“编译”。
Java源代码是不能直接执行的。
注意:一个Java文件是可以生成多个字节码文件的
xxx.java 源文件经过编译后生成了A.class、B.class、C.class等字节码文件,那么我们成A是一个类,B是一个类,C是一个类、A、B、C是类的名字。
.java 源文件
.class 字节码文件
Javac 编译
Java 运行
1.编译阶段和运行阶段可以在不同的操作系统上完成吗?
如:在Windows上编译,编译之后生成了“字节码”,
将字节码放到Linux上运行。-----完全可以。因为Java是跨平台的,一次编写到处运行
2.Java源代码在编译后可以删除吗?只留下字节码可以执行吗?
可以执行,源代码不参与程序的执行过程。
但是不建议删除源代码,因为程序的执行可能不一定与我们期望的那样。这时候就需要重新修改源代码重新编译。
3.字节码文件是二进制文件吗?
字节码文件(Java中是16进制文件),是经过编译器预处理过得一种文件,是Java的执行文件存在形式,他本身是二进制文件,但是不可以被系统直接执行,而是需要虚拟机的解释执行