目录 99学习总结 字节码文件结构总结 学习收获 疑问和待解决 1字节码文件结构 1.1概述 1.2关于“表”的说明 2魔数 3版本号 4常量池 4.1字面量 4.2符号引用 4.3常量的表结构 4.3.1表结构的属性解析 2.3.217种常量的表结构解析 5访问标志 6类索引、父类索引与接口索引集合 7字段表集合 7.1访问标志 7.2简名索引 7.3类型索引 7.4属性集合 8方法表集合 8.1访问标志 8.2简名索引 8.3描述符索引 8.4属性表集合 8.5关于方法体代码的存储 9属性表集合 9.1Code属性 9.2Exceptions属性 9.3...

  70k0Imfz95IH   2023年11月01日   256   0   0 Java

目录 1概述 2底层数据结构 3构造函数 4自动扩容 5set()get()remove() 6Fail-Fast机制 1概述 ArrayList的元素:有序、可重复、允许null ArrayList没有实现同步(synchronized),因此线程不安全的。(vector线程安全) ArrayList底层数据结构为数组,容量(capacity):表示底层数组长度。容量不足则触发扩容,创建一个更长的数组,并将元素迁移到新数组 关于数组:数组一旦被创建,长度不可变 支持泛型 2底层数据结构 几个重要的成员变量 transientObject[]elementData;//存储...

  70k0Imfz95IH   2023年11月01日   38   0   0 Java

目录 1编译器分类 2Javac编译器 2.1Javac简介 2.2Javac与程序开发 3Javac工作过程 3.1解析与填充符号表 3.1.1词法分析 3.1.2语法分析 3.1.3填充符号表 3.2注解处理 3.3语义分析 3.3.1标注检查 3.3.2数据及控制流分析 3.3.3解语法糖 3.4生成字节码 4总结 1编译器分类 Java的编译过程:将源代码转化成机器可执行的二进制代码。实际上,编译过程,是分阶段进行的,由此产生了不同的编译器。 编译器分类: 类别 工作内容 代表 前端编译器 把源代码转变成字节码 JDK的Javac、Ecli...

  70k0Imfz95IH   2023年11月01日   80   0   0 Java

目录 1线程安全定义 2Java数据与线程安全 2.1不可变 2.2绝对线程安全 2.3相对线程安全 2.4线程兼容 2.5线程对立 3Java线程安全支持 3.1互斥同步 3.1.1synchronized互斥同步原理 3.1.2Lock接口和ReentrantLock互斥同步原理 3.1.3synchronized和Lock对比 3.2非阻塞同步 3.3无同步方案 3.3.1可重入代码 3.3.2线程本地存储 1线程安全定义 含糊的定义:如果一个对象可以安全地被多个线程同时使用,那它就是线程安全的严谨的定义: 当多个线程同时访问一个对象时,如果不用考虑这些...

  70k0Imfz95IH   2023年11月01日   81   0   0 Java

目录 1锁优化历史 2自旋锁与自适应自旋 2.1关于自旋锁 2.1自旋锁优化:自适应自旋 3锁消除 4锁粗化 5轻量级锁 6偏向锁 7锁的优缺点对比 1锁优化历史 synchronized从JDK1.0到JDK1.5,效率低 JDK1.5到JDK1.6,JVM团队对synchronized进行深度优化,加入了:适应性自旋、锁消除、锁膨胀、轻量级锁、偏向锁等优化技术 JDK1.5开始,加入java.util.concurrent,提供API层面的轻量级锁应用 为什么优化synchronized? 互斥同步对性能最大的影响是阻塞的实现,挂起线程和恢复线程的操作都需要转入内核...

  70k0Imfz95IH   2023年11月01日   112   0   0 Java

目录 1final基本用法 1.1final修饰变量 1.2final修饰方法参数 1.3final修饰方法 1.4final修饰类 1.5空白final 1.6staticfinal 2jvm角度理解final不可变性 3final多线程下可见性 4final域重排序规则 5面试常见问题 5.1所有的final修饰的字段都是编译期常量吗? 5.2final类型的类如何拓展? 5.3如何理解private所修饰的方法是隐式的final? 1final基本用法 final:“这是无法改变的"final可以修饰:变量、参数、方法、类 1.1final修饰变量 修饰变量(变量...

  70k0Imfz95IH   2023年11月01日   92   0   0 Java

目录 1String不可变性 2不可变的好处 3String+和StringBuilder效率差异 4String,StringBufferandStringBuilder 5String与JVM内存管理 6Stringapi方法 1String不可变性 String类被声明为final,因此它不可被继承。 内部使用char数组存储数据,该数组被声明为final,这意味着value数组初始化之后就不能再指向其它数组。 String内部没有改变value数组的方法 String类中所有修改String值的方法,如果内容没有改变,则返回原来的String对象引用,如果改变了,创建...

  70k0Imfz95IH   2023年11月01日   87   0   0 Java

目录 1一般数据结构及特点 2HashMap基本属性说明 3HashMap数据结构 3.1构造函数 3.2Node<k,v>分析 4put过程分析 4.1扩容方法resize()分析 4.2put方法分析 5关于HashMap 5.1HashMap如何实现put、get操作时间复杂度为O(1)O(n)? 5.2HashMap什么时候从单节点转成链表又是什么时候从链表转成红黑树? 5.3HashMap初始化时为什么要给自定义的初始容量? 5.4HashMap如何保证容量始终是2的幂? 5.5HashMap为何要保证容量始终是2的幂 5.6HashMap计算hash...

  70k0Imfz95IH   2023年11月01日   32   0   0 Java

目录 1TreeMap基本介绍 2红黑树数据结构回顾 3成员变量 4内部类Entry 5构造函数 6重要方法分析 6.1get方法分析 6.2put方法分析 6.3插入调整函数fixAfterInsertion()解析 6.4删除方法remove()解析 6.5删除调整函数fixAfterDeletion()解析 6.6寻找后继函数successor()解析 7解惑: 1TreeMap支持key自定义排序,而红黑树对key的固定的排序规则,两者如何兼容的? 1TreeMap基本介绍 JavaTreeMap实现了SortedMap接口,也就是说会按照key的大小顺...

  70k0Imfz95IH   2023年11月01日   52   0   0 Java

目录 1mysql逻辑架构 1.1连接管理与安全性 1.2优化与执行 2并发控制 2.1锁粒度 2.2表锁 2.3行级锁 3事务 3.1数据库事务四特性 3.2隔离级别 3.3死锁 3.4事务日志 3.5MySql中的事务 4多版本并发控制MVCC 5MySql常用存储引擎 5.1InnoDB 5.2MyISAM 6InnoDB如何使用MVCC解决幻读 1mysql逻辑架构 mysql逻辑架构图: Mysql服务器、存储引擎是两个独立的组件,彼此通过api交互 第一层:连接处理、授权认证、安全管理 第二层:核心服务功能 查询解析、分析、优化、缓存以及所有...

  70k0Imfz95IH   2023年11月01日   424   0   0 MySQL
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~