工作马上满4年的菜鸟学习心得-字节码的理解

字节码

        如果你问我什么是字节码,那我现在只能告诉你字节码是java源程序经过编译器编译后的字节码文件(.class),不面向任何的处理器,只面向虚拟机。通俗来讲,就是你写的代码由人的语言转换为机器语言。

        字节码相当于是一个桥梁,由编译器转化为字节码,再由JVM解释器转化为可运行的二进制机器码

字节码的优点

首先理解一个概念,解释型语言和编译型语言。

解释型语言是一边执行一边翻译为机器语言,执行效率低。

编译型语言是先由编译器一次性翻译为机器语言,比如(.exe) 。无需再次编译,因此运行效率较高。编译型语言的程序在首次执行时编译生成可执行文件,之后可以直接运行这个文件,无需源代码和编译器。

所以字节码的出现一定程度上解决了编译型语言运行速度慢的问题,也可以发挥解释性语言可移植性的特点。

当然,理解到这里突然有不明白可移植性是什么意思,查了一下,其实就是可以在不同操作系统部署运行的能力

顺便拓展一下类加载器的学习,简单记录一下。

Bootstrap ClassLoader 加载核心类库,比如java.lang.Object

ExtClassLoader 加载工具扩展类, 比如java.util

AppclassLoader加载应用程序类,我们自定义的类

自定义类加载器-必须继承ClassLoader

双亲委派模型

这张图很直观的描述了java加载类的顺序,先向上查找缓存,找到则返回,找不到则再向下查找加载路径

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值