- 博客(103)
- 收藏
- 关注
原创 Java基础:String、StringBuffer、StringBuilder介绍
String、StringBuffer、StringBuilder用法以及细节介绍
2025-01-02 11:13:56
1073
原创 JVM的新生代除了Eden区,为什么还设置两个Survivor区?
这样继续循环下去,下一次Eden满了的时候,问题来了,此时进行Minor GC,Eden和Survivor各有一些存活对象,如果此时把Eden区的存活对象硬放到Survivor区,很明显这两部分对象所占有的内存是不连续的,也就导致了。比方说分成三个、四个、五个?Survivor的存在意义,就是减少被送到老年代的对象,进而减少Full GC的发生,Survivor的预筛选保证,只有经历16次Minor GC还能在新生代中存活的对象,才会被送到老年代。如果对象的复制次数达到16次,该对象就会被送到老年代中。
2024-12-30 10:46:43
750
原创 Java基础:内部类详解
1、首先,把内部类作为外部类的一个特殊的成员来看待,因此它有类成员的封闭等级:private,protected,default,public,它有类成员的修饰符: static,final,abstract;2、非静态内部类nested inner class:隐含有一个外部类的指针this,因此,它可以访问外部类的一切资源,包括private。外部类访问内部类的成员,先要取得内部类的对象,并且取决于内部类成员的封装等级。非静态内部类不能包含任何static成员。
2024-12-26 12:58:43
809
原创 HashMap和Hashtable的区别
当get()方法返回null 值时,既可以表示HashMap 中没有该键,也可以表示该键所对应的值为null。(5)HashMap允许null值和null键(只允许一个),HashMap以null作为key时,总是存储在table数组的第一个节点上。(2)计算hash值的方式:HashMap中元素的hash值是重新计算过的,以便获得更好的散列值,Hashtable直接使用Object的hashcode。扩容时,HashMap的容量变成原来的2倍,Hashtable的容量变为2倍+1。
2024-12-21 20:11:07
321
原创 ArrayList与LinkedList、Vector的区别
(3)性能:ArrayList支持随机访问,查询快,增删慢,查询的时间复杂度为O(1),插入和删除的时间复杂度为O(n),因为对插入和删除位置后面的元素进行移动位置,以保证内存的连续性。(4)初始容量和扩容:ArrayList和Vector的默认初始容量都是10,但是扩容时,ArrayList容量会增长为原来的1.5倍,而Vector的容量会增长为原来的2倍。不支持随机访问,查询慢,增删快,查询的时间复杂度为O(n),插入和删除的时间复杂度为O(1)
2024-12-21 20:10:13
601
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人