数据类型

数据类型

public class DEMO02 {
    public static void main(String[] args) {
        String a = "10";
        int num = 10;
        /*数据类型 变量名 = 值;可以用逗号隔开来声明多个同类型变量
        变量是什么:就是可以变化的量
         */
        System.out.println(a);
        System.out.println(num);
        //八大基本数据类型

          //整数

        int num2 = 10;//最常用基本数据类型, Integer类
        byte num3 = 20;//Byte类
             //byte num3 = 200; 200就不能用byte类型
        int num4 = 200;
        short num5 = 30;
        long num6 = 30L;//Long类型要在数字后面加L

          //小数:浮点数
        float num7 = 5.1F;//因为还有double类型可以表示小数,所以用float类型表示小数要用数字后面的F区分
        double num8 = 3.1415916;

          //字符类型
        char name = 'a';
             //char name = 'aa';错误写法:char类型只能写字符,字符代表一个字,两个字不写
             //char name = "aa";错误写法:双引号""表示String类型的
          //字符串,String不是关键字,是一个类
        String name1 = "love";

        //布尔值
        boolean flag = true;
             //boolean flag = false; 只有这两个
    }
}

数据类型拓展

整数拓展

  • 二进制0b
  • 十进制
  • 八进制0
  • 十六进制0x
public class DEMO03 {
    public static void main(String[] args) {
        int i = 10;
        int i5 = 0b10;//二进制0b
        int i2 = 010;//八进制0
        int i3 = 0x10;//十六进制0x  0~9  A~F
        int i4 = 0x11;
        System.out.println(i);
        System.out.println(i5);
        System.out.println(i2);
        System.out.println(i3);
        System.out.println(i4);
    }
}

image-20220702175534531

浮点数拓展

银行业务怎么表示?关于钱

  • float:离散,大约,接近但不等于

    psvm
    float i6 = 0.1F;
    System.out.println(i6);
    
  • double:

    psvm
    double i7 =1.0/10;
    System.out.println(i7);
    
  • 对比1

    • ==号表示检验这两个是否相等
    psvm
    float i6 = 0.1F;
    double i7 =1.0/10;
    System.out.println(i6==i7);
    //==号表示这两个是否相等,输出结果false
    //所以最好完全避免使用浮点数进行比较
    
    System.out.println(i6);
    System.out.println(i7);
    
    • 最好完全不要使用浮点数进行比较
    • 最好完全不要使用浮点数进行比较
    • 最好完全不要使用浮点数进行比较
  • 对比2

    psvm
    float d1 = 121211F ;//在float字节范围内
    float d2 = d1 + 1;
    System.out.println(d1==d2);//输出false
    
    float d3 = 121212121212121F ;//超出float字节范围
    float d4 = d3 + 1;
    System.out.println(d3==d4);//输出true
    //使用BigDecimal 数学工具类
    

    image-20220702181948615

    • 最好完全不要使用浮点数进行比较
    • 使用BigDecimal 数学工具类

字符拓展

  • char c1 = 'a';字符类型,单引

    String sd = "Hello World";字符串,双引

    int num = 10;基本数据类型,不引

    psvm
    char c1 = 'a';//通过单引号表示字符常量
    char c2 = '中';
    System.out.println(c1);
    System.out.println((int)c1);//强制转换
    
    System.out.println(c2);
    System.out.println((int)c2);//强制转换,可以把字符变成数字,输出结果是一个数,此数
    
    • 由上,所有的字符本质还是数字,根据Unicode表查a对应的数字
    • 编码 Unicode表:97=a ,65=A;占两个字节 ;范围0-65526;Excel表最大2^16=65536
    psvm
    char  c3 = '\u0061';//char全部小写,错误后第一时间查大小写,然后查分号
    System.out.println(c3);//输出a
    
    • char全部小写,错误后第一时间查大小写,然后查分号
  • 转义字符

    psvm
    System.out.println("hello\tworld");
            System.out.println("hello\nworld");//没类名要加引号
    
    • \t 制表符,如上输出hello world

    • \n 换行,如上输出

      image-20220703002802031

未解之谜

psvm
String sa = new String(original: "Hello World") ;
String sb = new String(original: "Hello World") ;
System.out.println(sa==sb);//两个不相等
String sc =  "Hello World" ;
String sd = "Hello World" ;
 System.out.println(sc==sd);//两个相等
//对象  从内存分析

布尔值拓展

psvm
Boolean flag = true;
if (flag==true){} // 新手写法
if (flag){}//老手,两个一样
//less is more
posted @ 2022-07-03 00:32  来自土木的一员  阅读(40)  评论(0)    收藏  举报