四种引用:强弱软虚 强引用:使用强引用,在内存不足的时候垃圾处理器也不会回收他,哪怕导致程序崩溃 例如: A a=new A() 软引用:内存不足的时候会被回收(软引用可以和一个引用队列(ReferenceQueue)联合使用,如果软引用所引用的对象被垃圾回收器回收,Java虚拟机就会把这个软引用加 ...
分类:
编程语言 时间:
2016-06-17 14:16:41
阅读次数:
129
线程 是程序中的执行线程。Java 虚拟机允许应用程序并发地运行多个执行线程。 同步监视器,1,不可以是基本数据类型 2,可以是任意的引用数据类型,但是引用数据类型的引用是不可变花的,内容可以改变。 3,如果多个代码块使用了同一个监视器,一个里面进行了锁定,则其他的线程都不可以访问 程序的运行结果是 ...
分类:
编程语言 时间:
2016-06-17 12:35:51
阅读次数:
179
1. JVM运行时内存结构
1.由如下图构成。Runtime Data Area有如下几个区,其中PC程序计数器、虚拟机栈和本地方法栈是线程独享的,堆和方法区是线程共享的。Classload用来加载class文件,执行引擎用来执行程序,本地方法接口调用本地方法库。
2.java stack比较简单,每一个都是一个栈帧,每个栈帧由三部分构成。局部变量区、操作数区和帧数据区。局部变量是...
分类:
编程语言 时间:
2016-06-17 11:13:23
阅读次数:
227
摘自:http://uule.iteye.com/blog/2114697 摘自:http://uule.iteye.com/blog/2114697 JVM垃圾回收与性能调优总结 JVM调优的几种策略 一、JVM内存模型及垃圾收集算法 1.根据Java虚拟机规范,JVM将内存划分为: New(年轻 ...
分类:
其他好文 时间:
2016-06-17 00:42:21
阅读次数:
153
1. JRbel介绍 JRebel是一套JavaEE开发工具。Jrebel可快速实现热部署,节省了大量重启时间,提高了个人开发效率。网上可搜索到破解版。JRebel是一款JAVA虚拟机插件,它使得JAVA程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响。JRebel使你能即 ...
分类:
其他好文 时间:
2016-06-16 20:09:21
阅读次数:
153
臭名昭著的goto
编程语言中一开始就有goto关键词了。事实上,goto起源于汇编语言的程序控制:“若条件A成立,则跳到这里;否则跳到那里”。如果阅读由编译器最终生成的汇编代码,就会发现程序控制里包含了许多跳转。(Java编译器生成它自己的“汇编代码”,但是这个代码是运行在Java虚拟机上的,而不是直接运行在CPU硬件上。)
goto语句是在源码级上的跳转,这使其...
分类:
编程语言 时间:
2016-06-16 18:07:32
阅读次数:
226
JVM监控 JVM:Java Virtual Machine(Java虚拟机) 监控工具: jdk自带(以下面两个为例,还有其他类型的监控工具): jconsole.exe、jvisualvm.exe(jdk自带的实时监控) IBM: IBM Pattern Modeling and Analysi ...
分类:
系统相关 时间:
2016-06-14 19:11:10
阅读次数:
334
Java的垃圾回收机制是通过GC线程执行的,它是java虚拟机自己使用的守护线程。 Java把内存分成两种,一种叫做栈内存,一种叫做堆内存,有着不同的作用。栈内存用来存储局部变量和方法调用。栈内存归属于单个线程,每个线程都会有一个栈内存,其存储的变量只能在其所属线程中可见,即栈内存可以理解成线程的私 ...
分类:
编程语言 时间:
2016-06-13 15:35:05
阅读次数:
234
在之前的章节中我们讲解了jvm的内存分配和管理,class的文件结构,就差之行了。那么从第十一章开始我们就开始讲java虚拟机是如何执行一个class文件的。
首先我们应该明确虚拟机是区别于物理机的一种说法,物理机的执行引擎是建立在处理器,硬件 ,指令集之上的。而我们的虚拟机则由自己实现。在虚拟机中大致分为两种执行方式:解释执行和编译执行。
我们之前讲过,虚拟机运行方法的时候运行在java虚拟...
分类:
其他好文 时间:
2016-06-13 11:49:42
阅读次数:
199
一、什么是ASM
ASM是一个java字节码操纵框架,它能被用来动态生成类或者增强既有类的功能。ASM 可以直接产生二进制 class 文件,也可以在类被加载入 Java 虚拟机之前动态改变类行为。Java class 被存储在严格格式定义的 .class文件里,这些类文件拥有足够的元数据来解析类中的所有元素:类名称、方法、属性以及 Java 字节码(指令)。ASM从类文件中读入信息后,能够...
分类:
编程语言 时间:
2016-06-12 02:40:52
阅读次数:
266