java--基本数据类型的转换(自动转换)

  概念:Java中,经常可以遇到类型转换的场景,从变量的定义到复制、数值变量的计算到方法的参数传递、基类与派生类间的造型等,随处可见类型转换的身影。Java中的类型转换在Java编码中具有重要的作用。
首先,来了解下数据类型的基本理解:数据是用来描述数据的种类,包括其值和基于其值基础上的可进行的操作集合。

  Java中数据类型主要分为两大类:基本数据类型和引用数据类型。
基本数据类型共有8种,分别是:布尔型boolean, 字符型char和数值型byte/short/int/long/float/double。由于字符型char所表示的单个字符与Ascii码中相应整形对应,因此,有时也将其划分到数值型中。引用类型具体可分为:数组、类和接口。因此,本文中Java类型转换的总结也将分为基本数据类型和引用数据类型两个方面展开。

   自动转换

  大小排列:byte----->shorrt----->int----->long----->float----->double类型依次从小到大排列

  整形,实形,字符类型数据可以混合运算,运算中,不同类型的数据先转化为同类型,然后进行运算,转换从低级到高级,转换前于转换后的数据类型如下

我们来做一个自动转换的案列

char类型能不能转换为int类型呢?

 1 package pkg1;
 2
 3 public class Test1{
 4     public static void main(String args[]){
 5         //定义一个char类型,字符和int类型可以自动转换
 6         char c = ‘a‘;
 7         int i = c ;
 8
 9         System.out.println(i);
10
11     }
12 }

边缘看运行效果:

可以看到char是可以自当转换成int类型的,但是输出的结果却是97,其实字符和整数有一种对应关系那就是ASCII表

看看刚刚我们得出的小a对应的数字就是97.

  如果两个int类型计算会不会自动提升类型。
 1 package pkg1;
 2
 3 public class Test1{
 4     public static void main(String args[]){
 5
 6         //如果两个int类型计算会不会自动提升类型
 7         int a = 2147483647;
 8         int b = 12;
 9
10
11         int d = a + b;
12         System.out.println(d);
13     }
14 }

可以看到编译不报错,但是结果,是为负数,这表示数字已经超过了int类型的长度,但并不会自动转换

总结:int,long,float,double自身来计算的时候没有类型的提升,如果超出范围了就会出现精度的损失 。

  int类型和float类型的计算转换成float
 1 package pkg1;
 2
 3 public class Test1{
 4     public static void main(String args[]){
 5
 6         //int类型和float类型的计算转换成float
 7         float f = 1.4f;
 8         int y = 1 ;
 9         int f1 = f + y ;
10
11         System.out.println(f1);
12
13     }
14 }

最后用int类型接收,编译是不成功的 ,在转换时一定要向大的类型转换才可以。所以一定要是float类型

问题一:

是可以的,因为小数的常量默认值是double类型的

问题二:

可以,为什么呢?

12.5f是表示float类型的常量,它是占4个字节,double类型占8个, 就好比大鱼吃小鱼一样,可以将小的吃掉。这个类型也是一样的。

总结:小的表数范围是常量或者变量可以自动的向大的表数范围的类型转换,包括int类型向double类型转换一样。大的表述范围的值不能自动的赋值小的表述范围的变量。

原文地址:https://www.cnblogs.com/xym15079750872/p/10661889.html

时间: 2024-10-14 04:56:05

java--基本数据类型的转换(自动转换)的相关文章

Java中数据类型及其之间的转换

Java中数据类型及其之间的转换 基本的数据类型 基本类型有以下四种: 1)int长度数据类型有:byte(8bits).short(16bits).int(32bits).long(64bits). 2)float长度数据类型有:单精度(32bits float).双精度(64bits double),JAVA中将小数默认为double类型,若要定义float需在数据后面用f声明: 3)boolean类型变量的取值有:ture.false 4)char数据类型有:unicode字符,16位 对

Java中数据类型及其之间的转换(转)

Java中数据类型及其之间的转换 基本的数据类型 基本类型有以下四种: 1)int长度数据类型有:byte(8bits).short(16bits).int(32bits).long(64bits). 2)float长度数据类型有:单精度(32bits float).双精度(64bits double),JAVA中将小数默认为double类型,若要定义float需在数据后面用f声明: 3)boolean类型变量的取值有:ture.false 4)char数据类型有:unicode字符,16位 对

java类型转换详解(自动转换和强制转换)

自动转换 class Hello { public static void main(String[] args) { //自动转换 int a = 5; byte b = 6; int c = a + b; System.out.println(c); } } a是int类型,b是byte类型 当二者进行加法运算时(根据同类型相加结果还是同类型) 由于int的范围比byte的取值范围大这个时候jvm会自动将b转换成int类型 强制转换 //强制转换 int a = (int)8.8; 强制转换

JAVA基本数据类型及之间的转换

一.数据类型  1.布尔型(boolean) :true/false,不可以以0或非0的数字代替:不能进行数据之间的转换.   2.整数类型 ** 整型默认为int型,而long类型表示的范围要超出int表数范围,所以,声明long类型时,常量后要加L(l). 如:long l1=12345678  //  数值在int范围之内,还不会出错 long l2=8888888888;//  数值在int范围之外,会出错 long l3=8888888888L; //正确 3.浮点类型:      *

Java复习之整型自动转换成浮点型

class DataCon { public static void main(String args[]) { int nop1=2; float fop2=2.25f; float fResult=nop1*fop2; System.out.println("Result:"+fResult); } }

javascript数据类型及类型的转换总结

javascript 是浏览器客户端脚本语言,要想让网页与后台程序更好的交互效果,这里我们详细了解javascript 数据类型及类型的转换 1,数据类型 number number类型 数字类型,浮点类型 2,字符串类型 string string 类型 3,布尔类型 true   false 4,undefine类型 定义了变量没有赋值 5,数据对象类型 object 数据类型转换分为两种  自动转换,强制转换 自动转换也称着隐形转换 强制转换 paresInt()  paresString

转载 Java基本数据类型

Java语言是静态类型的(statical typed),也就是说所有变量和表达式的类型再编译时就已经完全确定.由于是statical typed,导致Java语言也是强类型(Strong typed)的.强类型意味着每个变量都具有一种类型,每个表达式具有一种类型,并且每种类型都是严格定义的,类型限制了变量可以hold哪些值,表达式最终产生什么值.同时限制了这些值可以进行的操作类型以及操作的具体方式.所有的赋值操作,无论是显式的还是在方法调用中通过参数传递,都要进行类型兼容性检查. 1. 数据类

面试准备(四)Java基本数据类型

Java语言是静态类型的(statical typed),也就是说所有变量和表达式的类型再编译时就已经完全确定.由于是statical typed,导致Java语言也是强类型(Strong typed)的.强类型意味着每个变量都具有一种类型,每个表达式具有一种类型,并且每种类型都是严格定义的,类型限制了变量可以hold哪些值,表达式最终产生什么值.同时限制了这些值可以进行的操作类型以及操作的具体方式.所有的赋值操作,无论是显式的还是在方法调用中通过参数传递,都要进行类型兼容性检查. 1. 数据类

【转】Java基本数据类型

原文网址:http://blog.csdn.net/bingduanlbd/article/details/27790287 Java语言是静态类型的(statical typed),也就是说所有变量和表达式的类型再编译时就已经完全确定.由于是statical typed,导致Java语言也是强类型(Strong typed)的.强类型意味着每个变量都具有一种类型,每个表达式具有一种类型,并且每种类型都是严格定义的,类型限制了变量可以hold哪些值,表达式最终产生什么值.同时限制了这些值可以进行

[Java 基础]数据类型

基本类型和引用类型 Java中的数据类型有两类: l  基本类型(又叫内置数据类型,或理解为值类型) l  引用类型 基本类型和引用类型的区别 1.  从概念方面来说 基本类型:变量名指向具体的数值 引用类型:变量名指向存数据对象的内存地址 2.  从内存构建方面来说 基本类型:变量在声明之后java就会立刻分配给他内存空间 引用类型:它以特殊的方式(类似C指针)指向对象实体(具体的值),这类变量声明时不会分配内存,只是存储了一个内存地址. 3.  从使用方面来说 基本类型:使用时需要赋具体值,