精华内容
下载资源
问答
  • 1、数据类型转换之隐式转换: ...分析:在java中计算过程中,不同类型数据进行运算时,小的数据类型隐式转换为大的数据类型。 首先虚拟机将byte类型提升为int类型,将1个字节提升为4个字节,默认用0填充, 然后在

    1、数据类型转换之隐式类型转换

    class DataTypeConversion{
    	public static void main(String[] args){
    		int x = 3;
    		byte b = 4;
    		x = x + b;
    		System.out.println(x);	//输出结果为7
    	}
    }
    

    分析:在java中计算过程中,不同类型数据进行运算时,小的数据类型会隐式转换为大的数据类型。
    在这里插入图片描述
    首先虚拟机将byte类型提升为int类型,将1个字节提升为4个字节,默认用0填充,
    在这里插入图片描述
    然后在和int 类型的x进行相加操作,得到如下结果。
    在这里插入图片描述
    结果为int类型的7。

    展开全文
  • 要解释Java数据类型转换,可以从两个方面来阐述: 1. Java中的数据类型 2. 数据类型的转换分类 java的数据类型 Java数类型主要分为两大分类:内置数据类型和引用类型。内置数据类型就是本文所提到的基本数据类型;...

    Java基本数据类型的转换

    要解释Java数据类型的转换,可以从两个方面来阐述:
    1. Java中的数据类型
    2. 数据类型的转换分类

    java的数据类型

    Java数类型主要分为两大分类:内置数据类型和引用类型。内置数据类型就是本文所提到的基本数据类型;引用类型大多数是指对象类型,比如我们熟知的String类型。

    Java中的八大基本类型分别为:byte、short、int、long、float、double、boolean和char。

    类型转换

    类型转换分为自动类型转换和强制类型转换,自动类型转换是隐式转换,当基本数据类型的小范围向大范围转换时,进行数据类型的隐式转换,不会发生数据溢出,这些是有编译器自己将数据类型进行转换。
    强制类型转换是从范围大的向范围小的数据进行转换,这时编译器不会自动地进行转换,那么徐娅我们在代码中表示出来,格式如下(如下代码):
    数据类型1 数据类型1的数据= (数据类型1) 数据类型2的数据

         int intDate=100;
         short shoryDate=(short)intDate;
    

    但是需要注意的是,数据类型2与数据类型1是存在关系的,并且数据类型2的数据在逻辑上不能超过数据类型1的范围。

    示例

    Java中的boolean不能进行数据类型转换,其他类型可以进行类型转换,类型范围大小为:
    byte < short < char < int < long < float < double

    系统中默认的是int类型,在进行运算时会将数据范围小的类型转换成int类型然后在计算;但是如果只是定义7种类型进行赋值,不会发生类型转换。

    以下展示这些类型转换的示例:

    1. byte与int类型转换
      显示转换

      byte byteDate=1024;
      byteDate=(int)(1+1);
      

      隐式转换

       int intDate=100;
       intDate=(byte)(1+1);
      

      结论:只要数据不超过byte的数据范围,byte数据和int数据能够进行任意转换,无需强制转换。但是如果数据范围大于byte的范围,那么编译将失败,如果需要编译成功需要加上强制转换,这样虽然可以编译成功,但是得不到我们期望的值。

    2. long和int类型转换

         long longDate=12;
         int intDate=(int)longDate;
         System.out.println(intDate);
    

    12是int类型,隐式转换成long类型;当long类型需要转换成int类型时,不管是否超出int数据范围,都需要进行强制转换,否则会报编译错误。

    展开全文
  • 隐式转换:  下面代码是以下意思:两个byte数据类型进行运算,结果为int数据类型。 先说结论:   (byte,short)<int<long<float<double;   一个运算只涉及byte,short时,结果就会转换成int; ...

    (Java8无法实现以下代码,建议使用Java14)

    隐式转换:
     下面代码是以下意思:两个byte数据类型进行运算,结果为int数据类型。

    先说结论:
      (byte,short)<int<long<float<double;
      一个运算只涉及byte,short时,结果就会转换成int;
      如果涉及到其他运算,按照上面的关系结果转换成大的数据类型。
      下面是一些代码实例

    public class TypeWay {
        public static void main(String[] args) {
            byte b1 = 1, b2 = 2;
            System.out.println(getType(b1+b2));
        }
        public static String getType(Object a){
            return a.getClass().toString();
        }
    }
    
    运行结果:class java.lang.Integer
    

     下面代码的意思是:一个byte数据类型和一个short数据类型运算,结果为int数据类型。

    public class TypeWay {
        public static void main(String[] args) {
            byte b1 = 1;
            short b2 = 2;
            System.out.println(getType(b1+b2));
        }
        public static String getType(Object a){
            return a.getClass().toString();
        }
    }
    
    结果为:class java.lang.Integer
    

    下面的代码意思是:一个int和long数据类型运算,结果为long数据类型。

    public class TypeWay {
        public static void main(String[] args) {
            int b1 = 1;
            long b2 = 2;
            System.out.println(getType(b1*b2));
            System.out.println("go and try");
        }
        public static String getType(Object a){
            return a.getClass().toString();
        }
    }
    
    结果为:class java.lang.Long
    

    下面代码的意思是:一个int数据类型和double数据类型运算,运算结果doule数据类型。

    public class TypeWay {
        public static void main(String[] args) {
            int b1 = 1;
            double b2 = 2.0;
            System.out.println(getType(b1*b2));
            System.out.println("go and try");
        }
        public static String getType(Object a){
            return a.getClass().toString();
        }
    }
    
    结果为:class java.lang.Double
    

    下面的代码意思是:一个float和double数据类型运算,结果为double数据类型。

    public class TypeWay {
        public static void main(String[] args) {
            float b1 = 1.0f;
            double b2 = 2.0;
            System.out.println(getType(b1*b2));
            System.out.println("go and try");
        }
        public static String getType(Object a){
            return a.getClass().toString();
        }
    }
    
    结果为:class java.lang.Double
    

    显示转换
    直接在数据前面加上你的转换数据类型的相应函数即可。但是不支持将高级数据类型转换成低级的数据类型。

    下面是一些实例:
    高数据类型不能转换成高数据类型。

    public class TypeWay {
        public static void main(String[] args) {
            int b1 = 1;
            int b2 = 2;
            System.out.println(getType((byte)b1*b2));
    
        }
        public static String getType(Object a){
            return a.getClass().toString();
        }
    }
    
    结果是:class java.lang.Integer
    

    低数据类型转换成高数据类型:

    public class TypeWay {
        public static void main(String[] args) {
            int b1 = 1;
            int b2 = 2;
            System.out.println(getType((long)b1*b2));
    
        }
        public static String getType(Object a){
            return a.getClass().toString();
        }
    }
    
    结果是:class java.lang.Long
    
    展开全文
  • byte→short(char)→int→long→float→double(这里指的是只有前面的数据类型能随便转换成后面的) —实际开发中这样的类型转换很多,但没有为这种转换提供专门的语法,都是由虚拟机自动完成。 3、例子: byte b = ...

    一、隐式类型转换

    隐式类型转换也叫做自动类型转换
    1、规则:
    从存储范围小的类型到存储范围大的类型。

    2、转换方向:
    byte→short(char)→int→long→float→double(这里指的是只有前面的数据类型能随便转换成后面的)
    —实际开发中这样的类型转换很多,但没有为这种转换提供专门的语法,都是由虚拟机自动完成。

    3、例子:
    byte b = 10;short sh = b;这里在赋值时,JVM首先将b的值转换为short类型,然后再赋值给sh。

    二、显式类型转换

    显式类型转换也叫做强制类型转换
    1、规则:
    从存储范围大的类型到存储范围小的类型。

    2、转换方向:
    double→float→long→int→short(char)→byte
    强制类型转换通常都会存储精度的损失,所以使用时需要谨慎。
    —需要在被转换值的前面添加个括号,括号里面写的是希望得到的数据类型。

    3、例子:
    int m = 1234;
    byte b = (byte)m;//-46
    解析:
    整数强制转换为整数时取数字的低位,例如int类型的变量转换为byte类型时,则只取int类型的低8位(也就是最后一个字节)的值。
    则m的值还是12345,而b的值为-10。b1的计算方法如下:m的值转换为二进制是10011010010,取该数字低8位的值作为b的值,则b
    的二进制值是11010010,按照机器数的规定,最高位是符号位,1代表负数,在计算机中负数存储的是补码,则该负数的原码是10101110,
    该值就是十进制的-46。

    附:
    补码算得原码:—百度百科
    算法1: 补码=原码取反再加1的逆运算
    10010110是补码,应先减去1变为反码,得10010101;
    由反码取得源码即除符号位外其他为按位取反,得11101010,即十进制数的-106

    算法2:负数补码速算法,由最低位(右)向高位(左)查找到第一个1与符号位之间的所有数字按位取反的逆运算
    10010110是补码,符号位与最后一个1之间的所有数字按位取反,得11101010

    注意:
    +=具有强转效果(short s = 1;s = s + 1;s += 1;前面的s=s+1会报错,因为s+1会先转换成int类型,然后再赋值给short类型,这样可能数据丢失;s+=1具有强转效果,相当于s = (short)(s+1),所以正确)

    展开全文
  • 数据类型的转换可以分为隐式转换(自动类型转换)和显式转换(强制类型转换)两种。 隐式转换 自动类型转换的实现需要同时满足两个条件:①两种数据类型彼此兼容,②目标类型的取值范围大于源数据类型(低级类型...
  • 转载至互联网IT信息的博客...    (1)常用基本类型汇总  八种基本类型汇总    八种基本类型的字节空间和应用场景 ... byte数据类型是8位、有符号的,以二进制补码表示的整数;  最小值是-128(-2^7...
  • Java数据类型转换:隐式(自动)转换与强制转换

    万次阅读 多人点赞 2015-08-17 10:09:25
    一些初学JAVA的朋友可能会遇到JAVA数据类型之间转换的苦恼,例如,整数和float,double型之间的转换,整数和String类型之间的转换,以及处理、显示时间方面的问题等。下面笔者就开发中的一些体会介绍给大家。  ...
  • Java数据类型转换

    千次阅读 2016-08-30 20:33:38
    Java数据类型转换 在说明数据类型转换(下简称类型转换)之前,得先说明什么是数据,数据可不仅仅是一个值,而是包括描述数据的种类(数据类型)、值以及基于其类型基础上可进行的操作的集合。从类型A转换到类型B,...
  • * 类型转换:①隐式转换②强制转换 * 隐式转换:byte,short,char,首先byte,short,char默认转成int----int---如果有更大类型转成long---如果有更大类型转成float---如果有更大类型转成double */ public class Type...
  • 数据类型-转换-隐式转换和显式转换

    热门讨论 2021-01-05 10:00:16
    数据类型转换分为隐式转换和显式转换,根据不同的转换对象,来确定是那种类型的转换。 隐式转换:就是系统默认的、不需要加以声明就可以进行转换。 首先来说在程序语言中默认的类型,一般整数是int类型 ,浮点数...
  • Hive中数据类型隐式转换

    千次阅读 2020-06-07 21:55:57
    Java数据类型 TINYINT byte SMALINT short INT int BIGINT long BOOLEAN boolean FLOAT float DOUBLE double STRING string TIMESTAMP “”时间类型“” BINARY “字节数组” 集合数据类型...
  • 基本数据类型转换 为什么需要数据类型转换? 答:因为java是强类型语言,要求执行“赋值运算”和“算术运算”的类型保持一致 基本数据类型转换的两种方式 隐式类型转换(自动) 强制类型转换(手动) 哪些基本...
  • java中,隐式转换又称为 自动转换,取值范围从小的数据类型 转向 取值范围大的数据类型,由系统负责自动转换。 显式转换又叫强制转换,即取值范围大的数据类型 转向 取值范围小的数据类型 。 转换规则为: a ...
  • JAVA中显式类型转换隐式类型转换

    千次阅读 2018-07-27 16:00:05
    自动类型转换隐式类型转换),由系统自动完成的类型转换。从存储范围小的类型到存储范围大的类型。由于实际开发中这样的类型转换很多,所以Java语言在设计时,没有为该操作设计语法,而是由JVM自动完成。 转换...
  • 今天有人问了一个关于JAVA对象之间的显隐式转换问题。为详细解释一下该原理,故此写下本篇博客!最后又顺便写了下该容器的具体实现。 具体缘由 问 Question: 在一个容器里取出来时候 (没有定义泛型)为啥要...
  • java中我们经常会遇到要把一种数据类型转换为另一种数据类型。所以我们今天就来复习一下java基本数据类型之间的转换。 首先我们可以先来看这么一张图: 基本数据类型之间的转换 隐式转换:从表示范围小的类型...
  • Java基础——隐式转换vs强制转换

    万次阅读 多人点赞 2015-01-22 00:13:43
    在定义变量时,有许多要注意的问题,一不小心就会出现损失...定义长整型数据时,必须加后缀l或L  long l =123456789012345L  2.定义单精度类型时(7-8位有效数字),必须加后缀 f 或 F  float f = 12.5F  3. bo
  • 第二章 第13节Java语言基础(数据类型转换之隐式转换)
  • 一、自动类型转换(隐式类型转换) 整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型数据先转化为同一类型,然后进行运算。 转换从低级到高级。 自动转换有以下规律: ·小的类型自动转化为大的类型 ...
  • go语言的静态性体现在类型上,需要显示定义与显示转换,是一种强类型语言。 var str string = "hello world" 之所以下面这种写法也可以通过,是因为编译器在编译期间自动做了类型推断,编译器会对数据进行类型检查...
  • 1、Java数据类型之强制转换: class DataTypeConversion{ public static void main(String[] args){ int x = 3; byte b = 4; b = x + b; System.out.println(b); //输出结果报错,错误:可能损失精度 } } ...
  • 2、赋值表达式中,右边表达式的值自动隐式转换为左边变量的类型,并赋值给他。 3、函数调用中参数传递时,系统隐式地将实参转换为形参的类型后,赋给形参。 4、函数有返回值时,系统将隐式地将返回表达式类型转换为...
  • Java隐式类型转换

    千次阅读 2016-07-10 17:32:13
    public class Conver { public static void main(String[] args) { byte mybyte=127; int myint=150; float myfloat=452.12f; char mychar=10; double mydouble=45....System.out.println("byte类型和float类
  • java中显示类型转换隐式类型转换

    千次阅读 2015-09-06 22:11:13
    在定义变量时,有许多要注意的问题,一不小心就会出现...定义长整型数据时,必须加后缀l或L  long l =123456789012345L  2.定义单精度类型时(7-8位有效数字),必须加后缀 f 或 F  float f = 12.5F  3. bool
  • JAVA基础—数据类型转换 隐式类型转换 隐式类型转换:从低级类型到高级类型的转换,系统可以自动执行,因此我们无需进行任何操作。这叫做隐式类型转换。(不包括逻辑类型,字符类型) 类型按精度排序从低到高分别为...
  • 在平时使用java的时候,时常会发生数据类型转换的为题,有时候数据会不明不白转换为不是我们需要的类型,所以了解数据的转换是必要的,那么,数据的转换分为几类呢???,其实在java中,数据的转换分为两类,一类为...
  • java基本数据类型及类型转换

    千次阅读 2017-12-25 21:42:36
    java数据类型在大类上可分为基本数据类型和引用数据类型。这篇博文中则主要针对基本数据类型进行介绍和了解每种数据类型的特别范围以及针对各个数据类型之间的类型转换数据类型的分类结构: 基本数据类型 ...
  • 一:错误截图 二:解决 数据库里面的数据类型错了,应该是varchar,而我选了varbinary。太粗心了! 转载于:https://www.cnblogs.com/hongmaju/p/3648379.html
  • Python与Java的值类型转换(强制转换与隐式转换

    千次阅读 热门讨论 2017-12-14 12:11:16
    类型变量的类型与作用 https://blog.csdn.net/number1killer/article/details/80229122 用python打印三角形和阶梯 https://blog.csdn.net/number1killer/article/details/78207842 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 62,535
精华内容 25,014
关键字:

java数据类型隐式转换

java 订阅