2021-09-12 Java数据类型

数据类型

在这里插入图片描述

数据类型在java中的应用:

public class Demo02 {
    public static void main(String[] args){
      //八大基本数字类型
        //整数
        byte num1 = 100; //一个字节
        short num2 = 1000;  //俩个字节
        int  num3 = 10000;   // 最常用 
        long num4 =  10000000L;   //在long整数类型 数字后要加L
        //浮点数
        float num5 = 10.1F;   //在float类型数字后要加F
        double num6 = 3.1415962;

        //字符
        char nmu7 = '中'; //只能取一个字符
        //string num8 = "嘟嘟嘟嘟嘟";
        //string  字符串  但string不是关键字
        //布尔值  是非
        boolean hello = true;
        boolean world = false;


     /*
     除此以外的数据类型都叫引用数据类型包括了
     类
     数组
     接口
      */
    }
}

数据类型的拓展

import java.sql.SQLOutput;

public class Demo03 {
    public static void main(String[] args) {
     //整数的拓展:  二进制0b  八进制0  十进制    十六进制0x
        int a = 0B110;
        int a1 = 010;
        int a2 = 0x11;
        System.out.println(a);
        System.out.println(a1);
        System.out.println(a2);
        System.out.println("==========================================");
        // ========================  起到分割作用
        //浮点数的拓展:
        float b = 0.1f;  //0.1f等于0.1
        double  b2 = 1/10;//1/10等于0.1
        //俩个相同的结果在比较后是为真还是假?
        System.out.println(b == b2);//运行后结果为false
        System.out.println("======================================");
        //判断如下真假:
        float  c1 = 1616166416516f;
        double c2 = c1 + 1;
        System.out.println(c1 == c2 );//判断结果为true
        //说明在java中浮点数的判定存在问题
        //因此最好完全使用浮点数进行比较
        //少用浮点数进行比较
        System.out.println("===============================");
        //字符拓展:
        char d1 = 'a';
        char d2 = '嘟';
        System.out.println(d1);
        System.out.println((int)d1);//这里的int代表了强制转换的意思
        System.out.println(d2);
        System.out.println((int)d2);//强制转换
        //通过强制转换发现:所有的字符的本质是数字
        //转义字符:  如  \t表示制表符  \n表示换行
        System.out.println("hello \t world");
        System.out.println(" hello \n world");
        System.out.println("=============================");


       
    }
}

类型转换

在这里插入图片描述

强制类型转换和自动类型转换

import java.sql.SQLOutput;

public class Demo05 {
    public static void main(String[] args) {
        int  i = 128;
        byte a = (byte) i; //强制转换方法:(类型)变量名  在从高到低的转换中需要强制转换

        System.out.println(i);
        System.out.println(a);//由于byte最大的值为127 因此输出结果为错误结果
        System.out.println("========================");
        //从低到高不需要强制转换系统会自动转换
        int c = 128;
        double d = c;//低到高会自动转换

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

        //转换时存在精度问题

        System.out.println((int)35.7);//转换结果为35.7 并未四舍五入
        System.out.println((int)-45.7);//转换结果为 -45


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

            //拓展
        char m = 'a';
        int  o = m + 1;
        System.out.println(o);
        System.out.println((char)o);


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


        int money = 10_0000_0000;
        int year = 20;
        int total = money * year;
        long total2 = money * year;//money和year的计算仍为int
        long total3 = money * ((long)year);
        System.out.println(total);//输出结果错误 没有进行类型转换 出现溢出问题
        System.out.println(total2);//输出结果仍然错误  默认类型仍为int
        System.out.println((long)total);//total计算的结果已经是错误 再次处转换已无意义
        System.out.println(total3);//得到正确结果在计算之前便要将类型进行转换 以此解决溢出问题
    }
}

注意点

  • 不能对布尔值进行转换
  • 不能把对象类型转换为不相干的类型
  • 在把高容量转换为低容量时 使用强制转换
  • 转换的时候可能存在内存溢出 或者精度问题
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值