- 博客(7)
- 收藏
- 关注
原创 ReentrantLock详解及源码分析
ReentrantLock详解及源码分析公平性重入锁非公平性重入锁 这里借用了方腾飞老师<<JAVA并发编程艺术>>一节的测试代码来从源码详细分析什么是公平,非公平,可重入锁, 非常好的一本书强烈推荐。 测试代码: public class FairAndU
2018-11-04 20:23:43 251
原创 JAVA虚拟机动态连接及分派详解
动态连接及分派深入详解为什么要将动态连接和分派放在一起讲?动态连接概括定义静态解析分派静态分派动态分派 为什么要将动态连接和分派放在一起讲? 大家看完后面的内容这个问题迎刃而解了。 动态连接概括定义 每个栈帧都保存了一个可以指向当前方法所在类的运行时常量池, 目的是当方法中需要调用其它方法的时候能够从运行时常量池中找到对应的符号引用, 然后将符号引用转换为直接引用然后就能直接调用对应的方法这就是动...
2018-10-28 14:36:52 866
原创 运行时数据结构(1)-java堆
java堆堆的内存划分创建的对象存放在哪里eden 空间TLAB(Thread Local Allocation Buffer)栈(线程逃逸分析技术)对象内存分配,在栈上创建对象就一定是线程安全的吗?对象的生命周期 堆的内存划分 整体划分为年轻代和老年代细分如下: 1. eden 空间 ------------------ 年轻代 2. from survivor 空间 -------- 年轻...
2018-10-27 15:21:23 651
原创 git常用命令这几个就够了
git常用命令常用基本命令代码冲突了怎么办分支怎么使用 常用基本命令 以下12个命令基本上可以解决开发中遇到的绝大部分问题 1. git clone 代码地址 2. git add 代码路径; 将修改添加到暂存区 3. git commit 可选参数(-a -m) -a 类似于执行git add -m 用于书写描述内容 git commit -am '将修改内容直接提交...
2018-10-26 22:50:04 371
原创 类加载器深入详解
类加载器深入详解类加载器JAVA虚拟机自身提供的加载器启动类加载器(Bootstrap ClassLoader)扩展类加载器(Extension ClassLoader)应用程序类加载器(Application ClassLoader)用户自定义的加载器双亲委派模型主要思路源码分析loadClass(String name, boolean resolve)getClassLoadingLock(...
2018-10-26 12:57:33 304
原创 jvm 常量池及运行时常量池
常量池 当我们将 .java文件编译成为了class文件后 常量池就存储在静态class文件中主要包含以下内容 字面量: 常量,字符串,基本类型等 符号引用: 类和接口全限定名,字段,方法名称及描述符 运行时常量池 当jvm加载class完成后,会将类的信息如常量池,字段,方法等数据装载进内存方法区 此时class文件里此时常量池就转变为了运行时常量池 为撒要生成 "运行时常量池" 因为常量不只是...
2018-10-25 13:39:22 1192
原创 JAVA虚拟机类加载过程
虚拟机类加载过程什么时候进行类加载类加载步骤加载连接(Linking)验证准备解析初始化 什么时候进行类加载 jvm虚拟机规范没有强制性的规定何时需要进行类的加载,但是如果遇到了以下几种情况的指令则强制必须立即对类进行加载 new 创建对象的时候, getstatic 读取静态字段的时候, putstatic 设置静态字段的时候, invokestatic 调用类的静态方法的时候 类加载步骤 加...
2018-10-25 13:22:42 243
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人