「java强制转型」java 强制转化

博主:adminadmin 2022-11-30 17:27:08 52

本篇文章给大家谈谈java强制转型,以及java 强制转化对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

Java中的强制类型转换是如何转换的?

java中数据类型的强制转换是通过强制转换语句完成的,强制转换语句的格式为“目标数据类型  变量 = (目标数据类型) 数据;”。下面给出例子:

1、定义两个字节数据类型a、b、c,分别赋予1和2和a+b的值,进行加法运算的式子a+b=3,得出的结果“3”将会被编译环境判定为整形数据,把这个整形数据赋值给c,系统将会报错,这样就需要用到格式为“目标数据类型  变量 = (目标数据类型) 数据;”的强制转换语句。

2、根据强制转换语句的格式,易得“byte c = (byte)(a+b);”;

3、这样就把整形数据的“3”赋值给字节数据类型的c了,其中完成数据的强制类型转换。

扩展资料:

基本类型 转换原则:

1、类型转换主要在在 赋值、方法调用、算术运算 三种情况下发生。

a、赋值和方法调用 转换规则:从低位类型到高位类型自动转换;从高位类型到低位类型需要强制类型转换:

(1)布尔型和其它基本数据类型之间不能相互转换;

(2)byte型可以转换为short、int、、long、float和double;

(3)short可转换为int、long、float和double;

(4)char可转换为int、long、float和double;

(5)int可转换为long、float和double;

(6)long可转换为float和double;

(7)float可转换为double;

b、算术运算 中的类型转换:

1、基本就是先转换为高位数据类型,再参加运算,结果也是最高位的数据类型;

2、byte short char运算会转换为Int;

(1)如操作数之一为double,则另一个操作数先被转化为double,再参与算术运算。

(2)如两操作数均不为double,当操作数之一为float,则另一操作数先被转换为float,再参与运算。

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

(4)如两操作数均不为double、float或long,则两操作数先被转换为int,再参与运算。

特殊:

(1)如采用+=、*=等缩略形式的运算符,系统会自动强制将运算结果转换为目标变量的类型。

(2)  当运算符为自动递增运算符(++)或自动递减运算符(--)时,如果操作数为byte,short或char类型不发生改变;

参考资料:百度百科 - java关键字

Java什么情况下强转型 编译不报错,运行会报错?

向下强制转型——把一个父类(或祖先类)引用强制转换成一个子类(或孙类)引用,是不会发生编译错误的。

但如果这个父类(或祖先类)引用实际引用(指向)的对象,不是一个子类(或孙类)对象,运行时就会抛出异常。

举例来说,如果鸟类和狗类都是动物类的子类。

如果有一个动物类的引用a引用了一个鸟类对象,则此时将a强制转换成狗类引用,就不会报编译错误,但运行时会抛出类型转换异常。

因为a这个装动物的笼子,实际上关的是一只鸟,而需要的动物是一只狗。

Java强制数据类型转换

规则可不少,挺乱的其实:

强制数据类型转换: int nowC = (int)c;

还可以这样,使用intValue方法,返回一个int值:

Double d = 5 / 9.0 * (f - 32);

int nowC = d.intValue();

Double类是基本数据类型double所对应的包装类。

基本数据类型转换的规则:

Java中基本数据类型共有8种,其中boolean类型不能转换为其它类型,其它类型也不能转换为boolean型

除了boolean类型,还有7种,按照它们的容量(也就是表数范围,就是能表示的数的大小范围,比如char是0——65535)的大小,从小到大,排序依次为:

byte short char int long float double

1.容量小的向容量大的转换,可以自动转换,比如可以直接将一个int类型赋值给double:

double d = 34;

2.容量大的向容量小的转换,必须强制类型转换,就是你上面的那种形式,比如:

double c = 5/9.0 *(f - 32);

int nowC = (int)c;

3.整数类型常量默认为int类型,比如17

4.浮点类型常量默认为double类型,比如3.14

5.在多种数据类型混合运算时,容量小的自动转换为整个表达式中容量最大的,然后再进行计算,比如:

int i = 9; float f = 4f; double d = 3.14; double dd = i+f+d;

此时,i和f都各自先转换成double,在进行+运算。

6.在多种数据类型混合运算时,byte short char 3者不会互相转换,他们各自转换为int再进行计算

7.在有些时候,容量小的会自动提升为容量大的,比如方法重载传参数时候,

但是byte 和 short 不会自动提升为char,其它类型按照我上面所述的顺序提升。

差不多就这些,不明白补充,另外需要注意的是强转虽然编译没问题,但是运行时,有可能会数据溢出,损失精度

「java强制转型」java 强制转化

在java中什么是强制类型转换!

1 ) 整数 int 转换成字串 String , 有三种方法 :

String s = String.valueOf(i);

String s = Integer.toString(i);

String s = "" + i;

2 ) String 转 int

int i = Integer.parseInt([String]);

i = Integer.parseInt([String],[int radix]);

int i = Integer.valueOf(my_str).intValue();

3 ) 布尔类型 转 String

1. 第一种方法

boolean bool = true;

String s = new Boolean(bool).toString();//将bool利用对象封装器转化为对象

2. 第二种方法

boolean bool = true;

String s = String.valueOf( bool );

4 ) String 转 Date

1 . 导入 java.util.Date date=null;

2 . date=java.sql.Date.valueOf(String s);

5 ) 数字类型间的转换

转型有两种: 向上转型和向下转型(强制转型)

两种分别如下:

第一种是向上转型

对于基础数据类型 , 可以自动转型 ,比如:

int a = 10;

long b = a;

这里就是把int型转成了long型 , 因为 long范围比int大 , 这样的转型不会有任何影响 , 所以可以自动转型

第二种是向下转型 , 也就是强制

这种需要强转 , 比如

long a = 10 ;

int b = (int) a;

通过 (int)可以强制转型 , 但是这样会丢失精度 , 比如a如果超过了b的范围 , 那么强转成int型, 只会等于int的最大值

又如 : int a = ( int ) 8.8 ;

如果对编程感兴趣可以来我这个看看,希望对您有所帮助!~

java强制转型的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java 强制转化、java强制转型的信息别忘了在本站进行查找喔。

The End

发布于:2022-11-30,除非注明,否则均为首码项目网原创文章,转载请注明出处。