Java 数字类型 - zhongjiajie/zhongjiajie.github.com GitHub Wiki
- byte、short、int和long都可以用十进制、二进制、八进制以及十六进制的方式来表示
- 一个浮点数字面量默认是double类型,如果要定义float类型则要在字面量最后添加
f
或者F
double a = 1.23;
float b = 1.23F;
float c = 1.23; // 编译错误
- 一个整数字面量默认是int类型,如果要定义长整形(long)则要在字面量最后添加
l
或者L
int a = 100;
long b = 100000L;
long c = 100000;
- 将int或者long转换成String数据
int a = 10;
long b = (long)100;
String s1 = Integer.toString(a);
String s2 = Long.toString(b);
整数和浮点数的转换,只能将数据从粒度更加细的自动转换成粒度更加大的,不能将粒度大的自动转成粒度细的
-
int的包装类是Integer
-
将int类型转成二进制类型
Integer.toBinaryString(9)
-
<< >> <<<
左移运算符 右移运算符 无符号右移,移动的方式是将int
转成二进制类型,然后在二进制的基础上进行增加或者删除一位数,两者的转换关系如下num<<n -> num*2^n num>>n -> num/2^n
-
判断int对象是否相等别直接用
==
,应该用equals
,最好直接用import java.utils.Objects; Object.equals(v1, v2);
-
[java类似python的range(int start, int end)方法][13]:
IntStream.range(0, 10).forEach(n -> {System.out.println(n);}); // or IntStream.range(0, 10).forEach(System.out::println);
-
int不会为空,所以
int a = 1; if (Objects.isNull(a))
是错误的,因为int没有被初始化的时候可能是0但是不回为空,但是Integer可以为空 -
compareTo
方法对整形进行比较1.compareTo(0) (return: 1) 1.compareTo(1) (return: 0) 0.comapreTo(1) (return:-1)
-
Integer.MIN_VALUE
: Integer的最小值 -
Integer.MAX_VALUE
: Integer的最大值
每种基本类型所占用的内存空间大小,最大值和最小值,可以通过其包装类来访问.比如为了我们可以这样访问int类型的相关信息
System.out.println("int类型的二进制位数: " + Integer.SIZE);
System.out.println("int类型的最小值: Integer.MIN_VALUE=" + Integer.MIN_VALUE);
System.out.println("int类型的最大值: Integer.MAX_VALUE=" + Integer.MAX_VALUE);
java类似python的range(int start, int end)方法
// Java 8
IntStream.range(0, 10).forEach(
n -> {
System.out.println(n);
}
);
// method references
IntStream.range(0, 10).forEach(System.out::println);
// Note the "00", meaning exactly two decimal places.
// If you use "#.##" (# means "optional" digit), it will drop trailing zeroes - ie new DecimalFormat("#.##").format(3.0d); prints just "3", not "3.00".
DecimalFormat df = new DecimalFormat("#.00");