![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
jvm
文章平均质量分 76
wuhulala
这个作者很懒,什么都没留下…
展开
-
CAS 和 Sychronized的在CPU密集计算情况下的博弈
很多时候听到使用CAS很优秀。。。但是CAS是银弹吗?从实现角度上,sychronized当线程获得不到锁的时候把线程挂起,而CAS不会挂起,而是继续重试。比如下面的一个场景i++ 的场景,以下代码是AtomicInteger的i++源码 public final int getAndIncrement() { return unsafe.getAndAddInt(th...原创 2019-12-07 19:50:08 · 213 阅读 · 0 评论 -
JVM 字节码 (一) 加载和存储指令
本文主要讲load,store,const,push等字节码的实例即应用。声明局部变量并赋值源程序 int x = 2; int y = 3;字节码0 iconst_2 将常量(2)压入操作数栈中1 istore_1 将操作栈的值弹出,即常量(2)并赋值给第1个局部变量x2 iconst_3 将常量...原创 2018-02-20 11:22:44 · 1096 阅读 · 0 评论 -
Tomcat 的 ClassLoader
ClassLoader结构引入 ClassLoader cl = this.getClass().getClassLoader(); while(cl != null){ System.out.println(cl.getClass().getCanonicalName()); cl = cl.getParent(); }将会打印以下内容 org.apach原创 2017-12-20 23:00:21 · 763 阅读 · 0 评论 -
类加载时机与过程
说明:本文的内容是看了《深入理解Java虚拟机:JVM高级特性与最佳实践》后为加印象和理解,便记录了重要的内容。 1 开门见山以前曾经看到过一个java的面试题,当时觉得此题很简单,可是自己把代码运行起来,可是结果并不是自己想象的那样。题目如下: class SingleTon { private static SingleTon singleTon = new Singl转载 2017-12-24 13:46:44 · 420 阅读 · 0 评论 -
反射中Class.forName()和ClassLoader.loadClass()的区别
原文转自:https://www.cnblogs.com/zabulon/p/5826610.html一 Java类装载过程装载:通过累的全限定名获取二进制字节流,将二进制字节流转换成方法区中的运行时数据结构,在内存中生成Java.lang.class对象; 链接:执行下面的校验、准备和解析步骤,其中解析步骤是可以选择的; 校验:检查导入类或接口的二进制数据转载 2017-12-14 20:54:59 · 218 阅读 · 1 评论