java中什么是显式类型转换和隐式类型转换?

java中什么是显式类型转换和隐式类型转换?

自动类型转换,也称隐式类型转换,是指不需要书写代码,由系统自动完成的类型转换。由于实际开发中这样的类型转换很多,所以Java语言在设计时,没有为该操作设计语法,而是由JVM自动完成。
转换规则
从存储范围小的类型到存储范围大的类型。
具体规则为:
byte→short(char)→int→long→float→double
也就是说byte类型的变量可以自动转换为short类型,示例代码:
byte b = 10;
short sh = b;
这里在赋值时,JVM首先将b的值转换为short类型,然后再赋值给sh。
在类型转换时可以跳跃。示例代码:
byte b1 = 100;
int n = b1;
l 注意问题
在整数之间进行类型转换时,数值不发生改变,而将整数类型,特别是比较大的整数类型转换成小数类型时,由于存储方式不同,有可能存在数据精度的损失。
强制类型转换,也称显式类型转换,是指必须书写代码才能完成的类型转换。该类类型转换很可能存在精度的损失,所以必须书写相应的代码,并且能够忍受该种损失时才进行该类型的转换。
转换规则
从存储范围大的类型到存储范围小的类型。
具体规则为:
double→float→long→int→short(char)→byte
语法格式为:
(转换到的类型)需要转换的值
示例代码:
double d = 3.10;
int n = (int)d;
这里将double类型的变量d强制转换成int类型,然后赋值给变量n。需要说明的是小数强制转换为整数,采用的是“去1法”,也就是无条件的舍弃小数点的所有数字,则以上转换出的结果是3。整数强制转换为整数时取数字的低位,例如int类型的变量转换为byte类型时,则只去int类型的低8位(也就是最后一个字节)的值。
示例代码:
int n = 123;
byte b = (byte)n;
int m = 1234;
byte b1 = (byte)m;
则b的值还是123,而b1的值为-46。b1的计算方法如下:m的值转换为二进制是10011010010,取该数字低8位的值作为b1的值,则b1的二进制值是11010010,按照机器数的规定,最高位是符号位,1代表负数,在计算机中负数存储的是补码,则该负数的原码是10101110,该值就是十进制的-46。
l 注意问题
强制类型转换通常都会存储精度的损失,所以使用时需要谨慎。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-04-02
显示类型转换就是比如 String 类型转为int类型,Integer.paseInt("123"),这就是显示类型转换,但是JAVA会自动对int 及Integer之间做隐式的转换,前面是数据类型后面是定义的是对象,运行的时候java会自动处理之间的转换,为隐式转换
第2个回答  推荐于2018-02-25
比如说有一个类Person,然后有一个类Man继承了Person,
然后说得通俗一点,人有很多属性,人的属性男人都有,但是男人有的属性不是所有人都有,
这也就意味着你可以说一个男人是人,但是你不能说一个人就是男人,对不对??
转换成代码的话就是
有一个男人:Man m=new Man()
男人说成是人的时候:我们不需要去显示的说明,因为男人首先是人,像下面这样,
Person p =m;这就是隐式转换类型
人说成是男人的时候:人不会总是男人,如果我们硬要让他是男人的话,就要显示的说明,

Man m=(Man)p;这就是显示转换类型
现在应该理解了吧……本回答被网友采纳

java中什么是显式类型转换和隐式类型转换?
自动类型转换,也称隐式类型转换,是指不需要书写代码,由系统自动完成的类型转换。由于实际开发中这样的类型转换很多,所以Java语言在设计时,没有为该操作设计语法,而是由JVM自动完成。转换规则 从存储范围小的类型到存储范围大的类型。具体规则为:byte→short(char)→int→long→float→double 也就是说...

数据类型转换分为哪两种
隐式类型转换,也被称为自动类型转换,是编程语言在编译或运行时自动执行的数据类型转换。这种转换通常发生在不同数据类型的值进行运算时,为了确保运算的正确执行,编译器或解释器会自动将一种数据类型转换为另一种数据类型。例如,在Python中,如果一个整数和一个浮点数进行加法运算,整数会被隐式地转换...

...显式和隐式的操作具体是怎么回事? 什么叫做显式,什么叫做隐式?_百 ...
显式转换:就是要你自己明确写出来,比如说把人转化为男人 隐式转换:就是不需要你自己明确标明,Java虚拟机默认就可以转的,比如要把男人转化为人

Java面试中都会遇到哪些问题
答案:隐式的类型转化就是简单的一个类型赋值给另一个类型,没有显式的告诉编译器发生了转化。并不是所有的类型都支持隐式的类型转化。 代码示例: 面试题NO.21-NO.25 问题:sizeof是Java的关键字吗? 答案:不是。 问题:native方法是什么? 答案:native方法是非Java代码实现的方法。 问题:在System.out.println()...

Java中整数类型转换
在Java中,类型转换分为两种:一是隐式类型转换,二是强制类型转换。隐式类型转换是低精度数据向高精度数据转换,系统自动执行,不需要编程人员手动实现。强制类型转换是高精度数据向低精度数据转换,需要编程人员手动实现转换。精度由低到高的顺序为byte<short<int <long<float<double 所以在楼主的第一个...

java中什么是显示调用和隐式调用?
public Person (){} public Person (String name){ system.out.println(name);} } class Student extends Person { public Student{ super ("hello world");} public Student{ this();} public Student{ } } 了解了这段代码的输出情况,你也就是了解了显示调用和隐式调用,这里出现的关键字...

java的类初始化,隐式,显示,什么意思
1.Java对象何时被初始化 Java对象在其被创建时初始化,在Java代码中,有两种行为可以引起对象的创建。其中比较直观的一种,也就是通常所说的显式对象创建,就是通过new关键字来调用一个类的构造函数,通过构造函数来创建一个对象,这种方式在java规范中被称为“由执行类实例创建表达式而引起的对象创建”...

Java 基本数据类型 - 四类八种
在数据类型间转换时,Java为我们提供了两种策略:自动转换(隐式)和强制转换(显式)。通常,从低精度类型向高精度类型转换不会丢失精度,但int和long到float\/double时,可能因溢出或浮点数舍入导致精度损失。类型提升的魔法<\/:在表达式计算中,Java会将byte, short, char提升为int,其他类型则自动升级...

java常用数据判空、比较和类型转换
类型转换是数据处理的另一部分。自动类型转换(显示转换)通常在范围小的类型向大类型转换时进行,不会出错;而强制类型转换(隐式转换)则在大类型向小类型转换时,需谨慎使用,以防精度损失或溢出。数值类型转字符串,可以利用String.valueOf()或+运算符实现,而字符串转数值则通常在需要进行数学运算时...

Java中的强制类型转换是如何转换的?
java中数据类型的强制转换是通过强制转换语句完成的,强制转换语句的格式为“目标数据类型 变量 = (目标数据类型) 数据;”。下面给出例子:1、定义两个字节数据类型a、b、c,分别赋予1和2和a+b的值,进行加法运算的式子a+b=3,得出的结果“3”将会被编译环境判定为整形数据,把这个整形数据赋值...

相似回答