java面试
本文最后更新于41 天前,其中的信息可能已经过时,如有错误请发送邮件到1169063119@qq.com

hashcode、equals以及==的区别

hashcode用于散列存储结构中确定对象的存储位置。用于快速比较对象是否不同,因为如果他们的哈希码不同,那么他们肯定不相等

equals用于比较两个对象的内容是否相等(逻辑上的相等),通常需要重写自定义比较逻辑

==用于比较两个引用是否指向同一个对象(即内存地址)。用于基本数据类型,比较他们的值

Arraylist,Vector和Linkdlist 的区别

ArrayList基于动态数组实现,元素在内存中连续存储。查询快,插入和删除操作慢,尤其在中间插入或者删除时,因为需要移动后续元素。线程不安全

LinkList基于双向链表实现,元素通过节点链接,内存中不需要连续存储。查询慢,插入和删除操作快,尤其是在头尾插入和删除时。线程不安全

Vector基于动态数组实现,元素在内存中连续存储。查询快,插入和删除操作慢,尤其在中间插入或者删除时,因为需要移动后续元素。线程安全。

Set里的元素是不能重复的,那么用什么方法来区分重复

与否呢? 是用==还是equals()? 它们有何区别?

Set判断重复不是用==也不是单纯用equals(),而是先看hashCode()的返回值,再调用equals()确认内容

是否一样。

== 比较的是地址,是不是同一个对象;equals() 默认没重写的话跟==一样,但很多类比如String、Integer都重写了它,则按照重写的equals方法的规则;而hashCode()决定了这个对象在哈希结构里的存储位置。

什么是java序列化

序列化就是把内存里的对象状态转成字节流,这样就能:

  • 存到文件里(持久化)
  • 通过网络传给其他系统(远程调用)
  • 放到Redis里缓存(比如用户会话

文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇