Day2.数据类型、类型转换

目录

数据类型

八大基本数据类型

类型转换


数据类型

  • 强类型语言

    • 要求变量的使用严格符合规定,所有变量都先定义后使用

  • 弱类型语言

  • Java的数据类型分为两大类

    • 基本类型 (primitive type)

    • 引用类型 (reference type)

Day2.数据类型、类型转换

八大基本数据类型

  • 基本类型

public class Demo01 {
    public static void main(String[] args) {
        //整数
        byte num2 =20;
        short num3 =30;
        int num1 =10;  //最常用
        long num4 =30L;  //Long类型要在数字后面加L

        //小数:浮点数
        float num5 =50.1F;  //float类型要在数字后面加F
        double num6 =3.1415926535;

        //字符
        char name ='A';

        //字符串,String不是关键字,类
        String namea ="Demon";

        //布尔值:是非
        boolean fuck = true;
        boolean fucky = false;

    }
}
  • 整数扩展

    //整数拓展:  进制   二进制0b   十进制   八进制0   十六进制0x

        int a = 10;
        int b = 010;   //八进制0
        int c = 0x10;  //十六进制0x     0-9   A-F
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        System.out.println("===================================================");
        //======================================================================
        //浮点数拓展   银行业务如何表示?
        //BigDecimal  数学工具类
        //======================================================================
        //float     有限  离散  摄入误差  大约  接近但不等于
        //double
        //最好完全避免使用浮点数进行比较
        //最好完全避免使用浮点数进行比较
        //最好完全避免使用浮点数进行比较

        float f =0.1f;     //0.1
        double d =1.0/10;  //0.1

        System.out.println(f==d);  //false

        float d1 =23132313113123f;
        float d2 =d1 + 1;

        System.out.println(d1==d2); //true
  • 字符拓展

    //字符拓展?
    
        char c1 ='a';
        char c2 ='鼎';

        System.out.println(c1);
        System.out.println((int)c1); //强制转换

        System.out.println(c2);
        System.out.println((int)c2); //强制转换

        //所有的字符本质还是数字
        //编码  Unicode  2字节  65536
        char c3 ='\u0061';
        System.out.println(c3);

        System.out.println("===================================================");
        //转义字符  \t(制表符)  ( ) (\n) 换行 ....
        System.out.println("hello\tWorld");  //hello	World

        System.out.println("===================================================");
        //对象  从内存分析
        String sa = new String("hello world");
        String sb = new String("hello world");
        System.out.println(sa==sb);  //false

        String sc ="hello world";
        String sd ="hello world";
        System.out.println(sc==sd);  //true
  • 布尔值扩展

    //布尔值扩展
        boolean flag = true;
        if(flag==true){}  //新手
        if(flag){}        //老手
        //less is Morel   代码要精简易读

类型转换

  • 由于Java是强类型语言,所以要进行有些运算时,需要用到类型转换。

    低------------------------------------------------------高

    byte,short,char->int->long->float->double

        //强制转换  (类型)变量名    高--低
        //自动转换     低--高
        int i = 128;         //128
        byte b = (byte) i;   //-128 内存溢出

        /*
        注意:
        1.不能对布尔值进行转换
        2.不能把对象类型转换为不相干的类型
        3.把高容量转换到低容量时,强制转换
        4.转换的时候可能存在内存溢出,或者精度问题!
         */

        System.out.println("=============================");
        System.out.println((int)23.7);    //23
        System.out.println((int)-45.9f);  //-45

        System.out.println("=============================");
        char c = 'a';
        float d = c+1;    //自动转换

        System.out.println((int)c);   //97
        System.out.println(d);        //98
        System.out.println((char)d);  //b

        System.out.println("=============================");

        //操作较大时,注意溢出问题
        int money = 10_0000_0000;
        int years =20;
        int total =money*years;  //-1474836480
        long total2 =money*years;  //-1474836480  ,转换时默认int,已经出现问题

        long total3 =money*((long)years);  //把一个数据转换成Long
        System.out.println(total3);   //20000000000

        System.out.println("=============================");

上一篇:算法打卡Day2(二分查找)


下一篇:Day2 Java学习第二天