![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
Phenix.Wall.E
这个作者很懒,什么都没留下…
展开
-
JAVA各种GC算法
相关文章Java运行时数据区域Java对象的创建和内存布局最全JVM的参数总结首先java并不是首先使用垃圾回收技术的语言,首次使用的是Lisp语言。目录相关文章要想回收对象,首先需要判断对象是否可以被回收在java语言中,有哪些对象可以作为GC Roots呢?引用对象的类型方法区的回收问题垃圾收集算法标记-清除(Mark-Sweep)算法复制算法标记-整理(Mark-Compact...原创 2020-01-11 22:40:28 · 120 阅读 · 0 评论 -
Java冷知识(三)编译器的花招之synthetic修饰符
首先我们应该达成一个共识:很多的Java语法糖都是编译器赋予的,而JVM是一个与Java语言解耦的平台。有了这个共识,再来看今天的主角:synthetic修饰符。我们在阅读JDK反射包源码时,会遇到isSynthetic()方法,其实现之一是Modifier.isSynthetic(getModifiers()),其他实现方式的原理一样。Modifier是专门定义修饰符的类,其中static f...原创 2019-12-12 16:31:33 · 1331 阅读 · 0 评论 -
Java冷知识(二)
工厂方法比new方式相比有哪些好处?工厂方法可以为实例化方法重新命名,但是new调用的构造器只能与类名相同工厂方法可以改变返回对象的类型,比如可以返回子类。构造器无法改变所构造的对象类型。我们可以把对象的引用传递给Java方法,那么怎么证明Java中方法参数的传递方式是按值调用,而不是按引用传递呢?首先如果参数是基本数据类型,一个java方法是不能修改其值的。也就是说,不管方法里面如...原创 2019-11-27 22:26:14 · 108 阅读 · 0 评论 -
Java冷知识(一)
1.每个Java程序都必须有main方法吗?比如web容器应用答案:是。即使是web容器也有main方法,比如tomcat的Bootstrap类的main方法。2.java有无符号(Unsigned)类型吗?答案:没有。3.NaN相等问题double d1 = Double.NaN;double d3 = d1;System.out.println("d3 == d1 : " + (...原创 2019-11-24 23:05:55 · 297 阅读 · 0 评论 -
ByteBuffer的三种实现与进程间通信
ByteBuffer的三种实现为:HeapByteBuffer 堆内存DirectByteBuffer 堆外/直接内存MappedByteBuffer 堆外/文件映射一、ByteBufferByteBuffer是java nio中的一种数据结构。主要用来保存从Socket中读写字节流,可以循环使用,有效降低GC压力。内部有一个固定长度的byte[]。用三个数字来控制读写:capac...原创 2020-02-21 22:06:49 · 465 阅读 · 0 评论