![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 81
我的学长是王欣
/**
*
* If this code is useful, it is written by z3jjlzt.
* If not good, I do not know who wrote.
*/
展开
-
Java内存区域
Java和C++之间存在一堵由内存动态分配和垃圾自动回收所组成的“围墙”,墙外的人想进来,墙内的人想出去。1. 对比对于C++,C程序开发人员,他们需要亲自管理内存,从内存生命周期的开始到结束。亲力亲为。Java中存在垃圾自动回收机制,不容易发生内存泄漏,但是,如果出现了问题,同时对GC原理不熟悉,排查错误将会是一项艰难的工作。2. 运行时数据区域JVM虚拟机吧内存划分原创 2018-01-05 11:41:36 · 133 阅读 · 0 评论 -
自动回收机制
自动内存管理机制 GC一般使用两种方法,引用计数和可达性分析。引用计数:简单高效,但是无法解决循环引用问题。可达性分析:从各个GC Roots向下遍历,当任一引用链都不可达时,判断为可回收对象。(可作为GC Roots:虚拟机栈中引用的对象,本地方法栈中引用的对象,方法区中的常量引用的对象,方法区中类静态属性引用的对象)0x00 四种引用。强引用Strong:类似...原创 2018-01-05 14:19:10 · 377 阅读 · 0 评论 -
Class类文件数据结构
一次编写,到处运行。Write Once,Run Anywhere。虚拟机旨在实现与平台无关,同时,Java在成立之初就承诺在未来也会实现与语言无关。二者的基础都是虚拟机和字节码。Class文件可以以任何形式存在,如存在磁盘,通过类加载器直接生成等。Class文件采用一种类似于C中的结构体来存储数据,该伪结构体中只存在两种数据类型,无符号数和表。其中无符号数有u1,u2,u4,u8;代表1、原创 2018-01-05 14:27:44 · 628 阅读 · 0 评论 -
Java内存模型与线程
计算机的运算速度与它的存储和通信子系统速度差距过大,为了压榨计算机性能,多任务处理才诞生。 内存模型是一种缓存一致性协议。Java内存模型JMM JMM屏蔽各种硬件和操作系统的内存访问差异,目的是定义各个变量(实例变量、类变量、数组对象元素,不含有局部变量,因为线程私有)的访问规则。0x00 主内存和工作内存 一些规则。所有的变量(实例变量、类变量原创 2018-01-05 15:13:52 · 108 阅读 · 0 评论 -
虚拟机字节码执行引擎
运行时栈帧结构 每个方法从调用开始至结束,都对应一个站帧在虚拟机入栈出栈的过程。局部变量表操作数栈动态链接返回地址附加信息0x00 局部变量表 局部变量表是一组变量存储空间,存储方法参数和局部变量。Code属性中的max_locals确定了它的最大容量。局部变量表容量以变量槽(Slot)为基本单位。Slot可以复用。除了long和double使用...原创 2018-01-05 15:17:42 · 120 阅读 · 0 评论 -
Synchronized的一些思考
前些天被问到Synchronized关键字的一些用法和区别,发现自己的理解比较浅,因此在这作一个总结。0x00 定义 synchronized是一种同步锁。采用synchronized修饰符实现的同步机制叫做互斥锁机制,它所获得的锁叫做互斥锁。每个对象都有一个monitor(锁标记),当线程拥有这个锁标记时才能访问这个资源,没有锁标记便进入锁池。任何一个对象系统都会为其创建一个互斥锁原创 2018-01-23 19:11:08 · 270 阅读 · 0 评论 -
Java并发之AQS浅析
0x00 概述 Java并发工具包JUC提供了许多并发工具,如常见的ReentrantLock可重入锁,Semaphore信号量等,它们都有一个共同的父类AbstractQueuedSynchronizer,AQS框架用来构建锁和同步器,该框架底层使用了CAS。0x01 基本原理AQS类中持有一个volatile的变量state,用来表示同步状态。图中三个方法用来操作...原创 2018-05-22 09:35:55 · 232 阅读 · 0 评论 -
Java多线程并发杂谈
0x000 多线程编程中的三个核心概念0x001 JMM内存模型0x001 什么是线程不安全0x010 Java解决多线程并发问题a. Java保证原子性1. 显式锁Lock方式2. 内置锁,同步Synchronized方式3. CAS(compare and swap)b. Java保证可见性c. Java保证顺序性0x011 AQS框架1. 概述2. 基本...原创 2018-05-24 15:23:24 · 442 阅读 · 0 评论