字节广告业务后端一面

前两天面的,忘了写了
这次面试给我道心面崩了,超多问题不会,最后手撕请求换了两次题目
1. 先是简单自我介绍
2. 聊项目。问了一些业务场景,比如服务崩了,其中还没落库的数据怎么办等等。
3. 问了一些八股,比如 volatile 关键字,Spring 依赖注入,为什么是四次挥手等
4. 最后手撕第一道,多线程打印 ABC,没写过这种的,请求换题
5. 第二道,swap(Integer a, Integer b) 实现这个方法,以前写交换都是用数组来实现,不会写。回头查了查面试官可能是想让用反射来写?
6. 最后给了一道算法题,一道力扣 hard
7. 反问,技术栈?Java#牛客创作赏金赛##牛客AI配图神器#
全部评论
这个交换还挺难啊,要是在Integer缓存范围内,直接修改反射修改,会把缓存池中的Integer值都改了,要new Integer对象来改。参考代码: public static void swap(Integer a,Integer b) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException{ Field declaredField = Integer.class.getDeclaredField("value"); declaredField.setAccessible(true); /** * 错误写法 * int bVal=b.intValue(); * System.out.println("bVal:"+bTemp); // 2 * System.out.println("bVal->Integer->int:"+Integer.valueOf(bTemp).intValue()); // 1 * declaredField.set(a, bTemp); // bTemp装箱,取到缓存池中值为1的Integer(2)对象。a:1 */ Integer bTemp=new Integer(b.intValue()); declaredField.set(b, a.intValue()); System.out.println("bVal:"+bTemp); System.out.println("bVal->Integer->int:"+Integer.valueOf(bTemp).intValue()); declaredField.set(a, bTemp); }
1 回复 分享
发布于 04-27 15:30 北京
佬,力扣是哪道题呀,还有这个swap函数具体是啥意思呀,交换不就是定一个tmp变量吗
1 回复 分享
发布于 03-18 11:15 北京
AtomicReference都不能用吗
点赞 回复 分享
发布于 03-18 13:44 上海

相关推荐

一只末影酱:分布式锁这个可以用zk,etcd 不用组件的话,直接用数据库唯一索引 算法出KMP的话,能不能让面试官换啊
字节跳动一面918人在聊 查看11道真题和解析
点赞 评论 收藏
分享
评论
3
18
分享

创作者周榜

更多
牛客网
牛客企业服务