java虚拟机
信念随梦
本博客的主要作为自己的学习笔记,并不是以教授知识为目的。如果有人能从我的博客中学到东西,我很高兴。有人发现文章中有不对的地方,也欢迎大家纠正。
展开
-
内存溢出(Memory Overflow)和内存泄露(Memory Leak)的区别
内存泄漏指你用malloc或new申请了一块内存,但是没有通过free或delete将内存释放,导致这块内存一直处于占用状态内存溢出指你申请了10个字节的空间,但是你在这个空间写入11或以上字节的数据,就是溢出要点内存泄露是指程序中间动态分配了内存,但在程序结束时没有释放这部分内存,从而造成那部分内存不可用的情况,重启计算机可以解决,但也有可能再次发生内存泄露,内存泄露和硬件转载 2016-11-29 15:17:01 · 324 阅读 · 0 评论 -
Java虚拟机工作原理详解
一、类加载器首先来看一下Java程序的执行过程。 从这个框图很容易大体上了解java程序工作原理。首先,你写好java代码,保存到硬盘当中。然后你在命令行中输入[java] view plain copyjavac YourClassName.java转载 2017-01-16 16:18:21 · 269 阅读 · 0 评论 -
深入理解Java虚拟机——高效并发
一Java内存模型与线程 衡量一个服务性能的高低好坏,每秒事务处理数(TPS)是最重要的指标之一。服务端是Java语言最擅长的领域之一,不过写好并发应用程序却是程序开发的难点之一,处理好并发方面的问题通常需要更多的经验。 1. 硬件的效率与一致性 基于高速缓存的存储交互很好地解决了处理器与内存的速度矛盾,但也引入了新的问题,缓存一致性。当多个处理器的转载 2017-01-10 20:42:48 · 358 阅读 · 0 评论 -
深入理解JVM--JVM垃圾回收机制
Java语言出来之前,大家都在拼命的写C或者C++的程序,而此时存在一个很大的矛盾,C++等语言创建对象要不断的去开辟空间,不用的时候有需要不断的去释放控件,既要写构造函数,又要写析构函数,很多时候都在重复的allocated,然后不停的~析构。于是,有人就提出,能不能写一段程序在实现这块功能,每次创建,释放控件的时候复用这段代码,而无需重复的书写呢?1960年 基于MIT的Lisp首先提转载 2017-01-18 11:17:30 · 293 阅读 · 0 评论 -
jvm垃圾收集
人们在考虑GC需要完成的3件事情那些内存需要回收什么时候回收如何回收 在对堆里面存放着Java世界里面几乎所有的对象实例,垃圾收集器在对堆进行回收前,第一件事情就是要确定这些对象那些还活着,那些已经死去(即不在被任何途径使用的对象)一、哪些内存需要回收下面是判断对象是否要被回收的方法(即是否要让其“死去”)1、引用计数法 给对象中添原创 2017-04-20 10:12:45 · 265 阅读 · 0 评论 -
手把手教你写自定义类加载器
虚拟机类加载过程基础可以参考:JVM类加载机制基础我们知道jvm的类加载是利用双亲委派机制,图片来自http://blog.csdn.net/cutesource/article/details/5904501JVM的类加载是通过ClassLoader及其子类来完成的,类的层次关系和加载顺序可以由下图来描述:• 根类加载器(Bootstrap)•原创 2017-04-16 15:44:50 · 1933 阅读 · 0 评论 -
JVM类加载机制基础
虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的java类型,这就是虚拟机的类加载机制(《深入理解java虚拟机》)类从被加载到虚拟机内存中开始,到卸载出内存位置,它的整个生命周期包括:加载(Loading)、验证(Verfictaion)、准备(Preparation)、解析(Resolution)、初始化(Initi原创 2017-04-16 11:34:36 · 477 阅读 · 0 评论 -
JVM内存区域与内存溢出异常
一、内存模型的介绍java虚拟机在执行java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程线程的启动和结束而建立和销毁。根据《Java虚拟机规范(java se 7版)》的规定,Java虚拟机所管理的内存将会包括以下几个运行时数据区域,如图:1、程序计数器程序原创 2017-04-18 21:42:22 · 918 阅读 · 0 评论 -
《深入理解java虚拟机》String.intern()探究
《深入理解java虚拟机》第二版 57页对String.intern()返回引用的测试代码如下:[java] view plain copy/** String的intern例子 * Created by 明明如月 on 2017-05-24. */ public class RuntimeConstantP转载 2017-12-04 08:59:55 · 373 阅读 · 0 评论