
java
文章平均质量分 87
IT_农厂
这个作者很懒,什么都没留下…
展开
-
5分钟系列之-Java类加载器
文章目录类加载器类与类加载器双亲委派启动类加载器扩展类加载器<Extension ClassLoader>应用程序类加载器<Application ClassLoader>破坏双亲委派模型类加载器通过一个类的全限定的名来获取此类的二进制字节流这个动作在java虚拟机外部实现,让应用程序自己决定如何去获取所需要的类,实现这个动作的代码模块成为类加载器。类与类加载器对于任意一个类,都需要由加载它的类加载器和这个类本身一同确立其在java虚拟机中的唯一性;比较两个类相等,只有在这两原创 2021-02-05 20:59:19 · 247 阅读 · 0 评论 -
5分钟系列之-Java类文件结构(三、字节码指令简介)
文章目录字节码指令简介1字节码与数据类型2加载和存储指令3运算指令4类型转换指令5对象创建与访问指令6操作数栈管理指令7 控制转移指令8方法调用和返回指令9异常处理指令10同步指令公有设计和私有实现Class 文件结构的发展本节内容作为了解即可,知道虚拟机字节码是怎么回事,有哪些类型的字节码,具体的字节码无需一一记住,正常的开发工作不会涉及到阅读字节码的内容。字节码指令简介 java虚拟机的指令由一个字节长度的、代表特殊操作含义的数组以及跟随其后的零至多个代表此项操作所需参数而构成。由于Java虚拟原创 2021-01-17 20:57:26 · 342 阅读 · 0 评论 -
5分钟系列之-Java类文件结构(二、字节码分析)
文章目录2.Class文件的结构2.1 无符号数2.2 表2.3 解读字节码文件2.3.6访问标志2.3.7类索引、父类索引与接口索引2.3.8字段计数器与字段集合简单名称描述符2.3.9方法计数器与方法集合2.3.10属性表属性表结构LineNumberTable解析第二个方法2.3.11附加属性附加属性计数器附加属性属性表集合2.Class文件的结构 class文件中各数据项严格按照顺序紧凑的排列在class文件中,没有空隙存在,各项的排列顺序如图。表1模板常常问类父,计数集合顺序数,接口.原创 2021-01-10 20:22:50 · 338 阅读 · 0 评论 -
5分钟系列之-Java类文件结构(一、字节码分析)
文章目录1.无关性的基石2.Class文件的结构2.1 无符号数2.2 表2.3 解读字节码文件2.3.1魔数2.3.2副版本号2.3.3主版本号2.3.4常量池计算器2.3.5常量池项目类型解析常量池第一项(CONSTANT_Methodref_info)解析常量池第二项(CONSTANT_Fieldref_info)解析常量池第三第四项( CONSTANT_Class_info)解析常量池中的第5项(CONSTANT_utf8_info)常量池剩余内容解析解析工具1.无关性的基石 各种不同平台的虚原创 2020-12-29 00:53:28 · 272 阅读 · 0 评论 -
5分钟系列之-java内存模型与线程(三、java与线程)
java与线程文章目录java与线程1.线程的实现1.1使用内核线程实现1.2使用用户线程实现1.3使用用户线程加轻量级进程混合实现1.4Java线程的实现2.Java线程调度2.1协同式线程调度2.2抢占式线程调度2.2.1线程优先级:2.2.2状态转换1.线程的实现 实现线程主要三种方式:使用内核线程实现、使用用户线程实现、使用用户线程加轻量级进程混合实现1.1使用内核线程实现 内核线程(Kernel-Lvel Thread,KLT)就是直接由操作系统内核支持的线程,这种线程由内核完成线程原创 2020-12-23 23:38:41 · 162 阅读 · 0 评论 -
5分钟系列之-java内存模型与线程(二、java内存模型)
文章目录java内存模型1.主内存与工作内存2.内存间的交互操作2.1八种操作2.2八种操作需要满足的规则2.3 对于volatile变量的特殊规则2.3.1.可见性:2.3.2.禁止指令重排序2.3.3 Java内存模型对volatile变量的特殊规定2.4 对于long和double型变量的特殊规则2.5原子性、可见性与有序性2.6 先行发生原则java内存模型 java虚拟机定义一种规范来屏蔽调各种硬件和原创 2020-12-23 01:32:53 · 202 阅读 · 0 评论 -
5分钟系列之-java内存模型与线程(一、硬件效率与一致性)
java内存模型与线程(一)文章目录java内存模型与线程(一)1. 衡量效率指标2.硬件的效率与一致性2.1高速缓存2.2乱序执行优化1. 衡量效率指标衡量一个服务性能好坏高低 ,每秒事务处理数事重要的指标之一(TPS),它代表一秒内服务能处理的请求数,而TPS的大小又与程序并发能力有着重要的关系。2.硬件的效率与一致性如何压榨cpu资源2.1高速缓存计算机的存储设备与cpu的运算速度有几个数量级的差距,因此现代计算机都加上一层读写速度尽可能接近与cpu处理速度的高速缓存来充当内存与cpu的原创 2020-12-21 23:09:24 · 177 阅读 · 0 评论 -
JAVA线程安全与锁优化
线程安全与锁优化文章目录线程安全与锁优化线程安全JAVA语言中的线程安全1.不可变2.绝对线程安全3.相对线程安全4.线程兼容5线程对立线程安全的方法实现1.互斥同步手段1 syncronized关键字手段2ReentrantLock2.非阻塞同步3无同步方案可重入代码线程本地存储锁优化自旋锁与自适应自旋锁消除锁粗化轻量级锁偏向锁锁优化之前的加锁操作重量级锁加锁过程偏向锁,轻量级锁,重量级锁状态的转化回顾提问:线程安全当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行。也不用原创 2020-12-20 14:16:04 · 327 阅读 · 0 评论 -
spring boot启动过程源码分析
原创 2018-11-22 17:04:56 · 1713 阅读 · 0 评论 -
java锁源码分析-1获取锁的过程
这篇文章(包括后边两篇)是六月份写的,写完后由于工作较忙,草稿一致没时间修改,今天偶尔翻到,担心哪天弄丢了,于是先以草稿的形式发布,内容有瑕疵,等以后有时间再修复。解读类的结构首先来看类的继承关系,ReetrantLock继承的Lock接口,其内部还存在三个内部类,Sync,NonfairSync和FairSync 其中NonfairSync和FairSync都是继承自Sync。 ...原创 2018-11-22 16:31:11 · 2527 阅读 · 0 评论 -
5分钟掌握jvm 类的加载机制
类的加载分为以下几个阶段加载->验证->准备->解析->初始化->使用->卸载 | 链接阶段 | ------------------------速记法:家宴准备,姐使用蟹1.加载,在虚拟机方法区中生成一个这个类的对象,作为方法区中这个类各种信息的访问入口,这个加载文件的来源可以是本地某个目录,wa...原创 2018-01-07 21:13:17 · 45111 阅读 · 0 评论 -
为什么volatile也无法保证线程安全
要了解Volatile首先要从java内存模型说起原创 2017-12-05 18:11:07 · 25214 阅读 · 6 评论 -
一篇文章搞定java线程
[TOC]线程状态转换既然想了解多线程,线程的概念和什么是多线程想必不用多说,那首先说说线程的几个状态以及状态直接的转换,下边这张图展示了线程的几个状态,详细说说状态直接是如何转换的。 当new 一个线程它只是初始态,如果你不调用start()方法那这个线程永远都不会被执行,当调用start()方法后这个线程就变成了可运行状态,等待调度运行,调用start()不会马上进入运行状态,只是可运行,原创 2017-12-05 16:00:48 · 16539 阅读 · 0 评论 -
目录
【历史文章】为什么volatile也无法保证线程安全一篇文章搞定java线程原创 2017-12-06 11:27:56 · 6321 阅读 · 0 评论 -
超详细的java线程池源码解读
线程池的继承关系是这样的ThreadPoolExecutor继承了AbstractExecutorService,AbstractExecutorService是一个抽象类,它实现了ExecutorService接口,ExecutorService又是继承了Executor接口。 继承关系:ThreadPoolExecutor->AbstractExecutorService->ExecutorS原创 2017-12-22 18:34:59 · 22314 阅读 · 1 评论