- 博客(12)
- 收藏
- 关注
原创 深入理解java虚拟机之虚拟机类加载机制
类加载的时机类的生命周期加载连接验证准备解析初始化使用卸载虚拟机规定必须初始化遇到new getstatic putstatic invokestatic 四个字节码指令,如果类没有初始化,则需要先触发初始化。使用场景使用new 关键字 实例化对象读取或者设置一个类的静态字段调用一个类的静态方法的时候使用java.lang.refle...
2020-03-31 22:30:35 96
原创 Redis基本使用
Reids 数据存储格式key : valueVlue数据类型string :Stringkey:string127.0.0.1:6379> set name zxlOK127.0.0.1:6379> get name"zxl"127.0.0.1:6379> del name(integer) 1127.0.0.1:6379> get name(...
2020-03-28 22:07:34 103
原创 深入理解JAVA虚拟机之垃圾收集器与内存分配策略
判断对象是否还活着引用计数算法每当有第一个地方引用了对象,计数器就+1 当失效就-1,如果计数器为0 那么对象就不可能再被使用了。可达性分析法通过一些列成为 gc roots的对象作为起始点,从这些结点开始搜索,搜索走过的路径称为引用链,当一个对象到 gc roots 没有任何引用链相连,则证明该对象是不可用的。可用作为gc roots的对象包括java栈(局部变量表的)中的引...
2020-03-25 21:19:39 170
原创 深入理解JAVA虚拟机之运行时数据区
程序计数器极小的一块内存空间,可以看做线程所执行的字节码的行号指示器。线程私有 每个线程都拥有一个独立的程序计数器。每个线程之间的计数器互相不影响。如果在执行的是一个java方法,那么计数器记录的是正在执行的虚拟机的字节码指令的地址;如果执行的native方法,这个计数器值则为空。这个区域在java虚拟机规范中 表明了不会出现 OutOfMemoryError情况java虚拟机栈...
2020-03-25 21:17:39 97
原创 Mysql索引从入门到秃头
什么是索引排好序的快速查找数据结构在数据之外,数据库系统还维护者满足特定查找算法的数据结构,这些数据结构以某种结构以某种方式引用的数据,这样可以在这些数据结构上 实现高级查找算法。这种数据结构就是索引。索引往往以文件的形式存储在磁盘上平常所说的索引 如果没有特别指明,都是指B树 ( 多路索引)其中有 聚集索引,次要索引,覆盖索引,复合索引,前缀索引,唯一索引 默认都是使用b+索引 还有h...
2020-03-21 18:31:27 93
原创 java并发容器之ConcurrentHashMap 详解
ConcurrentHashMap, jdk1.7,jdk1.8区别,java的并发包。舍弃了分段锁,而改用了cas+ synchronized 来保证并发安全。
2020-03-21 18:27:31 468
原创 袋鼠云面试(凉)
电话面(凉)1、自我介绍瞎比比了一些,忘记了。2、ArrayList和LinkedList的区别这个题还是挺简单的,回答上了。3、介绍下HashMap的数据结构从jdk1.7 之前 和hashMap的数据结构 和链表的插入方式 死链 谈到 jdk1.8的数据结构 和链表的改进,扩容方式 和触发扩容的条件。4、为什么使用ConcurrentHashMap?因为前面提了h...
2020-03-19 20:53:16 3105 2
原创 java 初识JVM
java 代码执行流程–java程序–> 编译成字节码文件 -->类加载器–> 字节码校验器 ->执行引擎java编译器输入的指令流是一种基于栈的指令集,另一种是基于寄存器的指令集架构基于栈式架构的特点:设计和实现更简单,适用于资源受限的系统避开了寄存器的分配难题,使用零地址指令方式分配直流零的指令大部分是零地址指令,其执行过程依赖于操作栈。指令集更小编...
2020-03-13 22:44:07 168
原创 java多线程学习笔记
创建线程的四种方式1、 继承Thread 类通过此方法创建线程 需要重写run方法class ThreadTest extends Thread{ @Override public void run() { System.out.println("ThreadTest running"); }}public class ThreadTest01 ...
2020-03-05 22:39:47 88
原创 JAVA集合之HashMap详解
HashMap 是实现与Map接口 java集合框架中重要的集合 底层数据结构是 数组+链表+红黑树非线程安全属性解释 //默认初始化数组容量 默认 16 static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16 // 最大数组容量 2^30 次方个 static final int MAXIMUM_CA...
2020-03-04 21:46:34 159
原创 java面试题整理
基本类Object类wait() 和 notify的联系wait()、notify/notifyAll() 方法是Object的本地final方法,无法被重写。wait()使当前线程阻塞,前提是 必须先获得锁,一般配合synchronized 关键字使用,由于 wait()、notify/notifyAll() 在synchronized 代码块执行,说明当前线程一定是获取了锁的。...
2020-03-01 22:07:36 165
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人