Java平台的理解

Java的特性:

面向对象(继承,封装,多态)

平台无关性(一次书写,到处运行)

类库(IO/NIO,集合,网络,并发,安全等)

GC垃圾回收机制

JRE(Java运行环境,包括了JVM和Java类库,以及一些模块)

JDK(JRE的超集,提供了更多工具,比如编译器等)

 

Java是解释执行?不太准确

Java的确是通过Javac先编译成字节码(.class文件),再通过JVM虚拟机内嵌的解释器来转换成机器码。

JVM提供了JIT编译器(动态编译器),即运行时将热点代码编译成机器码,这部分代码就属于编译执行,而不是解释执行。

AOT编译方式,直接将字节码编译成机器码,减少预热时间

 

对于虚拟机而言,只要是符合规范的字节码,它们都能被加载执行,当然,能正常运行的程序光满足这点是不行的,程序本身需要保证在运行时不出现异常。所以,Scala、Kotlin、Groovy等语言也可以跑在虚拟机上。

 

拓展:

安卓的instance run,机制在于修改代码后,增量构建(增量产生dex的形式),然后通过更新资源的复杂度去选择执行热更新,热更新或者冷更新。

 

Groovy作为脚本语言,在安卓的.Gradle文件中起到了重要作用。

build.gradle第一句apply plugin 就相当于java中的导包,是导入了gradle的工具类

每个build.gradle是一个Project对象,其中的android{}和dependencies{}相当于project的方法,其中会设置project的参数

每个project中包含多个task的构建任务,每个Task包含很多的Action动作。

apply plugin相当于把project对象传到工具库,再通过其中的Groovy插件对project进行操作。

每个build.gradle是一个Project对象,Gradle管理者该对象的生命周期

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值