本月博客排行
-
第1名
龙儿筝 -
第2名
lerf -
第3名
fantaxy025025 - johnsmith9th
- xiangjie88
- zysnba
年度博客排行
-
第1名
青否云后端云 -
第2名
宏天软件 -
第3名
gashero - wy_19921005
- vipbooks
- benladeng5225
- e_e
- wallimn
- javashop
- ranbuijj
- fantaxy025025
- jickcai
- gengyun12
- zw7534313
- qepwqnp
- 解宜然
- ssydxa219
- zysnba
- sam123456gz
- sichunli_030
- arpenker
- tanling8334
- gaojingsong
- kaizi1992
- xpenxpen
- 龙儿筝
- jh108020
- wiseboyloves
- ganxueyun
- xyuma
- xiangjie88
- wangchen.ily
- Jameslyy
- luxurioust
- lemonhandsome
- mengjichen
- jbosscn
- zxq_2017
- lzyfn123
- nychen2000
- forestqqqq
- wjianwei666
- ajinn
- zhanjia
- Xeden
- hanbaohong
- java-007
- 喧嚣求静
- mwhgJava
- kingwell.leng
最新文章列表
深入理解Java虚拟机-常用vm参数分析
Java虚拟机深入理解系列全部文章更新中…
深入理解Java虚拟机-Java内存区域透彻分析
深入理解Java虚拟机-常用vm参数分析
深入理解Java虚拟机-JVM内存分配与回收策略原理,从此告别JVM内存分配文盲
深入java虚拟机之类的初始化
类初始化是类加载过程的最后一个阶段,到初始化阶段,才真正开始执行类中的Java程序代码。虚拟机规范严格规定了有且只有四种情况必须立即对类进行初始化:
遇到new、getstatic、putstatic、invokestatic这四条字节码指令时,如果类还没有进行过初始化,则需要先触发其初始化。生成这四条指令最常见的Java代码场景是:使用new关键字实例化对象时、读取或设置一个 ...
JAVA虚拟机类加载机制笔记
可在微信公众中查看该文章:http://mp.weixin.qq.com/s/qKR04b2aGBVdk30TsDZXdw
1、虚拟机的类加载机制:虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的java类型;
2、在java语言中,类的加载、连接和初始化过程都是在程序运行期间完成的;缺点:令类加载时增加性能开销;优点:会为java ...
Java虚拟机原理学习
一、
(1)虚拟机是Java的运行支撑系统,Java与生俱来的通用性、安全性和高效性都建立在Java的虚拟机之上,这三个特性之所以能够在 Java虚拟机上实现,是因为Java源代码的编译结果并非是本地机器指令,而是字节码。
(2)Java之所以能够实现 一次编译,处处运行,功不可没的当属字节码,和C/C++等传统语言不同,Java源代码的默认编译结果并非是可执行代码(本地机器指令),而是 具 ...
java对象的访问方式
java需要通过栈上的reference数据来操作堆上的具体对象,目前主流有两种方式:1.使用句柄 使用句柄的话,java堆将会划分一块内存来作为句柄池,reference中存储的就是对象的句柄地址,而句柄中包含了对象实例数据与对象类型数据各自的具体地址信息2.直接指针
reference中存储的直接就是对象地址
两种方式各有优势,使用句柄访问最大好处是reference中存储的稳定的句 ...
JVM监控与故障处理
现实企业级java开发中,有时候我们会碰到下面这些问题:
OutOfMemoryError内存不足
内存泄露
线程死锁
锁争用(lock Contention)
Java进程消耗CPU过高
... ... 等等
这些问题在日常开发中可能被很多人忽视(比如遇到上面这些问题就重启服务器或者跳大内存,而不会深究问题根源),但能够解决这些问题是Java程序员的必备需求 ...
漫谈Java虚拟机(JVM)
Java 虚拟机(JVM)是可运行 Java 代码的假想计算机。 只要根据 JVM 规范描述将解释器移植到特定的计算机上,就能保证经过编译的任何 Java 代码能够在该系统上运行。
从上图中不难明白JAVA可以实现可移植性的原因, 只要在操作系统上 (Windows、Linux、Unix)植入 JVM(Java 虚拟机) ,JAVA 程序就具有可移植性,也符合 SUN 公
司提 ...
JVM学习(2)-JVM垃圾回收算法
java虚拟回收垃圾对象时,一份分为两步:
1、虚拟机在回收堆空间在之间,会先判断哪些对象已经死亡;
2、然后再对这些死亡对象通过特定的回收算法进行回收
一、判断对象是否死亡
1、引用计算器算法
给对象添加一个引用计算器,如果其他地方引用它,计算器就加1,当引用失效时,计算器就减1。当计算器为0时,这个对象不能被再次使用,需要被回收了。
优点:实现简单
缺点:不能解决对象之间 ...
第二章(三) Java虚拟机结构-栈帧
2.6 栈帧
栈帧用来存储变量值、中间结果,也用来进行动态链接、返回访法值和分发异常。
栈帧在一个方法调用时创建,在方法调用完成后销毁,不管方法是正常结束,还是非正常结束(方法抛出异常)。栈帧从创建此栈帧的线程对应的虚拟机栈中分配存储空间。每个栈帧有自己的本地变量表、操作数栈以及一个指向当前方法对应类的运行时常量池的引用。
本地变量表和操作数栈的大小在编译时确定,随着当前栈帧 ...
JAVA虚拟机之六:虚拟机性能监控和故障处理工具
一、JDK命令行工具简介
所有的java开发人员都知道JDK的bin目录下存放着编译java需要的javac,以及运行java程序需要的java这两个命令工具,但是很多人并没有注意到,其实除了这两个工具,该目录下还有很多工具,这些工具其实为我们提供了很多方便且强大的功能,windows7系统64位jdk1.7/bin目录下部分截图:
下面是命令行监控的主要工具和用途:
名称 ...
JAVA虚拟机之三:CMS垃圾收集器
一、CMS垃圾收集器介绍
CMS(Concurrent Mark Sweep)收集器是一种以获取最短回收停顿时间为目标的收集器。目前很大一部分的Java应用都集中在互联网站或B/S系统的服务端上,这类应用尤其重视服务的响应速度,希望系统停顿时间最短,以给用户带来较好的体验。CMS收集器就非常符合这类应用的需求。
从名字(包含“Mark Sweep”)上就可以看出CMS收集器是基于“标记-清除 ...