字节你好狠的心💔
投票
字节一面,前面的八股和项目基本都答完了,毕竟前面也面了一些了,可以侃侃而谈了,但是手撕给了我迎头一棒,面完后,我搜了下牛客和小红书,貌似没有原题,我就分享一下吧。题目含义就是integer a=12,integer b=13,然后他的输出写好了,现在需要实现一个swap方法,使得a和b数值交换,然后swap返回值是void,入参是两个integer类型。也怪我没有去看过源码,里面的数值value是用final修饰的,integer是个不可变对象,需要用反射去修改了。我只记得八股里提到过有一个缓存,-128到127的范围的对象缓存。害好可惜,本身下游211本就很难约大厂面了。算法也暑假突击过了,常见算法没有什么问题,最后却死在了反射上。(也是自己笨吧,应该申请换题的,脑子瓦特了)。之后反问的时候,说反射不是一开始学Java的时候就应该了解的吗?说明你基础不扎实(有没有一种可能,因为我没看过integer的源码,所以不知道是不可变值,所以没想到用反射。。。)。总之毫无意外,隔了两天感谢信就发来了,面评应该也很脏,半夜睡不着,想着来牛客发个帖,希望后续秋招顺利吧。#字节跳动# #秋招#
全部评论
考点:Integer 用final修饰 + 缓存机制
代码:
public static void swap(Integer a, Integer b) throws NoSuchFieldException, IllegalAccessException {
Field valueField = Integer.class.getDeclaredField("value");
valueField.setAccessible(true);
// 创建临时存储的基本类型值
int tempA = a;
int tempB = b;
// 直接设置基本类型值
valueField.setInt(a, tempB);
valueField.setInt(b, tempA);
}
public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException {
Integer a = 1;
Integer b = 2;
swap(a, b);
System.out.println(a + " " + b);
}
感谢分享,老哥秋招加油
java8能用反射,java8以上好像会报错,之前试过String暴力反射,java17不让反射获取
相关推荐
10-22 20:13
中南大学 Java Yki_:
看哭了,恋爱那一段你女朋友说你不够关心她,可你毕竟也愿意遇到矛盾写几千字来和她慢慢分析;说不愿意给她花钱,我感觉可能只是消费观不一样;如果她想留在长沙,也应该提前跟你说开。不过她也许会心疼你放弃大厂offer转向数字马力?我也因为同样的原因有过一段幸福而充满遗憾的感情,不过跟爱情相比确实前途更重要一点。至于offer的选择,换我我也会这么选。把这些旧事记录下来以后,接下来就好好向前看吧,加油兄弟
点赞 评论 收藏
分享
查看11道真题和解析