![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
jvm
你丶怎么睡得着的?
这个作者很懒,什么都没留下…
展开
-
虚拟机类加载机制
参考自Java虚拟机类加载机制类加载全过程加载在加载阶段,虚拟机需要完成以下3件事情:通过一个类的全限定名来获取定义此类的二进制字节流(并没有指明要从一个Class文件中获取,可以从其他渠道,譬如:网络、动态生成、数据库等);将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构;在内存中生成一个代表这个类的java.lang.Clas原创 2018-01-30 00:21:24 · 166 阅读 · 0 评论 -
JVM的新生代、老年代、MinorGC、MajorGC(Full GC)
JVM的新生代、老年代、MinorGC、MajorGC参考资料:http://blog.csdn.net/flamezyg/article/details/44673951http://www.blogjava.net/ldwblog/archive/2013/07/24/401919.htmlhttp://www.360doc.com/content/12/1023/16/961...转载 2018-04-19 20:24:03 · 1510 阅读 · 0 评论 -
队列同步器(AQS)详解源码分析
队列同步器(AQS)简介: AbstractQueueSynchronizer,用来构建锁和其他同步组件的基础框架,使用一个int型变量来表示同步状态,通过内置的FIFO队列来完成资源获取线程的排队工作。 我们可以这么理解,锁是面向使用者的,即我们可以用锁来完成多线程处理的一些问题,而隐藏了实现的细节,而同步器面向锁的实现者,它简化了锁的实现方式,屏蔽了同步状态管理,...原创 2018-04-17 19:08:33 · 1239 阅读 · 0 评论 -
java的直接缓冲和非直接缓冲区
在我们讨论java的内存模型时,和讨论java的NIO时都会涉及到直接缓冲和非直接缓冲区这个概念(主要是直接和非直接)在java的内存模型中https://blog.csdn.net/qiuwenjie123/article/details/79200509会有堆和直接内存这个概念,堆就存在于jvm的内存之中,而直接内存则是不属于与jvm的工作内存之中,相当于另外的内存而在NIO中https://...原创 2018-04-02 22:04:30 · 3047 阅读 · 0 评论 -
happen-before原则
1) 程序顺序规则: 一个线程中的每个操作, happens-before于该线程中的任意后续操作。2) 监视器锁规则: 对一个锁的解锁, happens-before于随后对这个锁的加锁。3) volatile变量规则: 对一个volatile域的写, happens-before于任意后续对这个volatile域的读。4) 传递性: 如果A happens-before B, 且B happe...原创 2018-03-11 14:59:51 · 209 阅读 · 0 评论 -
volatile关键字解析
先理解一些概念java内存中的可见性、原子性和有序性可见性:是指线程之间的可见性,一个线程修改的状态对另一个线程是可见的。也就是一个线程修改的结果。另一个线程马上就能看到。比如:用volatile修饰的变量,就会具有可见性。volatile修饰的变量不允许线程内部缓存和重排序,即直接修改内存。所以对其他线程是可见的。但是这里需要注意一个问题,volatile只能让被他修饰内容具有可见性,但不能保证...原创 2018-02-20 16:59:25 · 148 阅读 · 0 评论 -
java常用的内存区域与内存溢出异常
java常用的内存区域(1)程序计数器(program counter register): 一块较小的内存空间,可看作是当前线程(线程私有)所执行的字节码的行号指示器.字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令.(2)java虚拟机栈(vm stack): 也是线程私有,生命周期与线程相同,虚拟机栈描述的是ja原创 2018-01-29 22:09:31 · 643 阅读 · 0 评论 -
Java垃圾收集算法介绍
垃圾回收器GC(Garbage Collection) 一、引用计数算法(Reference Counting) 介绍:给对象添加一个引用计数器,每当一个地方引用它时,数据器加1;当引用失效时,计数器减1;计数器为0的即可被回收。 优点:实现简单,判断效率高 缺点:很难解决对象之间的相互循环引用(objA.instance = objB; objB.inst转载 2018-01-24 16:53:33 · 169 阅读 · 0 评论 -
windows下揪出java程序占用cpu很高的线程 并找到问题代码 死循环线程代码
http://blog.csdn.net/hexin373/article/details/8846919 我的一个Java程序偶尔会出现cpu占用很高的情况一直不知道什么原因今天终于抽时间解决了系统是win2003 jvisualvm 和 jconsole貌似都只能看到总共占用的cpu 看不到每个线程分别占用的cpu呢所以在windows平台上要找出到底是哪...转载 2018-08-09 17:06:04 · 233 阅读 · 0 评论