随笔分类 -  java

Java——http——2、三次握手和四次挥手
摘要:1.1.1 *三次握手和四次挥手* TCP 三次握手就好比两个人在街上隔着50米看见了对方,但是,因为雾霾等原因不能100%确认,所以,要通过招手的方式,相互确定对方是否认识自己。 我们看到这个过程中一共是四个动作,招手–点头微笑–招手–点头微笑。其中连续进行了2个动作,先是点头微笑(回复对方),然 阅读全文

posted @ 2021-09-23 10:26 夜萤火虫和你 阅读(310) 评论(0) 推荐(0)

java——http——1、http的连接过程
摘要:1.1.1 *TCP连接的过程* 输入一个网址之后客户端服务端之间发生了什么……推荐《图解HTTP》 当你在浏览器中输入一个网址,浏览器的处理过程如下: 1、浏览器查找该域名的 IP 地址 2、TCP建立连接 3、浏览器根据解析得到的IP地址向web服务器发送一个 HTTP 请求:三次握手 4、服务 阅读全文

posted @ 2021-09-22 10:47 夜萤火虫和你 阅读(1007) 评论(0) 推荐(0)

Java——ConcurrentHashMap
摘要:1.1 *ConcurrentHashMap* 1.1.1 *ConcurrentHashMap的并发度是什么?* ConcurrentHashMap把实际map划分成若干部分来实现它的可扩展性和线程安全。这种划分是使用并发度获得的,它是 ConcurrentHashMap类构造函数的一个可选参数, 阅读全文

posted @ 2021-09-18 11:01 夜萤火虫和你 阅读(1499) 评论(0) 推荐(0)

Java——HashMap——3、高并发下的HashMap
摘要:1.1.1 *高并发下的HashMap* 1.1.1.1 *rehash操作* 随着操作的不断执行, 哈希表保存的键值对会逐渐地增多或者减少, 为了让哈希表的负载因子(load factor)维持在一个合理的范围之内, 当哈希表保存的键值对数量太多或者太少时, 程序需要对哈希表的大小进行相应的扩展或 阅读全文

posted @ 2021-09-18 10:59 夜萤火虫和你 阅读(203) 评论(0) 推荐(0)

Java——HashMap——2、HashMap的工作原理
摘要:1.1.1 *HashMap的工作原理* HashMap是键值对key-value形式双列集合。它的底层存储原理是哈希表。为了简明描述哈希表(数组+链表),我画了一个图 1)E*代表一个Node节点,每个Node节点就是我们理解的一个key-value的mapping映射。 2)每个Node除了保存 阅读全文

posted @ 2021-09-18 10:57 夜萤火虫和你 阅读(268) 评论(0) 推荐(0)

java——HashMap——1、基础
摘要:1.1.1 *概念* 对于 HashMap 及其子类而言,它们采用 Hash 算法来决定集合中元素的存储位置。当系统开始初始化 HashMap 时,系统会创建一个长度为 capacity 的 Entry 数组(即key-value数组),默认capacity长度是16, 这个数组里可以存储元素的位置 阅读全文

posted @ 2021-09-18 10:55 夜萤火虫和你 阅读(47) 评论(0) 推荐(0)

锁——5、atomic类
摘要:Atomic使用了cas机制,避免了volatile修饰的成员变量不是原子性的,count++问题 **一、示例 ** 1、多线程示例 2、添加synchronized同步锁 这段代码不是线程安全的,所以最终的自增结果可能会小于200 如果加上同步锁,代码如下: 加了同步锁之后,count自增的操作 阅读全文

posted @ 2021-09-17 10:53 夜萤火虫和你 阅读(190) 评论(0) 推荐(0)

锁——4、volitail变量锁
摘要:由此展开,大家可以了解下线程内存和堆内存的差别 一、java内存模型 了解volatile关键字之前,先要了解java的内存模型 Java内存模型简称JMM(Java Memory Model),是Java虚拟机所定义的一种抽象规范,用来屏蔽不同硬件和操作系统的内存访问差异,让java程序在各种平台 阅读全文

posted @ 2021-09-17 10:40 夜萤火虫和你 阅读(120) 评论(0) 推荐(0)

锁——3、Reentrantlock
摘要:一、ReenTrantLock是可重入锁 可重入锁的特点 可重入锁又名递归锁,是指在同一个线程在外层方法获取锁的时候,在进入内层方法会自动获取锁。 谁等的时间最长,谁就先获取锁 ReenTrantLock的特点: 1.ReenTrantLock可以指定是公平锁还是非公平锁。而synchronized 阅读全文

posted @ 2021-09-16 10:20 夜萤火虫和你 阅读(218) 评论(0) 推荐(0)

锁——2、synchronized锁
摘要:一、synchronized为什么性能低 1、Java1.6之前效率低:线程阻塞和唤醒的代价较高,用户态到内核态的切换,花费时间 2、JDK 1.6 之后,synchronized 做了性能优化,性能已经与其他显式锁基本没有差距了 二、synchronized的优化 优化即随着锁的竞争进行升级: 从 阅读全文

posted @ 2021-09-16 10:18 夜萤火虫和你 阅读(216) 评论(0) 推荐(0)

锁——1、基础
摘要:1、锁的分类: 轻量级锁中,默认自旋10次 死锁: 1、什么是死锁? 两个或多个线程因相互等待而被永远阻塞(挂起)的情况。 2、死锁的原因 导致死锁的原因有多种。线程分析器可检测到因不正确使用互斥锁而导致的死锁。这种类型的死锁在多线程应用程序中比较常见。 3、以下条件成立时,具有两个或多个线程的进程 阅读全文

posted @ 2021-09-16 10:16 夜萤火虫和你 阅读(48) 评论(0) 推荐(0)

导航