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

    千次阅读 2018-10-17 18:12:38
    自动转换按从低到高的顺序转换。不同类型数据间的优先关系如下:  低--------------------------------------------->高  byte,short,char-> int -> long -> float -> double ...

    自动转换按从低到高的顺序转换。不同类型数据间的优先关系如下:
        低--------------------------------------------->高
        byte,short,char-> int -> long -> float -> double

     

    运算中,不同类型的数据先转化为同一类型,然后进行运算,转换规则如下:

    操作数1类型

    操作数2类型

    转换后的类型

    byte、short、char

    int

    int

    byte、short、char、int

    long

    long

    byte、short、char、int、long

    float

    float

    byte、short、char、int、long、float

    double

    double

    展开全文
  • java基本数据类型自动转换规则

    千次阅读 2017-08-03 09:38:02
    一、java基本数据类型 Java提供了八种基本类型,其中包括六种数字类型(四个整数型,两个浮点型),一种字符类型和一种布尔型。  整型: short, int, long, byte;  浮点型:float, double;  字符型:char;  ...

    一、java基本数据类型

    Java提供了八种基本类型,其中包括六种数字类型(四个整数型,两个浮点型),一种字符类型和一种布尔型。 
    整型: short, int, long, byte; 
    浮点型:float, double; 
    字符型:char; 
    布尔型:boolean. 
    Java中的数值类型不存在无符号的,它们的取值范围是固定的,不会随着机器硬件环境或操作系统的改变而改变。



    二、非赋值运算,自动转换规则

    1)布尔型不参与转换

    2)规则: byte/char/short -> int ->  long -> float -> double

    2.1)例子:

    public class Test {
    	public static void main(String[] args) {
    		short a = 1;
    		byte b = 2;
    		char c = 3;
    		
    		//三个输出都是 class java.lang.Integer
    		System.out.println(getType(b+a));
    		
    		System.out.println(getType(b+c));
    		
    		System.out.println(getType(a+c));
    		
    	}
    	
    	public static String getType(Object o){
    		return o.getClass().toString();
    		}
    }
    2.2)规则具体讲解

    (2.2.1)如操作数之一为double,则另一个操作数先被转化为double,再参与算术运算。 
    (2.2.2)如两操作数均不为double,当操作数之一为float,则另一操作数先被转换为float,再参与运算。 
    (2.2.3)如两操作数均不为double或float,当操作数之一为long,、则另一操作数先被转换为long,再参与算术运算。 
    (2.2.4)如两操作数均不为double、float或long,则两操作数先被转换为int,再参与运算。 


    3)对比一下C语言



    三、赋值运算,自动转换规则

    将小范围类型变量转换成大范围类型的变量。Java会自动扩宽类型

    看上面那张图,各个基本数据类型的取值范围都有了,如果一个取值范围包括了另一个的,那么赋值时,小的可以自动转换成大的

    例子:     long d = 333;   float e = d; //可以

    short a = 1; char b = a; //不行,因为取值范围不是包含,而是交叉

    int a = 1; byte b = a; //不行,大的转成小的,要强制类型转换,byte b = (byte) a;


    四、一些值得注意的地方

    当运算符为取正运算符(+)。取负运算符(-)或按位取反运算符(~)时,如果操作数为byte、char或short,则先被转换为int,再参与运算



    展开全文
  • 数据类型的转换,分为自动转换和强制转换。 自动转换: 程序在执行过程中“悄然”进行的转换,不需要用户提前声明,一般是从位数低的类型向位数高的类型转换(低精度->高精度 转换)。 强制类型转换: 则...

    数据类型的转换,分为自动转换和强制转换。

    自动转换: 程序在执行过程中“悄然”进行的转换,不需要用户提前声明,一般是从位数低的类型向位数高的类型转换(低精度->高精度 转换)。

    强制类型转换: 则必须在代码中声明,转换顺序不受限制(高精度 -> 低精度转换)。 PS:此种转换存在精度损失。

    自动数据类型转换:
    自动转换按从低精度到高精度的顺序转换。不同类型数据间的优先关系如下:
    低--------------------------------------------->高
    byte,short,char-> int -> long -> float -> double

    强转: 需要在代码中声明
    高--------------------------------------------->低
    double->float -> long -> int -> byte,short,char

    实例1:

    public class Demo {
       public static void main(String[] args){
     int x; double y;
     x = (int)34.56 + (int)11.2;  // 丢失精度(强转)
    y = (double)x + (double)10 + 1;  // 提高精度(自动转换)
    System.out.println("x=" + x);
    System.out.println("y=" + y);
      }
    }
    

    运行结果:
    x=45
    y=56.0

    程序分析
    1、由于在 34.56 前有一个 int 的强制类型转化,所以 34.56 就变成了 34。同样 11.2 就变成了 11 了,所以 x 的结果就是 45。
    2、在 x 前有一个 double 类型的强制转换,所以 x 的值变为 45.0,而 10 的前面也被强制成 double 类型,所以也变成 10.0,所以最后 y 的值变为 56。
    备注:其中 (double)可声明也可不声明,因为是提高精度。

    转载:https://blog.csdn.net/farsight1/article/details/80447658
    https://blog.csdn.net/u011240877/article/details/47721135

    展开全文
  • 从容量小的类型自动转换为容量大的数据类型 byte,short,char<int<long<float<double; 基本类型之间比较时低精度自动转化成高精度 值得注意的是byte,char,short都不会存在隐式转换,相互之间只能...

    Java语言中数据类型之间的自动类型转换是由优先关系从低级数据类型转换成高级数据类型,boolean类型数据和其他七种不能互相转换

    从容量小的类型自动转换为容量大的数据类型

    byte,short,char<int<long<float<double;

    基本类型之间比较时低精度自动转化成高精度

    值得注意的是byte,char,short都不会存在隐式转换,相互之间只能进行强制类型转换。

    他们三者在计算时首先转换为int类型。

     

    byte b1=1;
    byte b2=2;
    byte b3=(byte)(b1+b2);
    

     b1+b2是整形,需要强制转换为byte类型。

    强制转换时可能造成精度降低或溢出

    double d2=1e200;
    float f2=(float)d2;
    System.out.println(f2);
    

    产生溢出

     

    单引号是字符型

    常用ASCII码值:空格为32;数字0为48;“A”为65;“a”值为97

    public class TestSort{
      public static void main(String args[]){
      int x='a';//不会产生编译错误,因为'a'赋给x是自动转换
      System.out.println(x);
      char ch=x;//会产生编译错误,因为x类型比ch优先级高,必须强制类型转换,但是在C语言中这样是可以的
      System.out.println(ch);
      }
    }
    

     

     

     

    转载于:https://www.cnblogs.com/52circle/p/8933361.html

    展开全文
  • Java数据类型转换

    2020-11-18 17:52:56
    Java数据类型转换 Java的数据类型分为两类:基本数据类型和引用数据类型, 基本数据类型包括boolean类型和数值类型。数值类型有整数类型和浮点类型。整数类型包括 byte、short、int、long、char,浮点类型包括float...
  • java基本数据类型转换

    万次阅读 2020-07-03 10:39:12
    java基本数据类型转换自动类型转换强制类型转换 自动类型转换 举例:多种不同的数据类型的一起运算 解释:有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那个数据类型,然后再进行计算。 ...
  • )首先要知道Java基本类型自动转换 https://www.cnblogs.com/ljdblog/p/6253799.html 这篇博客写的很好Java类型自动提升《Java核心技术卷I》P43 Java定义了若干使用于表达式的类型提升规则: - 如果两个操作数...
  • 小范围类型-->-->大范围类型自动类型转换。 2.大范围类型-->-->小范围类型: 1.若大范围类型的数超出小范围类型的值的范围: 报错,精度会有损失。 2.若大范围类型的数没有超出小范围类型值范围: 1. 若小范围类型...
  • Java数据类型转换:隐式(自动)转换与强制转换

    万次阅读 多人点赞 2015-08-17 10:09:25
    一些初学JAVA的朋友可能会遇到JAVA数据类型之间转换的苦恼,例如,整数和float,double型之间的转换,整数和String类型之间的转换,以及处理、显示时间方面的问题等。下面笔者就开发中的一些体会介绍给大家。  ...
  • 数据类型转换可以分为隐式转换自动类型转换)和显式转换(强制类型转换)两种。 隐式转换 自动类型转换的实现需要同时满足两个条件:①两种数据类型彼此兼容,②目标类型的取值范围大于源数据类型(低级类型数据...
  • Java基本数据类型转换java基本类型转换优先级转换类型1. 自动类型转换: 编译器自动完成类型转换,不需要再程序中编写代码转换规则: 从存储范围小的类型到存储范围大的类型具体规则 : byteàcharàshortàintàlong...
  • Java数据类型转换的使用: Java数据类型转换指:当把一种基本数据类型变量的值赋予另一种基本数据类型变量时,就是数据类型的转换了; 以下将Java中涉及到数据类型转换的类型按精度从低到高进行排序: byte 、...
  • Java数据类型

    万次阅读 多人点赞 2019-09-29 00:12:35
    文章目录定义分类计算机存储单元Java基本数据类型数据类型转换 定义 Java语言是强类型语言,对于每一种数据都定义了明确的具体的数据类型,在内存中分配了不同大小的内存空间。 分类 基本数据类型 数值型 ...
  • 面试者需要掌握以下知识点: 在Java程序中,总共有8大... 总的来说Java数据类型分为基本数据类型、复合数据类型。 基本数据类型分为:数型值、字符型(char)、布尔型(boolean)。 数值型分为:整型和实型。 ...
  • java 数据类型转换

    千次阅读 2018-11-20 11:20:32
      本博文部分原创,部分转载整理,侵删!...数据类型转换遵循原则:范围小的数据类型,可以转换成范围大的数据类型。eg:byte转int。范围大的数据类型不可以转换成范围小的数据类型。 jav...
  • 数据类型的转换,分为自动转换和强制转换。 自动转换是程序在执行过程中“无声”进行的转换,不需要提前声明,一般是从位数低的类型向位数高的类型转换; 强制转换则必须在代码中声明,转换顺序不受限制。 强制...
  • java数据类型转换有两种,分别是自动类型转换(隐式类型转换)和强制类型转换(显式类型转换)。 对于java的数值型数据类型,它们按取值范围递增的排列是这样的: byte->short->int->long->float->double ,为了...
  • 1、Java的8种基本数据类型及其所占空间大小: 基本数据类型 所占空间 boolean 8bit/1byte byte 8bit/1byte char 16bit/2byte short 16bit/2byte float 32bit/4byte int 32bit/4byte long 64bit/...
  • JAVA数据类型转换

    千次阅读 2010-05-17 13:31:00
    Java数据类型转换Java数据类型分为三大类布尔型,字符型(char),数值型(整数,浮点型)整数类型有:byte(8bits)、short(16bits)、int(32bits)、long(64bits)、浮点类型有:单精度(32bits float)、双精度(64bits ...
  • Java数据类型转换全解

    2012-07-30 09:12:21
    Java数据类型转换全解 我们知道Java语言是典型的支持面向对象的程序语言,但考虑到有些基本Java数据类型的结构简单,占内存小且存取速度快等优点,Java依然提供了对这些非面向对象的简单Java数据类型的支持...
  • Java基本数据类型转换

    2021-03-12 19:59:25
    掌握Java的基本数据类型转换 学习内容: 1、转化规则 在8大基本数据类型中,boolean不属于数值类型,所以不参与转换,其他类型的转换规则如下。一般的来说(byte、short、char)是平级的,这三种类型相互之间不参与...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 380,601
精华内容 152,240
关键字:

java数据类型自动转换

java 订阅