Java平台的认识

Java特性:

  1. 面向对象(封装,继承,多态)。Java是一门面向对象的语言,封装,继承,多态是面向对象编程的三大特性。
  2. 平台无关性(JVM运行.class文件)。由于JVM和字节码的存在,Java可以做到Write once,run anywhere(一次编写,到处运行)
  3. 语言(泛型,Lambda)
  4. 类库(集合,并发,网络,IO/NIO)
  5. JRE(Java运行环境,JVM,类库)
  6. JDK(Java开发工具,包括JRE,javac,诊断工具)
  7. 垃圾收集,通过垃圾收集器回收分配的内存

JDK与JRE

日常生活中接触到的JRE(Java Runtime Environment)指的是Java运行环境,JDK(Java Development Kit)指的Java开发环境,JDK比JRE提供更多的工具,比如编译器,各类诊断工具。

Java是解释执行还是编译执行?

开发者开发的JAVA源代码,通过JAVAC编译成字节码,再通过Java虚拟机(JVM)中内嵌的解释器转换成最终的机器码(此时属于解释执行)。但是在常见的Java虚拟机中(Oracle JDK提供的Hotspots JVM)自带了JIT(Just-InTime)编译器,也就是通常所说的动态编译器,JIT在运行时可将热点代码直接编译成机器码(此时是编译执行,而不是解释执行了)。在Java9中,提供的AOT编译器是在运行前直接将字节码转换成机器码。

众所周知,通常把Java分为编译期运行时,编译期仅仅是把Java文件编译生成class文件(内部是字节码),Java就是通过字节码以及JVM这种抽象,以此当作一种中间层,忽略了硬件与操作系统,这也是Java实现Write once,run anywhere的基础。运行时是JVM通过类加载器加载字节码,解释或者编译执行。

转载于:https://www.cnblogs.com/yuan-zhi/p/9081737.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值