首页
首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
努力的Javaer
掘友等级
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
1
文章 1
沸点 0
赞
1
返回
|
搜索文章
努力的Javaer
2天前
关注
Java三大特性
1.封装 封装是指将对象的状态(属性)和行为(方法)捆绑在一起,并对外部隐藏对象的内部实现细节,仅提供公共的访问方式。通过封装,可以保护数据不被外部随意访问和修改,提高代码...
0
评论
分享
努力的Javaer
2天前
关注
详细说说你对G1垃圾回收器的理解
G1垃圾回收器:G1垃圾回收器是作用于新生代和老年代的垃圾回收器,垃圾回收算法采用复制算法。 G1垃圾回收器将堆内存分为若干个区域,每个区域都可以充当Eden区,survi...
1
评论
分享
努力的Javaer
24天前
关注
银行家算法
银行家算法(Banker's Algorithm)是用来避免死锁的一种算法,核心思路是: 查看当前系统的可用资源数; 遍历所有进程,看是否存在一个进程,它的**最大需求量-...
0
评论
分享
努力的Javaer
24天前
关注
什么是零拷贝
零拷贝(Zero-Copy) 是一种技术,目的是在进行数据传输时,减少 CPU 参与的内存拷贝次数,提高性能。 传统的数据传输(比如发送文件到网络)需要经过多次拷贝: 磁盘...
0
评论
分享
努力的Javaer
24天前
关注
TCP的流量控制
流量控制是为了防止发送方发送太快,接收方来不及处理,导致丢包。 TCP使用的是滑动窗口机制来实现流量控制: 每个TCP连接,接收方会在ACK里告诉发送方一个窗口大小。 窗口...
0
评论
分享
努力的Javaer
24天前
关注
TCP的拥塞控制介绍一下?
TCP 拥塞控制主要包括四个阶段: 慢开始(Slow Start) 初始时,TCP连接的拥塞窗口(cwnd)很小,比如1个MSS(最大报文段长度)。 每收到一个 ACK,c...
0
评论
分享
努力的Javaer
24天前
关注
TCP和UDP区别是什么
1.连接:TCP是面向连接的,传输数据前要先建立连接;UDP是不需要建立连接,即刻传输数据 2.服务对象:TCP是一对一的两点服务,即一条连接只有两个断点。UDP支持一对一...
0
评论
分享
努力的Javaer
24天前
关注
服务端出现大量TIME_WAIT的原因有哪些
1.HTTP没有使用长连接 2.HTTP长连接超时 3.HTTP长连接达到请求上限。Web服务端通常有个参数,来定义一条HTTP长连接上最大能处理的请求数,当超过最大限制时...
0
评论
分享
努力的Javaer
24天前
关注
为什么第四次挥手后要等待2MSL
MSL(Maximum Segment Lifetime)最大报文生存时间,是指一个 TCP 报文在网络上最多能存活的时间(超时了就丢弃)。 为什么要等待 2MSL?原因主...
0
评论
分享
努力的Javaer
24天前
关注
TCP四次挥手过程
第一次挥手:客户端主动调用关闭连接函数,然后发送FIN报文,然后处于FIN_WAIT_1状态。 第二次挥手:服务端收到FIN报文,然后发送ACK报文,然后处于CLOSE_W...
0
评论
分享
努力的Javaer
24天前
关注
为什么TCP建立连接需要三次握手?
1.三次握手才可以阻止重复历史连接的初始化 2.三次握手才可以同步双方的初始序列号 3.三次握手才可以避免资源浪费:如果客户端发送的SYN报文在网络中阻塞了,重复发送多次S...
0
评论
分享
努力的Javaer
24天前
关注
TCP三次握手
最开始客户端处于close状态,服务端处于listen状态。 第一次握手:客户端初始化序号,用序列号填充SYN报文的序列号字段,向服务端发送SYN包,然后处于SYN_SEN...
0
评论
分享
努力的Javaer
26天前
关注
MVCC的实现原理
MVCC的意思是多版本并发控制,它维护一个数据的多个版本,使得读写操作没有冲突。它的底层实现主要分成了三个部分,第一个部分是隐藏字段,第二个部分是undolog日志,第三部...
0
评论
分享
努力的Javaer
27天前
关注
为什么重写了equals方法,还要重写hashcode方法
在 Java 中,HashMap、HashSet 等基于哈希的数据结构在存储对象时会先调用对象的 hashCode() 方法来决定存放的桶位置,然后再通过 equals()...
0
评论
分享
努力的Javaer
27天前
关注
讲一下HashMap的扩容机制
在添加元素或初始化的时候需要调用resize() 方法进行扩容,第一次添加数据初始化数组长度为16,以后每次扩容都是达到了扩容阈值,扩容阈值 = 数组长度 * 0.75 每...
0
评论
分享
努力的Javaer
27天前
关注
HashMap的put方法的具体流程
1.判断table数组是否为空,如果是空的,那就初始化长度为16的数组 2.如果不是空的,那就根据key计算hash值得到数组索引 3.如果索引对应的哈希桶等于null,那...
0
评论
分享
努力的Javaer
27天前
关注
谈谈你对ThreadLocal的理解
ThreadLocal是Java提供的一种线程本地变量机制,它可以为每一个线程提供独立的变量副本,使得变量在每个线程中是隔离的,互不干扰。 ThreadLocal的主要功能...
0
评论
分享
努力的Javaer
28天前
关注
jdk1.7 和 jdk1.8的ConcurrentHashMap有什么区别
1.数据结构: JDK1.7底层采用分段数组+链表实现 JDK1.8底层采用数组+链表或者红黑树实现 2.锁机制: JDK1.7 的 ConcurrentHashMap 是...
0
评论
分享
努力的Javaer
28天前
关注
线程池工作流程
1.任务提交时,先判断核心线程是否已满,没有满则直接添加到工作线程执行 2.如果核心线程满了,则判断工作队列是否已满,如果没有满,则当前任务存入工作队列 3.如果工作队列也...
0
评论
分享
努力的Javaer
28天前
关注
怎么进行死锁排查
我们只需要通过jdk自动的工具就能搞定 我们可以先通过jps来查看当前java程序运行的进程id,然后通过jstack来查看这个进程id,就能展示出来死锁的问题,并且,可以...
0
评论
分享
下一页
个人成就
文章被点赞
1
文章被阅读
423
掘力值
131
关注了
1
关注者
0
收藏集
0
关注标签
0
加入于
2024-11-26