Java作为一门语言已经历了漫长岁月的考验,仍焕发青春。
1.语言的存在的价值是什么?
语言的本身价值在于[桥接],使不同的[接口]可以实现等价的[信息交互]。汉语如此,英语如此,编程语言亦是如此。
[信息交互]是个非常有趣的东西,由它可以演化出很多副产品:阶级、金钱、翻译、奴役、情感、工作以及社会。
自然语言的接口是人与人,编程语言的接口是人与物,这注定很长一段时间计算机将成为人奴役与驱使的对象。
确实人是依靠自己的智慧、努力与能力获得这种权力的,我们如此也无可厚非。
先不说计算机网络的种种开天辟地的里程碑,编程语言的立足点至今并未变化:
[听从人的指令,无条件服从与工作],变化的只是特定领域的指令语法,并基于此之上建立的无数上层建筑(类库)
2.Java语言
如果你要搭讪一个叫world的美女,你也许会说"Hello World",但人家不一定懂英语,结果对牛弹琴,并无价值。
面对计算机这个只认识0,1的绝世美女,该怎样打招呼能让她理你?
1.你掌握java语言,写一个HelloWorld.java的文件,此时.java文件还是给人看的,计算机不懂。
2.将.java用javac 编译成.calss字节码文件,这时.class文件是JVM看的,计算机不懂。
3.在JRE上,JVM读.class文件并操做计算机的输出流,给你打出了"Hello World"。
4.从头到位只是JVM调用计算机资源,那位美女似乎成了提线木偶,而提线的始作俑者竟是自己,好一个自言自语!
3.JDK
有了JRE就能运行java程序,如果不做开发,装个JRE就行了。(话说不做java开发的也不会在意JRE是什么。)
我们一般说java8,java10都是指的JDK,是java开发者使用的工具集,是一个大的概念,下面是java8的JDK组成
![9414344-519b792f74625af0.png](https://i-blog.csdnimg.cn/blog_migrate/732caf9f8289f1f800dd07113ecc444d.webp?x-image-process=image/format,png)
java8.png
4.JDK、JRE、JVM的关系
JDK:Java 语言的软件开发工具包(Java Development Kit)
JRE: Java运行环境(Java Runtime Environment)
JVM: Java虚拟机(Java Virtual) Machine。
![9414344-aa3aaa1c49d52c19.png](https://i-blog.csdnimg.cn/blog_migrate/14c029cb64a46f6e98a7a45e56d34625.webp?x-image-process=image/format,png)
jdk-jre-jvm.png
5.历史上的java虚拟机类型
虚拟机即:虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的
JVM只是一种用于计算设备的规范,广义来说相当于一个接口,而接口的实现可以不同,但都能起到JVM的作用
Java发展至今JVM也有过更新迭代,也有基于不同场景下使用的JVM
Sun Classic VM 第一款商用Java 虚拟机,纯解释器方式执行java代码。(已退出历史舞台)
EXact VM 编译器解释器混合工作,很快被HotSpot VM取代(已退出历史舞台)
HotSpot VM 沿用至今
KVM 手机端----效率低(已退出历史舞台)
JRockit 专注服务端应用
J9 IBM公司
Microsoft JVM windows----平台专用(已退出历史舞台)
Taobao VM 淘宝根据HotSpot VM定制
Dalvik 安卓虚拟机,寄存器架构,执行.dex文件(.class-->.dex)
6.java虚拟机的体系结构
下一篇将详细介绍:java虚拟机的体系结构
![9414344-d21889b8fb30d75e.png](https://i-blog.csdnimg.cn/blog_migrate/b0f1a978f047d34cb25b13a5602d91bf.webp?x-image-process=image/format,png)
java虚拟机的体系结构.png