Java虚拟机笔记

1,java体系结构包括四个独立但相关的技术:java语言、class文件格式、java的api、java虚拟机
2,java虚拟机是一台抽象的计算机,主要任务是装载class文件并且执行其中的字节码。不同的java虚拟机,其执行引擎的实现可能不一样。分为软件实现和硬件实现(内嵌在芯片),软件实现有以下几种:(1)每次都会解释字节码(2)即时编译,即编译成本低机器代码,缓存起来可以重用(3)自适应优化器
3,每一个类被装载的时候,java虚拟机都监视这个类,看它到底是被启动(bootstrap)类装载器还是被用户定义类装载器装载。当被装载的类引用了另外一个类时,虚拟机就会使用装载第一个类的类装载器装载被引用的类。由于java虚拟机采用这种方式进行类的加载,所以被装载的类默认情况下只能看到被同一个类装载器装载的类。通过这种方法,java的体系结构允许在一个java应用程序中建立多个命名空间。运行时的java程序中的每一个类装载器都有它自己的命名空间。
例子:浏览器上的java虚拟机为不同的网络地址创建不同的用户定义类装载器,用来装载不同来源的class文件,这种不同网址的applet就不会相互影响。
问题:1)自己写的类如果调用了java的api,那么类装载器是一个什么样的情况。同一个类可能被不同的类装载器装载?
      2)看一下tomcat的类装载器的实现
      3)java的虚拟机与ruby和python的有何区别?
      4)有没有一种打包工具,把java代码打包成不需要java虚拟机的本地可执行代码
      5)java的动态连接和动态扩展指的是什么?
4,java语言的特殊之处是程序既被编译又被解释。首先,编译器将程序编译为一种称之为java字节码(bytecode)的与平台无关的中间语言。解释器分析并运行每条java字节码指令。编译只发生一次;而解释在每次执行程序时都会执行(通常是如此,具体实现可能不一样)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值