Java的一些冷门知识点

1、注释中的代码也能执行
public static void main(String[] args) {
    // 下面这行代码会执行,因为 \\u000d 是一个换行符

    // \u000d System.out.println("hello world");
}
2、除数为0也可以不报错

下面的代码会在控制台打印Infinity

 System.out.println(1.0 / 0.0);
3、取余的正负号

a%b的定义是(a/b)*b+a%b=a

System.out.println(14 % -4);// 打印2
System.out.println(-14 % 4);// 打印-2
4、负数的绝对值还是负数

下面两行的代码都会打印-2147483648,因为int类型的最大整数为2^31-1,所以造成了整数溢出。

System.out.println(Math.abs(Integer.MIN_VALUE));
System.out.println(-Integer.MIN_VALUE);
5、为什么数组的起始索引是0而不是1

这个习惯来源于机器语言,那时要计算一个数组元素的地址需要将数组的起始地址加上该元素的索引。将起始索引设为1要么会浪费数组的第一个元素的空间,要么会花费额外的时间来将索引减1。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值