首页
首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
努力的Javaer
掘友等级
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
1
文章 1
沸点 0
赞
1
返回
|
搜索文章
最新
热门
为什么TCP建立连接需要三次握手?
1.三次握手才可以阻止重复历史连接的初始化 2.三次握手才可以同步双方的初始序列号 3.三次握手才可以避免资源浪费:如果客户端发送的SYN报文在网络中阻塞了,重复发送多次SYN报文,那么服务端再收到请
TCP三次握手
最开始客户端处于close状态,服务端处于listen状态。 第一次握手:客户端初始化序号,用序列号填充SYN报文的序列号字段,向服务端发送SYN包,然后处于SYN_SENT状态。服务端接受到报文后,
MVCC的实现原理
MVCC的意思是多版本并发控制,它维护一个数据的多个版本,使得读写操作没有冲突。它的底层实现主要分成了三个部分,第一个部分是隐藏字段,第二个部分是undolog日志,第三部分是readView读视图
为什么重写了equals方法,还要重写hashcode方法
在 Java 中,HashMap、HashSet 等基于哈希的数据结构在存储对象时会先调用对象的 hashCode() 方法来决定存放的桶位置,然后再通过 equals() 方法确认对象是否相同。 如
讲一下HashMap的扩容机制
在添加元素或初始化的时候需要调用resize() 方法进行扩容,第一次添加数据初始化数组长度为16,以后每次扩容都是达到了扩容阈值,扩容阈值 = 数组长度 * 0.75 每次扩容的时候,都是扩容之前容
HashMap的put方法的具体流程
1.判断table数组是否为空,如果是空的,那就初始化长度为16的数组 2.如果不是空的,那就根据key计算hash值得到数组索引 3.如果索引对应的哈希桶等于null,那么直接新建节点添加 4.如果
谈谈你对ThreadLocal的理解
ThreadLocal是Java提供的一种线程本地变量机制,它可以为每一个线程提供独立的变量副本,使得变量在每个线程中是隔离的,互不干扰。 ThreadLocal的主要功能有两个,第一个是实现资源对象
jdk1.7 和 jdk1.8的ConcurrentHashMap有什么区别
1.数据结构: JDK1.7底层采用分段数组+链表实现 JDK1.8底层采用数组+链表或者红黑树实现 2.锁机制: JDK1.7 的 ConcurrentHashMap 是由一个 Segment 数组
线程池工作流程
1.任务提交时,先判断核心线程是否已满,没有满则直接添加到工作线程执行 2.如果核心线程满了,则判断工作队列是否已满,如果没有满,则当前任务存入工作队列 3.如果工作队列也满了,则判断线程是否小于最大
怎么进行死锁排查
我们只需要通过jdk自动的工具就能搞定 我们可以先通过jps来查看当前java程序运行的进程id,然后通过jstack来查看这个进程id,就能展示出来死锁的问题,并且,可以定位代码的具体行号范围,我们
下一页
个人成就
文章被点赞
1
文章被阅读
421
掘力值
131
关注了
1
关注者
0
收藏集
0
关注标签
0
加入于
2024-11-26