26年2月联想弘扬科技 Java开发工程师 一面

1. String类被final修饰对字符串常量池的安全性有何保障?
思路
从不可继承、不可变、安全共享这三点,说明final如何保证字符串常量池不被篡改、安全复用。
回答示例
面试官您好,String被final修饰,首先它不能被继承,就没办法通过子类去破坏它的行为。
然后它内部存储字符的数组又是private final,一旦创建就不能修改,保证字符串完全不可变。
不可变之后,常量池里的字符串就可以被任意地方安全共享,不会被意外篡改,哈希值也稳定,线程也安全。
所以final本质上是保证了字符串不可变,从而让常量池能够安全、高效、无风险地工作。

 

2. ArrayList的elementData数组为何用transient修饰?序列化时如何处理?
思路
讲elementData有冗余空间,默认序列化浪费,所以用transient关掉,再讲自定义序列化只存有效数据。
回答示例
因为ArrayList底层的elementData数组是带容量的,里面经常有很多null元素。
如果直接序列化,会把整个数组包括空位置都序列化出去,非常浪费空间和性能。
所以用transient修饰,让它不参与默认序列化。
然后ArrayList自己重写了writeObject和readObject方法,序列化的时候只写出实际有效的元素,反序列化的时候再把元素恢复回来,这样效率最高、体积最小。

 

3. HashMap中扰动函数(hash ^ (hash >>> 16))的设计目的?
思路
说明数组长度不大时只有低几位参与计算索引,扰动函数让高16位也参与,让分布更均匀,减少冲突。
回答示例
HashMa

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

本专栏在精不在多,内容分为八股文、大厂真实面经,面试通过后将offer和面试题私发给我,可退还专栏的收益部分费用。欢迎大家共建专栏

全部评论
感觉总结的不错呢
点赞 回复 分享
发布于 03-26 23:06 北京
感觉总结的很好呢
点赞 回复 分享
发布于 03-25 23:04 北京

相关推荐

3.4  杭州杭州德睿轩科技  bi数据分析记录:全程不到十分钟左右,技术官只问了两个问题,一是爬取过程中遇到什么问题,怎么解决的?二是ai大模型运用情况。我说的我只会coze工作流搭建,然后说我是初级阶段,不符合杭州这边大模型的招聘需求。全程大概和HR聊的,HR人还是好的杭州柔智造供应链  ai工程师记录:全程和BOSS聊。无技术问题,公司没有一个研发,老板想弄大模型,去面试时和旺店铺的ERP销售再谈ERP价格3.5   杭州森帛电商  rpa工程师记录:无技术问题,三个面试官(无技术面试官)只了解实习做得项目和HR常问的问题。有一道rpa的上机操作题。较为简单。整体面试感觉还好,可能我经验比较不够,是否录取很悬。中电金信  爬虫工程师记录:技术面淘宝/京东爬取过程简单介绍中间遇到的问题?怎么解决的?去除怎么处理?scrapy是否了解?流程大概介绍下Redis和MySQL有什么区别?如果用request去请求淘宝接口,有哪些问题需要注意?了解哪些加密算法?是否了解APP端爬取?访问浏览器请求的过程大概介绍下个人感觉Django和flask框架有什么区别?(还有一些,录音听不清楚了)优趣汇  rpa工程师记录:无技术问题,三个面试官(无技术面试官)hr常问问题,rpa和Python的使用感受等。全程大概20分钟。大概率不会录取我3.9  义乌悠着点家居用品  ai应用工程师义乌嗷嗷进出口  数字化效率工程师记录:两家面试合起来不到20分钟。无技术问题两个面试官或三人。只聊了rpa,ai使用情况,电商流程的理解,hr常问问题。当天给了面试情况。挂了已再破防边缘。明天长沙两个面试,然后只接受线上面了。线下面感受:累,连环赶车。特别是明显被当NPC刷时,感觉是个小丑(一面电话面时说合适,线下又说经验不匹配)
查看12道真题和解析
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务