新生代GC的主要工作是回收eden区和survivor区。一旦eden区被占满,新生代GC就会启动。新生代GC收集前后的堆数据如图5.6所示,其中E表示eden区,S表示survivor区,O表示老年代....
分类:
编程语言 时间:
2015-04-14 13:02:42
阅读次数:
151
关键字this是指向调用对象本身的引用名; 每当一个对象创建后,Java虚拟机会给这个对象分配一个引用自身的指针,这个指针的名字就是 this; 《java编程思想》中关于this的笔记: this关键字只能在方法内部使用,表示对"调用方法的那个对象"的引用; 在方法内部调用同一个类的另一个方...
分类:
编程语言 时间:
2015-04-13 22:17:45
阅读次数:
117
java虚拟机所管理的内存包括以下几个运行时数据区域,如图所示:
既:程序计数器,Java虚拟机栈,本地方法栈,Java堆和方法区。
程序计数器是一块较小的内存空间,他可以看作是当前线程执行的字节码的行号指示器。
由于java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,在任何一个确定的时间,一个处理器(对于多核处理器来说是一个内核)都只会执行一个线程中的指令。因此...
分类:
编程语言 时间:
2015-04-12 21:08:15
阅读次数:
185
小狼最近看了Mybatis生命周期问题,觉得,理解mybatis生命周期很重要,否则会发生严重的并发问题,也会占用过多的资源
SqlSessionFactoryBuilder :对象可以被java虚拟机实例化,使用,销毁。一但使用SqlSessionFactoryBuilder创建SqlSessionFactory之后,SqlSessionFactory就没有存在的必要了,因此, Sq...
分类:
其他好文 时间:
2015-04-12 09:24:31
阅读次数:
164
安装Android的SDK
1、首先,下载installer_r23.0.2-windows.exe
2、双击“installer_r23.0.2-windows.exe”,进入Android SDK欢迎界面
3、点击“Next”,确定安装SDK所对应的Java虚拟机
4、由上步单击“Next”,进入“Choose Users”的过程...
分类:
移动开发 时间:
2015-04-11 20:55:16
阅读次数:
152
Java虚拟机规范中试图定义一种java内存模型(java Memory Model,jmm)来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让java程序在各种平台下都能达到一致的内存访问效果。Java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量...
分类:
编程语言 时间:
2015-04-11 17:38:52
阅读次数:
151
垃圾收集算法一般来说,垃圾收集算法分为四类:标记-清除算法最基础的算法便是标记-清除算法(Mark-Sweep)。算法分为“标记”和“清除”两个阶段:首先标记处需要收集的对象,在标记完成之后,再统一回收所有被标记的对象。这是最简单的一种算法,但是缺点也是很明显的:一个是效率问题,标记和清除效率都不高...
分类:
编程语言 时间:
2015-04-11 17:33:01
阅读次数:
142
在运行java程序时,遇到问题"Could not create the Java Virtual Machine."如下截图:大概原因,就是java堆内存不足以运行JVM,需要增加内存。网上搜索此问题,大部分都是针对某个程序进行修改JVM内存的解决方法,比如eclipse,等。试问,若是其他程序出...
分类:
编程语言 时间:
2015-04-10 13:28:53
阅读次数:
273
Java 虚拟机规范中制定了虚拟机字节码执行引擎的概念模型,这个概念模型成为各种版本虚机执行引擎的统一外观(Facade)。在不同的虚拟机实现里面,执行引擎在执行Java代码的时候可能会有解释执行(通过解释器执行)和编译执行(通过即时编译器产生本地代码执行)两种选择,也可能两者兼备,甚至还可能会包含几个不同级别的编译器执行引擎。...
分类:
其他好文 时间:
2015-04-10 09:36:29
阅读次数:
225
在Core Java中有这样一句话:"没有任何语言方面的需求要求一个被中断的程序应该终止。中断一个线程只是为了引起该线程的注意,被中断线程可以决定如何应对中断"线程中断在线程生命周期中的作用:线程状态:Java虚拟机将线程运行过程分成四种状态:(1) New新生;(2) Runnable可运行;(3...
分类:
编程语言 时间:
2015-04-10 06:32:24
阅读次数:
173