java日记二

 Oracle收购了sun(Hotspot)和BEA(JRockit),三大虚拟机还有IBM的J9,移动数码设备使用Android系统和Dalvik虚拟机。

JRuby,Groovy,PHP等语言可以运行在JVM上,JPHP负责将PHP源代码编译为JVM字节码,使其能够运行在JVM上。

java虚拟机 除了堆栈,还可以使用直接内存,即通过native方法申请空间,例如nio的缓冲区。

对象头中分为三部分,MarkWord,类型指针,数组长度。其中MarkWord中的hashcode,因为对象分配空间后会全部初始化为该类型的0值,所以默认为0,如果调用object的hashcode方法,则会使用虚拟机提供的方法get_next_hash()方法产生一个哈希值,并写入对象头,如果调用重写后的hashcode方法,则会覆盖object的hashcode方法,从而不会有写入对象头的操作。因此对象头任是原来的值。

对象空间分为对象头,数据,对其空间。

无锁(通过cas,一个CPU指令cmpxchg指令可保证操作原子性),偏向所(锁标志为01,无锁状态,偏向所标志为1,MarkWord的hashcode改为线程id加2位的时间戳,如果有新的线程竞争锁,拥有线程已经不存在则通过cas直接获取偏向锁,否则升级为轻量级锁,由java虚拟机来控制执行,首先会在拥有偏向锁的线程会在全局安全点的地方停下执行,在线程中建立锁记录lock record,把MarkWord拷贝到锁记录中,通过cas使对象头指向lock record,然后将lock record中的owner指向对象的MarkWord,并将对象的锁标志位设置为00),轻量级锁(锁标志位为00,升级为轻量级锁后,竞争锁的线程通过自选等待,如果超过一定次数或者有第三个线程到来,则升级为重量级锁,阻塞线程)

 

java card:支持Java小程序(Applets)运行在小内存设备(如智能卡)上的平台。智能卡,比如银行卡,不是以前的磁条卡,手机上的SIM电话卡都是智能卡,有接触和无接触两种,无接触使用射频提供电源,智能卡分为 CPU,RAM随机存储器,ROM只读存储器,只读存储器中存放COS操作系统,负责数据加密与解密、鉴别与核实和文件访问的安全控制等等,是基于linux的闭源操作系统,应用于个人电脑、智能掌上终端、机顶盒、智能家电等。在COS系统中装有Java Card VM虚拟机系统,我们写的Applet程序通过Register向注册,所有的Applet未激活,COS系统根据指令启动相应的Applet处理,调用process方法传入apud做相应的处理。Applet小程序并不一定会有界面,例如智能卡。applet还可以镶嵌在支持的浏览器上,也可以通过AppletView启动applet程序,此处是有界面的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值