Java 数字类型 - zhongjiajie/zhongjiajie.github.com GitHub Wiki

Java-数字类型

  • 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);

整数和浮点数的转换,只能将数据从粒度更加细的自动转换成粒度更加大的,不能将粒度大的自动转成粒度细的

Integer

  • 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的最大值

Double

FAQ

获取数字类型的最大值和最小值

每种基本类型所占用的内存空间大小,最大值和最小值,可以通过其包装类来访问.比如为了我们可以这样访问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);

实现python中的Range方法

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);

格式化double成两位小数

这里

// 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");

⚠️ **GitHub.com Fallback** ⚠️