周志明的《深入理解Java虚拟机》很好很强大,阅读起来颇有点费劲,尤其是当你跟随作者的思路一直探究下去,开始会让你弄不清方向,难免有些你说的啥子的感觉。但知识不得不学,于是天天看,反复看,就慢慢的理解了。我其实不想说这种硬磨的方法有多好,我甚至不推荐,我建议大家阅读这本书时,由浅入深,有舍有得,先从 ...
分类:
编程语言 时间:
2018-10-29 19:57:40
阅读次数:
191
JVM类生命周期概述:加载时机与加载过程 https://blog.csdn.net/justloveyou_/article/details/72466105 深入理解Java类加载器(一):Java类加载原理解析 https://blog.csdn.net/justloveyou_/articl ...
分类:
编程语言 时间:
2018-10-28 11:21:58
阅读次数:
215
集合 Java集合分为三大接口:①Collection ②Map ③Iterator ...
分类:
编程语言 时间:
2018-10-22 22:20:31
阅读次数:
166
摘抄自周志明老师的《深入理解Java虚拟机:JVM高级特性与最佳实践》13.2.2 线程安全的实现方法 1.名词解释 同步是指锁哥线程并发访问共享数据时,保证共享数据同一时刻只被一个线程访问 互斥同步(阻塞同步)是一种悲观的并发策略,总是认为只要不去做正确的同步措施(加锁),那就肯定会出现问题。 阻 ...
分类:
编程语言 时间:
2018-10-22 17:55:36
阅读次数:
172
查看步骤 cmd执行命令: java -XX:+PrintCommandLineFlags -version 输出如下(举例): 针对上述的-XX:UseParallelGC,这边我们引用《深入理解Java虚拟机:JVM高级特性与最佳实践》的介绍: 也就是说,打开此开关,使用的垃圾收集器是:新生代( ...
分类:
其他好文 时间:
2018-10-22 17:49:13
阅读次数:
168
一.回顾学习内容 在前面几篇博客中我我们已经理解了synchronized对象锁、对象锁的重入、synchronized方法块、synchronized非本对象的代码块, 链接:https://www.cnblogs.com/SAM-CJM/category/1314992.html 我们来总结一下 ...
分类:
编程语言 时间:
2018-10-20 13:40:49
阅读次数:
385
问题导入:如果一个线程调用了一个对象的同步方法,那么他还能不能在调用这个对象的另外一个同步方法呢? 这里就是synchronized锁重入问题。 一.synchronized锁重入 来看下面的代码: .这个是三个同步方法的类 线程类,在run方法中调用一号同步方法: 结果如下: 总结:可以看出一个线 ...
分类:
编程语言 时间:
2018-10-17 12:13:53
阅读次数:
223
Java运行详解 一、从机器语言到高级语言 计算机只认识0、1,对应于电路中低电平和高电平。因此,早期程序员使用特定的0、1串操控计算机,从而达到想要的目标效果。这些0、1串就称作指令,也叫机器码(比如0000代加载,000代表寄存器A,000000000000 代表地址为0的存储器,所以0000, ...
分类:
编程语言 时间:
2018-10-15 00:41:23
阅读次数:
229
本文参考《深入理解java虚拟机》 双亲委派模型中将 类加载器进行等级划分,当一个类加载器收到一个类加载的请求时,自己先不会处理这个请求,而是将这个请求交给父类加载器,最终请求会传到启动类加载器,如果父类加载器不能完成这个请求,就会向下一级进行加载,直到将类加载进来。 这个模型有一个好处,java中 ...
分类:
其他好文 时间:
2018-09-30 20:13:31
阅读次数:
190
本文参考《深入理解java虚拟机》 虚拟机加载类的过程: java源程序被编译器编译成class文件后,会被虚拟机的类加载器加载,加载完成后,会为class文件在内存中开辟一块空间用来存储class文件对象,之后对class文件进行校验,准备,解析和初始化,最终形成能被虚拟机使用的java类型,这叫 ...
分类:
其他好文 时间:
2018-09-30 20:07:31
阅读次数:
112