写了5年Java代码,我还是不小心掉进了这些bug

本文列举了Java编程中遇到的三个常见问题,包括代码运行结果的不确定性、异常处理以及方法参数转换的注意事项。作者强调了这类问题在实际开发中的影响,并鼓励读者在遇到类似问题时积极寻找答案和学习解决方案。
摘要由CSDN通过智能技术生成

第一个坑

Set<Integer> set = new HashSet<>();
for (int i = 0; i < 100; i++) {
    set.add(i);
    set.remove(i-1);
}

System.out.println(set.size());

结果是什么?

现在换一个

Set<Short> set = new HashSet<>();
for (short i = 0; i < 100; i++) {
    set.add(i);
    set.remove(i-1);
}
System.out.println(set.size());

这次,它又会输出什么?
如果不能确定的话,手动运行一下。

第二个坑

Object i = 1 == 1 ? new Integer(3) : new Float(1);
System.out.println(i);

它输出什么?如果没有猜对,我希望你可以去自己找答案

第三个坑

这个是在写功能时实际碰到的,看似风平浪静,结果一运行,甩你一个异常。

// id, name
Map<Long, String> map = new HashMap<>();
map.put(1L, "1111");
map.put(2L, "2222");
map.put(3L, "3333");

// 后面需要调用的一个方法入参是long[] 类型,
// map.keySet()可以拿到id的列表,toArra
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值