java基本类型中,不明确指定类型,整数与带小数的数字分别默认的类型
牛客刷到的一道题
Q: 在基本JAVA类型中,如果不明确指定,整数型的默认是什么类型?带小数的默认是什么类型
整数类型很好猜,是int,那么带小数的呢。例如2.22
是float还是double?
上demo
package com.backend.utils;
public class TypeDemo {
public static void main(String[] args) {
System.out.println(getType(1));
System.out.println(getType(1.1));
}
public static String getType(Object o){
return o.getClass().getTypeName();
}
}
执行main方法
java.lang.Integer
java.lang.Double
由此可知带小数的默认类型为double
but,感觉题目不太严谨,没有限制整数的大小
当输入十个9,idea给出提示,整数过大
我们在这十个9后加一个L,以区别这是long类型
System.out.println(getType(9999999999L));
输出的结果为
java.lang.Long
我们知道,Integer的最大值为0x7fffffff,也就是2^31-1 、2147483647
超出就需要转为Long类型
Long类型的最大值为0x7fffffffffffffffL,也就是2^63-1、9223372036854775807
如果超出9223372036854775807,则需要指定BigInteger类型