祝好梦!

导航

数据类型小知识

JavaSE数据类型小知识


每天一点小收获

整型

以下面代码为例

public class Demo{
   public static void main(String[] args){
   //各进制 的表示方式: 二进制0b 十进制 八进制0 十六进制0x
       int i=10;
  int i2=010;//八进制
  int i3=0x10;//十六进制
  System.out,println(i);
  System.out,println(i2);
  System.out,println(i3);
  }
}

输出结果为:

     10
    8
    16

浮点型

以下面代码为例

public class Demo01{
   public static void main(String[] args){
    float f=0.1f; //0.1
       double d=1.0/10; //0.1
       System.out.println(f==d); //false
       System.out.println(f);
       System.out.println(d);
       float f1=234543254266245234f;
       float f2=f1+1;
       System.out.println(f1==f2); //true
  }
}

输出结果为:

    false
   0.1
   0.1
   true

为什么?

因为浮点数字长是有限的是离散的,会存在舍入误差,结果只能是于等于,接近但不等于

总结:最好不要使用浮点型进行比较

字符型

以下代码为例:

public class Demo01{
   public static void main(String[] args){
    char c1='a';
       char c2='中';
       char c3='\u0061';
       System.out.println(c1);
       System.out.println((int)c1);//强制转换
       System.out.println(c2);
       System.out.println((int)c2);//强制转换
       System.out.println(c3);
       //转义字符: /t制表符 、/n表示回车、、、、
  }
}

输出结果为:

    a
   97
   
   20013
   a

为什么?

所有字符本质上还是数字,将其编入Unicode表:其中字符都是一一对应的(97==a、65==A),其范围是0 - 65536.

知识要点:java是强类型语言,运算是要先转为同一类型转换规则为:

低——>byte、short、char——>int——>long——>float——>double——>高

由高——>低 :强制转换

由低——>高:自动转换

 

posted on 2021-03-05 13:11  祝好梦!  阅读(30)  评论(1)    收藏  举报