![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
wuxioqian0634
这个作者很懒,什么都没留下…
展开
-
JAVA中的CAS操作实现原理
以Unsafe类的compareAndSwapInt()方法为例来说,compareAndSwapInt就是借助C语言和汇编代码来实现的。转载 2020-01-16 00:25:23 · 155 阅读 · 0 评论 -
StringBuffer是可变的还是不可变的?
我们知道String类的修饰符是final,其char[] value也是由final修饰的,每次给String变量赋一个新值,都会创建一个新的String对象,很多有涉及到字符串本身的改变都是伴有(new String)的字样,所以我们说String类是不可变类。但StringBuffer类也是由final修饰的呀,为什么它就是可变类了呢? public final class StringB...转载 2020-01-16 00:23:12 · 1306 阅读 · 0 评论 -
HashMap
一、概要 本文先会将hashmap的基本概念属性梳理一遍后,再从增删改查方法中每个步骤逐一解释说明。力求达到通熟易懂,逻辑清晰,便于加深印象。 二、概念 首先Hashmap的底层数据结构是由数组+链表组成的,是线程不安全,允许key和value为null。底层结构数组叫哈希桶,而桶内则是链表,链表中的节点Node存放着实际的元素。 Hashmap中获取元素时的主要流程步骤为,首先对ke...转载 2020-01-16 00:17:37 · 180 阅读 · 0 评论 -
IO模型
BIO:同步阻塞IO NIO:同步非阻塞IO AIO:异步非阻塞IO 先弄清楚同步、异步,阻塞、非阻塞概念。 io操作分为两部分,发起io请求,和io数据读写。阻塞、非阻塞主要是针对线程发起io请求后,是否立即返回来定义的,立即返回称为非阻塞io,否则称为阻塞io。 同步、异步主要针对io数据读写来定义的,读写数据过程中不阻塞线程称为异步io,否则,称为同步io。 BIO:线程发起io请求...转载 2020-01-16 00:07:52 · 158 阅读 · 0 评论 -
class.forname和classloader区别
Java中class是如何加载到JVM中的: 1.class加载到JVM中有三个步骤 装载:(loading)找到class对应的字节码文件。 连接:(linking)将对应的字节码文件读入到JVM中。 初始化:(initializing)对class做相应的初始化动作。 2.Java中两种加载class到JVM中的方式 2.1:Class.forName(“cla...转载 2020-01-15 23:47:24 · 86 阅读 · 0 评论