java的自动类型转换和强制类型转换

一、自动类型转换

在 Java 程序中,不同的基本数据类型的数据之间经常需要进行相互转换。例如:

代码中 int 型变量 score1 可以直接为 double 型变量 score2 完成赋值操作,运行结果为: 82.0 

这种转换称为自动类型转换

当然自动类型转换是需要满足特定的条件的:目标类型大于元类型

二、强制类型转换

当程序中需要将 double 型变量的值赋给一个 int 型变量,该如何实现呢?

显然,这种转换是不会自动进行的!因为 int 型的存储范围比 double 型的小。此时就需要通过强制类型转换来实现了。

语法:( 数据类型 ) 数值

运行结果:

可以看到,通过强制类型转换将 75.8 赋值给 int 型变量后,结果为 75,数值上并未进行四舍五入,而是直接将小数位截断。

明白了吧,强制类型转换可能会造成数据的丢失哦,小伙伴们在应用时一定要慎重哦!

时间: 2024-12-25 20:12:11

java的自动类型转换和强制类型转换的相关文章

自动类型转换、强制类型转换、作用域、整型表数范围

一.变量的作用域 测试代码: public class Test1 { private static int value = 1; // 全局变量 private static int temp = 0; // 全局变量 public static void main(String[] args) { int value = 2; // 局域变量覆盖全局变量 System.out.println(value); // 输出的是局域变量,全局变量被屏蔽 System.out.println(tem

JAVA-初步认识-第二章-自动类型提升&强制类型转换

一. 深入理解变量 在之前的讲解中,我们谈论的都是定义不同类型的变量时要注意的问题.这一节中,我们将变量投入运算,探索在运算过程中,应该遵守的规则. 在这里对上一节<变量的基本演示>做一个小结,主要有三点.直接书写数字常量时,系统会给常量一个默认的类型,如int和double,当书写的常量赋值给定义好类型的变量时,就会产生错误.还有就是书写的常量和本身默认的类型起冲突.最后一点就是在书写源程序的过程中,一定要采用英文字符. 二. 变量的运算规则 运算的两端都是相同类型才可以,不然无法进行运算.

c#小灶——自动类型转换和强制类型转换

前面已经认识了不同的数据类型,你们有没有尝试过让不同的数据类型进行运算呢? int a = 1; double b = a; Console.WriteLine(b); 运行结果是:1 我们把一个整型的变量赋值给了一个浮点型的变量,可以正常的输出,如果我们把一个浮点型的变量赋值给一个整型的变量呢? double a = 1; int b = a; Console.WriteLine(b); 这样就会报错. 为什么呢?因为我们之前说过,变量就像一个容器,里面存放着变量的值.而数据类型就相当于容器的

JAVA中对null进行强制类型转换(null可以强转为任意对象,并执行对象的静态方法)

今天很好奇,对null进行强转会不会抛错.做了如下测试得到的结果是, 如果把null强转给对象,是不会抛异常的,本身对象是可以为null的. 但是如果是基本类型,比如 int i = (Integer)obj的强转,其实内部会调用intvalue方法去赋值给基本类型,所以这时候是会报错的. 代码如下 Object obj = null;Integer s1 = (Integer)obj; 上面能正常执行,即把null赋值给一个对象或者强行类型转换赋值给对象都是没有问题的.如果s1是 int的基本

Java中如何使用非强制类型转换把字符串转换成int类型

①强制类型转换代码如下: String string = "123456"; int a,b = 0; @Test public void String2Int1() { //方法1 try { a = Integer.parseInt(string); } catch (Exception e) { e.printStackTrace(); } //方法2 try { b = Integer.valueOf(string).intValue(); } catch (Exception

数据类型转换之强制类型转换

二.强制类型转换 1. 特点:代码需要进行特殊的格式处理,不能自动完成. 2. 规则:数据范围从大到小. 3. 格式:范围小的类型 范围小的变量名 = (范围小的类型) 原本范围大的数据; 强制类型转换代码: 1 public class Demo02DataType { 2 public static void main(String[] args) { 3 // 左边是int类型,右边是long类型,不一样 4 // long --> int,不是从小到大 5 // 不能发生自动类型转换!

Java自动类型转换和强制类型转换

1.容量小的数据类型可以自动转成容量大的数据类型(注:容量大指的是数据类型表征的范围大.) 2.数据自动类型转换: cast:转型 long型可以自动转换成float但是可能丢失精度. int型转换为char型需要强制转型. 但是char型转成int是不需要强制转换. 3.表达式中类型提升问题.

9.Java数据类型转换(自动转换和强制转换)

数据类型的转换,分为自动转换和强制转换.自动转换是程序在执行过程中“悄然”进行的转换,不需要用户提前声明,一般是从位数低的类型向位数高的类型转换:强制类型转换则必须在代码中声明,转换顺序不受限制. 自动数据类型转换 自动转换按从低到高的顺序转换.不同类型数据间的优先关系如下:     低--------------------------------------------->高     byte,short,char-> int -> long -> float -> do

Java初学者:基本数据类型的强制类型转换

前文书我们讲到了基本的输入输出,今天我们再回到基本的数据类型那里,但是我们不会赘述之前的内容,我们今天讲一讲下强制类型转换. 首先我们需要明确一下概念,明确一下什么叫作强制类型转换,强制类型转换就是以强制的手段把一个数据类型的数据转换成其他数据类型的数据. 举个例子,假设我们有个整型数据9,我们要强制把它转换成浮点型数据,我们知道,如果不考虑取值范围的话,浮点型数据就是数学里面的小数,大家觉得转换以后会怎么样呢?这不难猜测,应该会变成9.0,事实也是如此.再比如,我们有个浮点型数据6.7,如果我