谈谈你对java 平台的理解

谈谈你对Java平台的理解 ?

  • 面向对象的编程语言   
  • Write Once,Run anyWhere, 一次书写到处运行,跨平台的能力
  • 垃圾收集(GC),Java 通过垃圾收集器回收分配的内存,大部分情况下,不要考虑内存的分配和回收
  • JRE (Java Runtime Environment) Java运行的环境,JVM和Java类库,以及一些模块。
  • JDK(Java Development Kit)JRE的一个超集,提供了更多的工具,比如:编译器,各种诊断、监控工具(javac,sjavac,jmap,jps,jstack,jconsole........),运行时环境,是日常工作效率的保证
  • Java 语言的一些特性:基本的语法,泛型,Lambda等语言的特性,基础的类库包括:集合、反射、 IO/NIO、JDBC、网络、线程、并发、安全等基础类库,以及海量的第三方类库
  • JVM的一些基础概念和机制,比如类加载机制(Bootstrap/Application/Extension ClassLoader);类加载的大致过程:加载,验证,链接、初始化以及自定义ClassLoader。常见的垃圾回收器:SerialGC、Parallel GC、CMS、G1等
  • JAVA/JVM整个生态环境:Java EE,Spring,Hadoop,Spark,Cassandra,Maven..........

Java 是解释执行这句话正确吗?

   我们开发的Java源代码,首先通过javac编译成字节码(bytecode).在运行时,通过ClassLoader加载Java虚拟机(JVM),通过内嵌的解释器将字节码转换成最终的机器码,但是常见的JVM,比如:Oracle JDK 提供的 Hotspot JVM,都提供了 JIT(Just In Time) 编译器,动态编译器,JIT 能够在运行时将热点代码编译成机器码,这种情况下部分热点代码属于编译执行,非解释执行,JAVA 通过字节码和JVM这种跨平台的抽象,屏蔽了操作系统和硬件的细节,实现了一次编写到处运维的基础.

  通常我们把JAVA分为编译器和运行时,在运行时,类加载器加载字节码,解释或者编译执行,在主流的Java版本中,如JDK1.8 是解释和编译混合的一种模式,即为混合模式,通常运行在server 模式下的jvm,会进行上万次调用收集足够的信息进行高效的编译,client 模式下的是1500次。JVM 内置个两个不同的JIT.C1 使用与Client模式,适用于对于启动速度敏感的应用,比如:JAVA桌面应用,C2对用Server模式,适用于长时间运行的服务器端应用。

另外JVM作为一个强大的平台,不仅仅只有Java语言可以运行,本质上只要合规的字节码都可以运行,例如:Scala、Groovy 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值