自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 收藏
  • 关注

原创 反射为什么会影响性能?

反射(Reflection)之所以会影响性能,主要是因为它将很多在编译期(Compile-time)就能完成的工作,转移到了运行时(Run-time)才动态地去做。:你清楚地知道目的地“人民公园”的地址是“人民路123号”,并且已经记住了地图。你可以直接、毫不犹豫地走过去。:你只知道有个叫“人民公园”的地方,但你不知道它在哪。你需要在路上打开手机地图,输入名字进行搜索,查看路线,然后才能跟着导航走。显然,第二种方式(反射)花费的时间要长得多。

2025-09-03 14:40:27 734

原创 为什么hashmap底层数据结构在jdk1.8是数组+链表+红黑树,为什么当链表长度超过8并且数组长度超过64会转换为红黑树.为什么链表长度为6时会退化为链表,为什么不是长度为8.

设计选择目的背后的哲学数组+链表+红黑树应对不同级别的哈希冲突,在绝大多数场景保持高效,在极端场景防止灾难。分层处理,权衡时间和空间。树化阈值=8基于泊松分布,这个阈值在正常使用时几乎不会被触发,只在极端情况下启用“保险”。空间换时间,但只在万不得已时。数组长度>64才树化确保扩容优先于树化,先尝试最根本的解决方案。治本优于治标。退化阈值=6(与8相差2)提供缓冲区间,防止在临界值附近频繁增删导致结构摇摆,提升稳定性。保持稳定,避免不必要的性能开销。

2025-09-01 10:53:44 760

原创 数组为什么可以知道长度而链表要遍历才知道

特性数组 (Array)链表 (Linked List) (本质)内存布局连续内存块非连续,节点分散长度确定创建时即固定,作为元数据存储动态变化,无统一存储获取长度O(1),直接读取元数据O(n),必须从头遍历计数设计目的快速随机访问,固定大小集合高效插入/删除,动态大小集合核心答案在于两者根本的内存组织方式不同,这导致了它们记录和获取长度信息的方式产生了本质差异。

2025-09-01 10:09:37 774

原创 hashcode跟hash值的区别

Hash值是一个广泛的计算机科学概念,指数据通过哈希函数生成的固定长度的指纹。HashCode通常特指在像Java这样的编程语言中,对象为了配合哈希表使用而生成的一个int类型的哈希值。它是Hash值的一种具体应用形式。所以,所有的HashCode都是Hash值,但并非所有的Hash值都叫HashCode。HashCode是Hash值大家族中一个为特定目的(哈希表效率)而生的成员。

2025-08-27 15:39:46 673

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除