0821 B站Java笔试分享
和米哈游一样,分为三种题型:20道单选(40分)、5道多选(15分)、3道算法(45分),但是只有1小时,稍微有点紧张
三道算法都不算难,前两道感觉leetcode简单水平吧,最后一道稍微难点,可以参考这篇,作者已经说的很好了B站25秋招商业化java开发8.21笔试
选择题里碰到了几道有意思的题,和大家分享一下:
题目1:求以下代码的输出内容
public static void main(String[] args) { String s1 = new String("a") + new String("b"); String s2 = "ab"; String s3 = s1.intern(); System.out.println(s1 == s2); System.out.println(s1 == s3); }
这题估计80%的同学都做不对吧(我反正做错了,intern()方法属实是知识盲区)
在本地IDEA跑出来的答案是: false false,问了下chatGPT它都没能做对
参考了一些文章,还是美团技术团队讲得最好,可以看看深入解析String#intern - 美团技术团队
题目2:一个无向连接图有13条边,有1个度为4的点、3个度为3的点、1个度为2的点,其余点的度均为1,求该图共有多少个点,总共的度是多少?
无向图一直是我的薄弱点,这道题花了我好长时间,直接导致第三道算法题有思路但没写完
最重要的知识点在于:所有顶点的度数之和等于图中边的数量的两倍。这是因为每条边都会贡献两个度数
这道题chatGPT的答案倒是挺准确的,分享给同样没掌握技巧的朋友: