1 2 3 4

Study05:关键字、数据类型

Java常用关键字

abstract asert boolean break byte
case catch char class const
continue default do double else
enum extends final finally float
for goto if implements import
instanceof int interface long native
new package private protected public
return strictfp short static super
switch synchronezed this throw throws
transient try void volatile while

数据类型

        //八大基本数据类型

        //整数类型
        int   num1 = 10;     //最常用
        byte  num2 = 20;     //最小
        short num3 = 30;
        long  num4 = 40L;    //最长,Long类型要在数字后加个 L

        //小数:浮点类型
        float  num5 = 50.5F; //float类型要在数字后加个F
        double num6 = 6.666666666;

        //字符类型
        char name = 'A';

        //字符串,String不是关键字,是一个类
        String name1 = "一呆";

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

        System.out.println(num1);
        System.out.println(num2);
        System.out.println(num3);
        System.out.println(num4);
        System.out.println(num5);
        System.out.println(num6);
        System.out.println(name);
        System.out.println(name1);
        System.out.println(flag);
        //整数拓展:
        //进制:      二进制0b     十进制     八进制0     十六进制0x

        int a = 10;
        int b = 0b10;   //表示这个10是二进制的数
        int c = 010;    //表示这个10是八进制的数
        int d = 0x10;   //表示这个10是十六进制的数      0~9 A~F(10~15)

        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        System.out.println(d);
       
        //浮点数拓展:        如何表示银行业务?
        //float     有限的  离散的  存在舍入误差 大约 接近但不等于
        //double
       

        float e0 = 0.1f;     //0.1
        float e = 0.1f;     //0.1
        double f = 0.1;     //0.1

        System.out.println(e0==e);  // == 表示判断是否相等
        //输出结果位true
        System.out.println(e==f);
        //输出结果为false

        float e1 = 66666666666666f;
        float e2 = e1+1;

        System.out.println(e1==e2); //输出结果为true      

        //最好不用浮点数进行比较
        //最好不用浮点数进行比较
        //最好不用浮点数进行比较
        //BigDecimal  数学工具类

       
        //字符拓展:
       
        char c1 = 'a';
        char C1 = 'A';
        char c2 = '一';

        System.out.println(c1);
        System.out.println((int) c1);  //强制类型转换 将char类转换为int类
        System.out.println(C1);
        System.out.println((int) C1);  //强制类型转换 将char类转换为int类
        System.out.println(c2);
        System.out.println((int) c2);  //强制类型转换 将char类转换为int类      

        //所有的字符本质还是数字
        //编码问题  Unicode编码(可以处理各种语言的编码)(a=97  A=65)   占2字节   可表示0~65536  Excel  2^16=65536

        //U0000~UFFFF

        char c3 = '\u0061';     // \\u代表转义    Unicode编码表示方式
        System.out.println(c3); //输出a

        //转义字符
        // \t:表示空格  制表符
        // \n:表示换行
        // \r:表示将当前位置移到本行开头
        // \b:表示将当前位置往前移动一格
        //......

        System.out.println("Hello\tWorld!");
        System.out.println("Hello\nWorld!");
        System.out.println("Hello\rWorld!");
        System.out.println("Hello\bWorld!");      

        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 more!     代码要精简易读

类型转换

运算中,不同类型的数据先转换为同一类型再进行运算

从低----------------------------------------------------------->高进行转换

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

小数的优先级一定大于整数

        int i1 = 128;        
		byte i2 = (byte) i1;    //强制转换      byte类型最大为127  内存溢出
        double i3 = i1;         //自动转换

        //强制类型转换  (类型)变量名   高——低
        //自动转换    低——高
        /*
        * 注意点:
        * 1.不能对布尔值进行转换
        * 2.不能把对象类型转换为不相干类型
        * 3.高转低,强制转换
        * 4.转换是可能存在内存溢出或精度问题
        * */
		//操作比较大的数的时候要注意溢出问题
		//JDK新特性:数字之间可以使用下划线分割,不会输出
		int money = 1_000_000_000;
		int years = 10;
		int total1 = money*years;
		long total2 = money*years;      //默认为int类型
		long total3 = money*(long)years;//先将其中一个类型转换为long

		System.out.println(money);
		System.out.println(total1);     //1410065408    计算溢出
		System.out.println(total2);     //先用int类型进行计算再用long输出,输出的数据依旧是错误计算之后的
		System.out.println(total3);
posted @ 2021-03-17 14:20  草帽将军一呆  阅读(53)  评论(0编辑  收藏  举报