新年之初,万物伊始

Posted on 2023-01-01 17:57  陈最的罪  阅读(20)  评论(0编辑  收藏  举报
public class demo1227 {
    public static void main(String[] args) {
        int i =128;
        byte b=(byte) i;//给byte赋值,内存溢出,byte取值在-128~127
        //强制转换(类型)变量名,有高到低,本质上是把int的i类型由取值范围广的类型转换成了byte
        System.out.println(i);
        System.out.println(b);
        byte a=22;
        int c=a;
        System.out.println(a);
        System.out.println(c);
        //自动转换由低到高
        /*
        注意点:1.布尔类型不能转换  2.无关类型不能转换  3.大容量转换到小容量需要强制转换,转换过程容易出现内存溢出
        4.转换容易出现精度问题
         */
        System.out.println("======================");
        System.out.println((int)23.3);
        System.out.println((int)49.89F);
        //精度问题
        char d='z';
        int e=d+1;
        System.out.println("==================");
        System.out.println(d);
        System.out.println(e);
        //字符的本质就是unicode里面所对应的数字
        System.out.println((char)e);//输出的是一个大括号,所以得出结论表中z后面就是符号{
        int f=e+2;
        System.out.println((char)f);
        /*{和}两个符号之间还有一个符号|
        z:123     {:124       }:126
         */
    }
}

还需要再比较一下容量大小


由低到高,byte short char int long float double


运算中不同的数据类型先转化为同一类型