05 2022 档案

摘要:线程通常分为五种状态:创建,就绪,运行,阻塞,死亡。 阻塞又分为三种: 等待阻塞:运行的线程执行wait方法,该线程会释放占用的所有资源,JVM会把线程放入等待池中,进入这个状态后,是不能自动唤醒的,必须依靠其他线程调用notify或notifyAll方法才能唤醒,wait是Object类的方法。 阅读全文
posted @ 2022-05-11 15:39 W_k 阅读(122) 评论(0) 推荐(0) 编辑
摘要:可达性分析法:从GC Roots开始向下搜索,搜索所走过的路径称为引用链,当一个对象没有被任何GC Roots引用链相连时,则证明此对象是不可用的,就是可回收对象。 GC Roots的对象有: 虚拟机栈(栈帧中的本地变量表)中引用的对象 方法区中类静态属性引用的对象 方法区中常量引用的对象 本地方法 阅读全文
posted @ 2022-05-11 15:20 W_k 阅读(88) 评论(0) 推荐(0) 编辑
摘要:java类加载器:BootStrapClassLoader(顶层加载器,加载%JAVA_HOME%/lib下的jar包),ExtClassLoader(加载%JAVA_HOME%/lib/ext下的jar包),AppClassLoader(加载classPath下的jar包,同时它也是自定义加载器的 阅读全文
posted @ 2022-05-09 19:25 W_k 阅读(18) 评论(0) 推荐(0) 编辑
摘要:简单来说分为四个步骤: 1.写一个配置文件,配置包扫描路径 2.根据包扫描路径递归获取.class文件 3.通过反射,确定需要交给IOC容器管理的类 4.对需要注入的类进行依赖注入 配置文件中指定需要扫描的包路径 定义一些注解,分别表示访问控制层,业务服务层,数据持久层,依赖注入注解,获取配置文件注 阅读全文
posted @ 2022-05-09 18:57 W_k 阅读(100) 评论(0) 推荐(0) 编辑
摘要:首先它和HashTable一样,是线程安全,但是HashTable底层是加了synchronized全局锁,而ConcurrentHashMap底层是分段锁实现的,比HashTable效率更高。 jdk7: 数据结构:ReentrantLock+Segment+HashEntry,一个Segment 阅读全文
posted @ 2022-05-09 18:48 W_k 阅读(95) 评论(0) 推荐(0) 编辑
摘要:区别: 1.HashMap方法没有synchronized修饰,所以是非线程安全的,HashTable是synchronized修饰,线程安全 2.HashMap允许key和value为null,而HashTable不允许。 HashMap底层实现: jdk8之前是数组加链表的形式,jdk8开始数组 阅读全文
posted @ 2022-05-09 18:13 W_k 阅读(57) 评论(0) 推荐(0) 编辑
摘要:hashCode的介绍 hashCode()的作用是获取哈希码,也称为散列码,它返回的是一个int整数。这个哈希码的作用是确定该对象在哈希表中的索引位置。hashCode()是Object类中的方法,所以所有的类都包含有hashCode函数,散列表存储的是键值对,它的特点是:根据key快速的检索出对 阅读全文
posted @ 2022-05-09 17:49 W_k 阅读(27) 评论(0) 推荐(0) 编辑
摘要:ArrayList:数据结构—基于动态数组的,在内存中是连续内存存储的,所以适合下标访问(随机访问),扩容机制:因为数组的长度是固定的,超出长度时需要重新创建数组,将老数组的数据拷贝到新数组中去,如果不是尾部插入数据的话还要涉及到元素的移动,从尾部开始,将元素依次往后复制,如果使用的是尾部插入法的话 阅读全文
posted @ 2022-05-08 19:39 W_k 阅读(22) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示