狼哥 还有堆外内存溢出
JVM 发生 OOM 的 8 种原因、及解决办法撸Java的同学,多多少少都会碰到内存溢出(OOM)的场景,但是造成OOM原因却不止一个。 堆内存不足 这种场景最为常见,报错信息: 原因 1、代码中可能存在大对象分配2、可...
狼哥 还有堆外内存溢出
JVM 发生 OOM 的 8 种原因、及解决办法撸Java的同学,多多少少都会碰到内存溢出(OOM)的场景,但是造成OOM原因却不止一个。 堆内存不足 这种场景最为常见,报错信息: 原因 1、代码中可能存在大对象分配2、可...
****你需要知道的****之前我们介绍了排他锁,其实innodb下的记录锁(也叫行锁),间隙锁,next-key锁统统属于排他锁。 ****行锁****记录锁其实很好理解,...
共享锁这块讲的并不清晰,并没有说明在哪个地方可以支持多线程访问
java并发编程之AbstractQueuedSynchronizer引言 AbstractQueuedSynchronizer,队列同步器,简称AQS,它是java并发用来构建锁或者其他同步组件的基础框架。 一般使用AQS的主要方式是继承,子...
1.hashCode介绍 hashCode() 的作用是获取哈希码,也称为散列码;它实际上是返回一个int整数。这个散列码的作用是确定该对象在散列表中的索引位置,如果有看我的...
原创文章&经验总结&从校招到A厂一路阳光一路沧桑 详情请戳www.codercc.com 1.Condition简介 任何一个java对象都天然继承于Object类,在线程间...
String s1 = new StringBuilder().append("StringTest").toString();
or
String s1 = new StringBuilder("StringTest").toString();
System.out.println(s1.intern() == s1) 输出的效果是一样的,都是false,因为在编译期常量池就已经存在了"StringTest",String s1 = new StringBuilder().append("String").append("Test").toString();
System.out.println(s1.intern() == s1)这个在编译期是String 和 Test存在堆中,s1.intern()会在常量池加载"StringTest"并返回s1 的引用,所以比较结果为true
浅谈Java String.intern()简书 占小狼转载请注明原创出处,谢谢! String.intern()原理 String.intern()是一个Native方法,底层调用C++的 StringTable::...
就是buddy算法呀
深入浅出Netty内存管理 PoolChunk多年之前,从C内存的手动管理上升到java的自动GC,是历史的巨大进步。然而多年之后,netty的内存实现又曲线的回到了手动管理模式,正印证了马克思哲学观:社会总是在螺旋式前...
netty中事件的传播主要包含inBound事件和outBound事件 首先我们看下ChannelInboundHandler接口,主要包含以下方法,基本都是用和连接事件相关...