![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础部分
文章平均质量分 74
warming1112
我曾踏足山巅,也曾进入低谷,两者都让我受益良多
展开
-
java面试题(恶补跳槽必看)
Collection和Map是Java集合框架的两大类,分别用于存储单列和双列数据。List和Set是Collection的两个主要子接口,分别代表有序和无序的集合。Map接口的实现类提供了键值对的存储和管理功能。类提供了操作集合的工具方法,增强了集合的功能。在实际开发中,根据具体需求选择合适的集合类型和实现类,可以有效地提高程序的性能和可维护性。并行和并发都是提高程序处理能力的重要概念。并行侧重于物理上的同时执行,而并发侧重于逻辑上的同时执行。原创 2024-06-07 14:34:03 · 907 阅读 · 0 评论 -
两个对象的HashCode相同,那它们就一定相等吗?
这是因为哈希函数通常将一个大的输入空间映射到一个较小的输出空间(例如,从任意对象映射到一个整数),因此不同的输入可能会映射到相同的输出。如果两个对象在这些属性上具有相同的值,它们可能会产生相同的。类的默认实现,该实现通常返回对象的内存地址的哈希值。方法则用于确定对象在哈希表中的存储位置,它返回一个整数,这个整数通常用于快速定位和访问对象。:即使两个对象在所有属性上都相同,由于哈希函数的局限性,它们也可能产生相同的。:在概率上,即使两个对象是不同的,它们也可能产生相同的。方法用于确定对象是否应该被视为相等。原创 2024-06-01 08:02:22 · 377 阅读 · 0 评论 -
什么是哈希冲突 以及如何避免哈希冲突
哈希冲突(Hash Collision)是指在使用哈希函数时,两个不同的输入值(称为键或关键字)产生了相同的输出值(哈希码或哈希值)。虽然完全避免哈希冲突是不可能的,因为哈希函数的输出范围通常小于可能的键的数量,但可以采取一些策略来减少冲突的发生。例如,可以使用一个好的哈希函数,并在哈希表负载因子较高时进行扩容,同时使用链地址法来处理冲突。使用链地址法来解决哈希冲突,所以当两个键具有相同的哈希值时,它们会被存储在同一个桶的链表中。在上面的代码中,由于我们使用了相同的键,所以。,这将导致哈希冲突,因为。原创 2024-06-01 08:16:16 · 1068 阅读 · 0 评论 -
什么是锁池?什么是等待池?以及sleep,和wait的区别是什么?
继续上面的例子,如果电影院的售票窗口关闭了,正在排队的人(持有锁的线程)会告诉其他人“请等待,我需要休息一下”。其他想要买票的人(其他线程)可以继续排队,但不能买票,直到这个人(持有锁的线程)从休息区回来。假设你正在做家务,你决定休息一下,于是你告诉你的家人“我要休息10分钟”。假设你正在和你的家人玩一个游戏,你告诉他们“我需要等待,直到轮到我”。当一个线程获得了锁(比如进入了一个同步方法或代码块),其他线程就必须等待,直到这个线程释放锁。方法时,它会释放对象的锁,并进入对象的等待池。原创 2024-06-01 08:51:07 · 386 阅读 · 1 评论 -
== 和 equals 的区别是什么?
想象一下,你和你的朋友分别买了一台一模一样的手机,这两台手机的外观、功能、甚至序列号都完全相同。但是,它们是两个独立的实体,分别放在你们各自的口袋里。比较的是手机的“内在属性”(内容)。即使手机的内在属性完全相同,它们在不同的口袋里,都是用来比较两个对象是否相等的,但它们在比较的对象类型和比较的规则上有所不同。在编程中,当你比较对象时,通常需要根据对象的类型和上下文来决定使用。对于对象,如果你想要比较它们的内容,通常需要使用。比较的是手机的“口袋位置”(内存地址),而。的区别,并且用一个诙谐的例子来说明。原创 2024-06-01 11:47:58 · 255 阅读 · 0 评论 -
怎么确保一个集合不能被修改?
使用 Collections.unmodifiableList() 方法:使用 Collections.unmodifiableSet() 或 Collections.unmodifiableMap() 方法:使用 Collections.emptySet(), Collections.emptyMap(), Collections.emptyList() 方法:使用 Collections.singleton() 方法:使用 Collections.nCopies() 方法:自定义不可变集合:原创 2024-06-02 04:47:34 · 463 阅读 · 0 评论