2022年1月24日

Java基础语法

二、数据类型扩展

public class DataTypeExtension {
    public static void main(String[] args) {
        //整数拓展 进制问题:二进制0b 十进制 八进制0 十六进制0x
        int i1 = 10;   //十进制
        int i2 = 010;  //八进制
        int i3 = 0b10; //二进制
        int i4 = 0x17; //十六进制 0~9 A~F //逢16进1,0x17=16+7=23
        System.out.println(i1);
        System.out.println(i2);
        System.out.println(i3);
        System.out.println(i4);

        //浮点数拓展
        float f = 0.1f;
        double d = 1.0/10;
        System.out.println(f == d);//这里可以用来判断 f 是否等于 d
        //为何输出是false
        float f1 = 1212131342131213131f;
        float f2 = f1 + 1;
        System.out.println(f1 == f2);
        //为何输出是true
        /*
        * float表示的字长是有限的,存在舍入误差,最好不要用浮点数进行比较
        * 如果需要没有误差的计算比较,可以用 Bigdecimal(数学工具类),这是一个Java已经写好的类
        * */

        //字符拓展
        char c1 = 'A';
        char c2 = '中';
        //强制转换
        System.out.println((int)c1);//65
        System.out.println((int)c2);//20013
        char c3 = '\u0061'; //Unicode编码
        System.out.println(c3);     //a

        //转义字符
        /*
        \t  水平制表符
        \n  换行符
        \\  反斜杠\
        \?  问号字符
        \'  单引号字符
        \"  双引号字符
        \   \后面跟着三个及以内的数字是八进制转义字符
            \012表示10
        \x  \x后面跟着两个及以内的数字是十六进制转义字符
            \x14表示20
         */
        System.out.println("Hello\tWorld!");// \t 制表符
        System.out.println("Hello\nWorld!");// \n 换行符

        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
        //new是开辟一个新的空间,上面比较的是地址,下面比较的是内容

        //布尔值扩展
        boolean flag = true;
    }
}

三、类型转换

public class TypeConversion {
    public static void main(String[] args) {
        int i = 128;
        byte b = (byte)i;//强制转换
        System.out.println(i);//128
        System.out.println(b);//-128内存溢出
        //原因:byte范围是-128~127,类型转换时要注意避免内存溢出
        //byte、short、char——>int——>long——>float——>double
        //    低————————————————————————————————————>高
        //强制类型转换:高->低
        //自动类型转换:低->高
        int a = 128;
        double d = a;//自动转换
        //不能对布尔值进行转换,因为bool值是按位进行计算的
        System.out.println((int)23.6);//23
        System.out.println((int)-49.87f);//-49

        char c = 'a';
        int e = c + 1;
        System.out.println(e);
        System.out.println((char)e);

        int money = 10_0000_0000;
        int year = 20;
        int total1 = money*year; //-1474836480溢出
        long total2 = money*year;//-1474836480溢出,因为赋值之前就已经出问题了
        long total3 = money*(long)year;//20000000000正解
        System.out.println(total1);
        System.out.println(total2);
        System.out.println(total3);

    }
}

四、变量、常量、作用域

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值