zoukankan      html  css  js  c++  java
  • 类型转换

    类型转换

    由于Java时强类型语言,所有要进行有些运算的时候,需要用到类型转换。

     

    ------------------------------------------------------------>

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

     

             int i =128;
             byte b = (byte) i;//内存溢出
     
             //强制转换 (类型)变量名     高--低
             //自动转换       低--高
     
             System.out.println(i);  //128
             System.out.println(b);  //-128

    而当换成double时,则不会溢出

     

             int i =128;
      double b = i; //低-->高 自动转换
     
             System.out.println(i);  //128
             System.out.println(b);  //128.0

     

    注意点:

     1.   不能对布尔值进行转换
     2.   不能把对象类型转换为不相干的类型
     3.   在把高容量转换到低容量的时候,强制转换
     4.   转换的时候可能存在内存溢出,或者精度问题!

     

    精度问题

     System.out.println((int)23.7);  //23
     System.out.println((int)-45.89f);   //-45

     

    char转换成int类型

     char c = 'a';
     int d = c+1;
     System.out.println(d);  //98
     System.out.println((char)d);    //b

     

    补充

     //操作比较大的数的时候,注意溢出问题
     //JDK7新特性,数字之间可以用下划线分割
     int money = 10_0000_0000;
     System.out.println(money);
     int years = 20;
     int total = money*years;    //-1474836480,计算的时候溢出了
     long total2 = money*years;
     System.out.println(total2); //默认是int,转换之前已经存在问题了?
     
     long total3 = money*((long)years); //先把一个数转换为long
     System.out.println(total3);
     
     //L     l   在定义long时多用大写L少用l

     

  • 相关阅读:
    Linux 命令
    g++/gcc
    emacs lisp
    vim 快捷键
    emacs快捷键
    Valgrind 例子
    Valgrind
    gprof
    cppcheck
    gdb常用命令
  • 原文地址:https://www.cnblogs.com/helloxiaolu/p/13233447.html
Copyright © 2011-2022 走看看