zoukankan      html  css  js  c++  java
  • 7.JavaSE之类型转换

    类型转换:
    由于Java是强类型语言,所以要进行运算的时候,需要用到类型转换。
    图中优先级从低到高,小数优先级大于整数。
    运算中,不同类型的数据需要转换为同一类型,然后进行运算。
    强制类型转换:(类型)变量名 高--低
    自动类型转换:不用写 低--高
     1 public class Demo04 {
     2     public static void main(String[] args) {
     3         int i = 128;
     4         byte b = (byte) i;//内存溢出,Byte范围-128~127
     5 
     6         //强制类型转换:(类型)变量名  高--低
     7         //自动类型转换:不用写        低--高
     8 
     9         double c = i;
    10         System.out.println(i);//128
    11         System.out.println(b);//-128   高到低
    12         System.out.println(c);//128.0  低到高
    13 
    14         /*
    15         注意点:
    16         1.不能对布尔值进行转换
    17         2.不能把对象类型转换为不相干的类型。例如不能把人变成猪,但是可以把一个男人变成一个女人
    18         3.在把高容量转换为低容量的时候,强制转换,反之不用管。
    19         4.转换的时候可能存在内存溢出(高-低),或者精度问题(小数,精度丢失问题)
    20         */
    21 
    22         System.out.println((int) 23.7);   //23
    23         System.out.println((int) -45.99f);//-45
    24 
    25         System.out.println("======================");
    26         char d = 'a';
    27         int e = d + 1;
    28         System.out.println(e);       //98
    29         System.out.println((char) e);//b
    30 
    31     }
    32 }

    注意:

    public class Demo05 {
        public static void main(String[] args) {
            //操作比较大的数的时候,注意溢出问题
            //JDK7新特性,数字之间可以用_分割,而且下划线不会被打印出来
    
            int money = 10_0000_0000;
            int years=20;
            System.out.println(money);//1000000000
            int total=money*years;
            long total2 =money*years;
            System.out.println(total);//-1474836480,计算的时候溢出了
            System.out.println(total2);//默认是int,计算完后默认是int数你转换成long没用,还是-1474836480怎么解决呢?
    
            long total3=money*((long)years);//在计算前转换,将一个数转换为long类型就可以了。
            System.out.println(total3);//20000000000
    
            //L  l 用L表示long类型,容易看成1。需要注意代码规范,从刚开始就抓起。
        }
    }
  • 相关阅读:
    单调栈问题解析
    Linux进程状态切换
    Shell编程小例子
    Linux之shell编程
    树的遍历框架
    你真的会求1-100有多少个素数吗
    java实现LRU算法
    从上到下打印二叉树 III
    从上到下打印二叉树I
    模拟盘电路板调试过程中出现的问题
  • 原文地址:https://www.cnblogs.com/duanfu/p/12221930.html
Copyright © 2011-2022 走看看