![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 71
java学习记录
Dell.Chen
这个作者很懒,什么都没留下…
展开
-
JDK源码06
ThreadLocal的使用使用threadLocal提供的set方法将值保存,同时使用get来获取值,在每次使用完ThreadLocal使用remove方法对ThreadLocal进行清理用于防止内存泄露数据结构及源码在ThreadLocal中有一个自定义的hash map:ThreadLocalMap,其中使用的是数组来保存值其中数组的类型是继承weakreference的Entry类型源码中关于继承weakreference中有这样的说明To help deal with very原创 2021-09-09 19:53:59 · 109 阅读 · 0 评论 -
JDK源码05
ReetrantLock重入锁,指获取锁的线程可以再次获取锁,除此之外,ReetrantLock在实现上还添加了公平锁和非公平锁,(公平锁:每个竞争锁的线程都有机会能够获取到锁,等待越久的线程会优先获取锁;非公平锁:每个线程竞争锁,可能有的线程会重复获取锁,有的会处于饥饿状态)实现ReetrantLock中的内部类继承AQS抽象类实现锁的语义,其中nonfairTryAcquire(int)是非公平获取锁的实现,重进入从源码中可以看出来,在实现重复进入上,ReetrantLock中添加的代码原创 2021-08-10 13:07:01 · 118 阅读 · 0 评论 -
JDK源码04
AQS中等待队列说明AQS中除了提供锁实现的同步队列之外,还有实现线程间的等待/通知机制的机制,而后者是由AQS中内部提供的ConditionObject类实现,与同步队列相同的是,等待队列也是同同步队列一样的FIFO队列,在其实现通过AQS中提供Node类来完成ConditionObjectaddConditionObjectUnlinkCancelledWaitersUnlinks cancelled waiter nodes from condition queue. Called原创 2021-08-10 09:53:56 · 94 阅读 · 0 评论 -
JDK源码03
队列同步器(AQS)jdk版本:java11AQS实现是通过一个int成员变量来表示同步状态,通过内置的FIFO队列来完成线程的等待工作其实际上是一个双向链表,有tail,head,state同步器中主要可重写的方法方法说明protected boolean tryAcquire(int arg)独占式的获取同步状态protected boolean tryRelease(int arg)独占式释放同步状态protected int tryAcquireShar原创 2021-08-01 15:03:31 · 190 阅读 · 1 评论 -
JDK源码01
ArrayListJDK版本:java11fail-fast,快速失败机制,当对ArrayList进行迭代的时候,如果多个线程进行操作的时候,就会抛出ConcurrentModificationException当前的操作次数与数组的操作次数进行比较,来判断是否有其他线程对当前对象进行修改clear()和removeAll()操作次数加1,设置size=0,将数组中保存的元素置空Removes from this list all of its elements that are contai原创 2021-07-24 16:21:25 · 122 阅读 · 0 评论 -
Java筑基01
Java的值传递实参主调函数调用一个有参函数时,函数名括号后面的参数称为实参形参在定义函数的时候使用的参数求值策略非严格求值(即有参的函数(方法)只有调用参数的时候才对参数读值)严格求值(以下三类)值传递 将实际参数复制一份给形参,形参的改变不会对实参照成影响引用传递将实际参数的地址传递给形参,形参的改变或者修改都会对实参照成影响共享对象传递将实际参数的地址复制一份给形参,形参的修改对调用用者而言是可见的所以Java中的值传递可以看作是共享对原创 2021-04-03 14:12:54 · 69 阅读 · 0 评论 -
Rdis问题记录
一、MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error.问题描述:Redis被配置为保存数据库快照,但它目前不能持久化到硬盘。用来修改集合数据的命令不能用。请原创 2021-03-21 21:22:23 · 124 阅读 · 1 评论 -
堆及PriorityQueue源码解读
Leecode题目指向tag:堆215,264,面试题17.09,剑指offer40堆简单概念小根堆:子节点总是大于根节点大根堆:子节点总是小于根节点应用场景:堆排序,PriorityQueue主要操作(以大根堆为例)“上浮”:void shiftup(){ while(k>1 && arr[parent(k)]<arr[k]){ //父节点的值小于子节点的值,进行交换 swap(arr,paren原创 2021-03-21 21:12:43 · 61 阅读 · 0 评论 -
java网络编程(简单入门)
java网络编程一、网络通信协议网络通信协议有很多种,目前应用最广泛的是TCP/IP协议(Transmission Control Protocal/Internet Protoal传输控制协议/英特网互联协议)在进行数据传输时,要求发送的数据与收到的数据完全一样,这时,就需要在原有的数据上添加很多信息,以保证数据在传输过程中数据格式完全一致。TCP/IP协议的层次结构比较简单,共分为四...原创 2020-02-04 17:16:13 · 205 阅读 · 1 评论