随笔分类 - 【JVM】
Java虚拟机
摘要:转自:Java对象内存结构没有实例属性的类的内存布局在Sun JVM中,(除了数组之外的)对象都有两个机器字(words)的头部。第一个字中包含这个对象的标示哈希码以及其他一些类似锁状态和等标识信息,第二个字中包含一个指向对象的类的引用。另外,任何对象都是8个字节为粒度进行对齐的。这就是对象内存布局的第一个规则:规则1:任何对象都是8个字节为粒度进行对齐的。比如,如果调用new Object(),由于Object类并没有其他没有其他可存储的成员,那么仅仅使用堆中的8个字节来保存两个字的头部即可。继承了Object的类的内存布局除了上面所说的8个字节的头部,类属性紧随其后。属性通常根据其大小来排
阅读全文
摘要:前言: 由于项目的原因,需要对项目中大量访问多修改少的数据进行缓存并管理,为达到开发过程中通过Annotation简单的配置既可以完成对缓存的设置与更新的需求,故而设计的该简易的解决方案。涉及技术:1、Spring AOP2、Java Annotation3、Memcache (项目中使用的缓存组件)4、JVM基础 (Class文件结构,用于解析出方法中的形参名称,动态生成缓存key,目测效率不高0.0)5、Ognl (用于动态解析缓存的key)实现细节:Annotation:LoadFromMemcached 用与method之上的注解,作用是使带有该注解的method在调用的时候先经过缓.
阅读全文
摘要:Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人想出来。运行时数据区域: Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则是依赖用户线程的启动和结束而建立和销毁。1、程序计数器 程序计数器是一块较小的内存空间,它的作用可以看作是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里,字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需...
阅读全文

浙公网安备 33010602011771号