精华内容
下载资源
问答
  • java自动类型转换

    2018-03-23 20:47:38
    java自动类型转换java转型范围,自动转型和强制转型1.自动类型转换 也称隐式类型转换,是指不需要书写代码,由系统自动完成的类型转换。由于实际开发中这样的类型转换很多,所以 Java 语言在设计时,没有为该操作...

    java自动类型转换

    java转型范围,自动转型和强制转型

    1.自动类型转换

    • 也称隐式类型转换,是指不需要书写代码,由系统自动完成的类型转换。由于实际开发中这样的类型转换很多,所以 Java 语言在设计时,没有为该操作设计语法,而是由 JVM 自动完成。

    • 转换规则:从存储范围小的类型到存储范围大的类型。

      具体规则为:byte→short(char)→int→long→float→double

      注意问题:在整数之间进行类型转换时,数值不发生改变,而将整数类型,特别是==比较大的整数类型转换成小数类型时,由于存储方式不同,有可能存在数据精度的损失==。

    • 窄化(向下转型)和宽化转换

      基本类型转型(除boolean,这个不能接受任何转型动作) 只要是宽化转换,就不需要明确指示。因为新型别能容纳来自是旧型别的信息,而不会遗失任何信息。只要有窄化转换时,编译器才会要求你强制转型

      short s = 2;
      不会丢失精度,所以不提示失败,如果
      short s = 222222;
      就会提示失败,需要你进行强制转型;因为short的最大的数值是32767
      
      1float f=3.4;是否正确? 
      答:不正确。3.4是双精度数,将双精度型(double)赋值给浮点型(float)属于下转型(down-casting,也称为窄化)会造成精度损失,因此需要强制类型转换float f =(float)3.4; 或者写成float f =3.4F .
      
      注:由上面想到: byteshortintlong 在初始化的时候给予整数,如long l = 3; byte b = 3; 虽然3默认是int类型的,但是这样是正确的。 这里需要在双精度数字后面加字母的只有float这一例了
      
      2short s1 = 1; s1 = s1 +1;有错吗?short s1 = 1; s1 += 1;有错吗? 
      答:short s1 = 1; s1 = s1 + 1是错的,s1 + 1在运算过程中1int类型,s1是short类型,向高的转,结果为int类型,所以这里需要强转,而 s1 += 1是正确的,因为jvm自动帮我们处理好了
      
      注:short s1 = 1 + 2 + 3;是正确的。当然除了shortshort低的byte也有同样的问题

    2.强制类型转换

    • 也称显式类型转换,是指必须书写代码才能完成的类型转换。该类类型转换很可能存在精度的损失,所以必须书写相应的代码,并且能够忍受该种损失时才进行该类型的转换。

      转换规则:从存储范围大的类型到存储范围小的类型。

      具体规则为:double→float→long→int→short(char)→byte

      语法格式为:(转换到的类型)需要转换的值

    展开全文
  • Java自动类型转换

    2021-04-20 20:55:18
    1.当java程序在进行赋值或运算时,精度小的类型自动转换为精度大的数据类型,这个就是自动类型转换。 2. 数据类型按精度大小排序为: (1)char——>int——>long——>float——>double (2)byte...

    基本概述:

    1.当java程序在进行赋值或运算时,精度小的类型自动转换为精度(容量)大的数据类型,这个就是自动类型转换。

    2. 数据类型按精度大小排序为:

    (1)char——>int——>long——>float——>double

    (2)byte——>short——>int——>long——>float——>double

    public class autoConvert {
      public static void main(String[] args) {
        int num = 'a';
        double d1 = 80;
        System.out.println(num); // 97
        System.out.println(d1); // 80.0
      }
    }

    注意事项:

    1.有多种类型的数据混合运算时,系统首先将所有数据转换成容量最大的那种数据类型,然后再进行计算。

    2.当我们把精度(容量)大的数据类型赋值给精度(容量)小的数据类型,就会报错,反之则自动转换。

    3.(byte,short)和char之间不会相互自动转换

    4.byte,short,char它们三者可以计算,在计算时

    5.boolean不参与转换

    6.自动提升原则:表达式结果的类型自动提升为操作数中最大的类型

    public class autoConvert {
      public static void main(String[] args) {
        int n1 = 10;
        // float d1 = n1 + 1.1; error, result is double, but type is float
        float d1 = n1 + 1.1F;
        double d2 = n1 + 1.1;
        System.out.println(d1);
        System.out.println(d2);
        byte = 10;
      }
    }

     

    展开全文
  • JAVA 自动类型转换

    2020-09-18 10:29:37
    JAVA的数据类型:byte\short\int\long\double在计算时,会自动把低精度转换为高精度。 字符串+别的数据类型,会自动转化为字符串。 package Number; public class Calculate {  public static void main(String...

    JAVA的数据类型:byte\short\int\long\double在计算时,会自动把低精度转换为高精度。

    字符串+别的数据类型,会自动转化为字符串。

    package Number;
    public class Calculate {
     public static void main(String[] args) {
      byte b = 10;
      short s = 10;
      int i = 10;
      long l = 10l;
      double d = 10;
      
      System.out.println(“这些数相加=” + (b+s+i+l+d));

    展开全文
  • Java 自动类型转换

    2012-07-29 21:41:26
    在程序中已经定义好了数据类型的变量,若是想用另一种数据类型表示时,Java会在下列的条件皆成立时,自动做数据类型转换:   1、转换前的数据类型转换后的类型兼容。 2、转换后的数据类型的表示范围比转换前...

    在程序中已经定义好了数据类型的变量,若是想用另一种数据类型表示时,Java会在下列的条件皆成立时,自动做数据类型的转换:

     

    1、转换前的数据类型与转换后的类型兼容。

    2、转换后的数据类型的表示范围比转换前的类型大。

     

    举例来说,若是想将short类型的变量a转换为int类型,由于short与int皆为整数类型,符合上述条件1;而int的表示范围比short大,亦符合条件2。因此Java会自动将原为short类型的变量a转换为int类型。

     

    值得注意的是,类型的转换只限该行语句,并不会影响原先所定义的变量的类型,而且通过自动类型的转换,可以保证数据的精确度,它不会因为转换而损失数据内容。这种类型的转换方式也称为扩大转换。

     

    前面曾经提到过,若是整数的类型为short或byte,为了避免溢出,Java会将表达式中的short和byte类型自动转换成int类型,即可保证其运算结果的正确性,这也是Java所提供的“扩大转换”功能。

     

    以“扩大转换”来看可能比较容易理解——字符与整数是可使用自动类型转换的;整数与浮点数亦是兼容的;但是由于boolean类型只能存放true或flase,与整数及字符是不兼容,因此是不可能做类型的转换。

    展开全文
  • 自动类型转换也称隐式类型转换,是指不需要书写代码,由系统自动完成的类型转换。由于实际开发中这样的类型转换很多,所以 Java 语言在设计时,没有为该操作设计语法,而是由 JVM 自动完成。转换规则:从存储范围小...
  • java中,在进行数值运算或赋值时,可能会进行自动类型转换。首先自动类型转换都需要满足这个条件:转换后的数据类型的表示范围比转换前的类型大。解释:如下图: 自动类型转换只能顺着箭头的方向转,如果要反着转的...
  • public class Ch04 {public static void main(String[]args){//自动类型转换//基本数据的自动类型转换只有7种数据类型,除了boolean//基本原则:低级别可以直接转高级别// char//byte->short->int->l...
  • 数据类型的转换可以分为隐式转换(自动类型转换)和显式转换(强制类型转换)两种。 隐式转换(自动类型转换) 满足2 个条件,那么将一种类型的数据赋给另外一种类型变量的时,将执行自动类型转换(automatic type ...
  • 自动类型转换 自动类型转换:容量小的类型自动转换成为容量大的数据类型。(注意:是容量小的转换为容量大的,而不是所占空间小的转换为占空间大的) 如:long与float做运算时,long要转换为float,虽然long占...
  • 其它实用数据类型转换。二、简单数据类型之间的转换在Java中整型、实型(常量)、字符型被视为简单数据类型,这些类型由低级到高级分别为(byte,short,char)->int->long->float->doub...
  • java自动类型转换与强制类型转换

    千次阅读 2018-02-03 16:41:40
    自动类型转换就是自发的进行,你可以从输出的结果看出,外表是看不出来的。我们知道数据类型有很多种,大小也不一样,就像水桶似的,有1升的,2升的,4升的,自动类型转换就相当于把小的水桶里面的水装到大的里面去...
  •  * 自动类型转换,只要记住:取值范围小的类型,自动转换为取值范围大的类型  *   * 将一个范围小的数转换为范围大的数,它不会丢失数据,如果将一个范围大的数,转换为范围小的数,那么他有可能会  * 丢失数据...
  • java自动类型转换

    千次阅读 2018-11-25 21:33:00
    自动类型转换图.jpg 邮箱:ithelei@sina.cn 技术讨论群:687856230 GoodLuck
  • 当八种基本类型参与运算时,若是不同类型,则编译后会自动进行类型转换 如: double d=0.0; int i=0; System.out.println(i==d);//打印出true 查看编译后的class文件可以发现: double d = 0.0D; int i = 0; ...
  • 自动类型转换自动类型转换是指:数字表示范围小的数据类型可以自动转换成范围大的数据类型。如:long l = 100;int i = 200;long ll = i;具体自动转换如如下图所示。实线表示自动转换时不会造成数据...
  • 自动类型转换也叫隐式类型转换,自动类型提示经常出现在: 表达式中非相同的数据类型计算时 调用方法传递参数时 赋值与接收参数的变量类型不匹匹配时 方法返回值时 自动提升的过程其实是将低类型(占用字节数少)...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,074
精华内容 3,629
关键字:

java自动类型转换

java 订阅