Java基础-数据类型及其之间的转换
2014-08-28 20:16
501 查看
一、基本的数据类型
基本类型有以下四种:
1.int长度数据类型有:byte(8bits)、short(16bits)、int(32bits)、long(64bits);
2.float长度数据类型有:单精度(32bits float)、双精度(64bits double)。
java中将小数默认为double类型,也可以在double类型后添加后缀d或者D,若要定义float需在数据后面用f或者F声明,如果使用long类型,则必须加后缀l或者L;
3.boolean类型变量的取值有:true、false;
4.char数据类型有:unicode字符,16bits。一个char可以保存一个汉字。
8中基本类型对应的类类型:Byte、Short、Integer、Long、Float、Double、Boolean、Character。
基本的数据类型由低级到高级分别为:(byte、short、char)--int--long--float--doube。
ps:此处的“级别”是表示值得范围的大小。
二、数据类型之间的转换
分为以下几种情况:
1.低级到高级的自动类型转换;
2.高级到低级的强制类型转换(会导致溢出或丢失精度);
3.基本类型向类类型转换;
4.基本类型向字符串的转换;
5.类类型向字符串转换
三、基本数据类型之间的转换规则
1.在一个双操作数以及位运算等算术运算式中,会根据操作数的类型将低级的数据类型自动转换为高级的数据类型,分为以下几种情况:
1)只要两个操作数中有一个是double类型的,另一个将会被转换成double类型,并且结果也是double类型;
2)只要两个操作数中有一个是float类型的,另一个将会被转换成float类型,并且结果也是float类型;
3)只要两个操作数中有一个是long类型的,另一个将会被转换成long类型,并且结果也是long类型;
4)两个操作数(包括byte、short、int、char)都将会被转换成int类型,并且结果也是int类型。
2. 如果低级类型为char型,向高级类型(整型)转换时,会转换为对应ASCII码值,再做其它类型的自动转换。
3. 对于byte,short,char三种类型而言,它们是平级的,因此不能相互自动转换,可以使用下述的强制类型转换。
如: short i=99;
char c=(char)i;
System.out.println("output:"+c); //c,99为小写c的ascii码
4. 不能在布尔值和任何数字类型间强制类型转换;
5. 不同级别数据类型间的强制转换,可能会导致溢出或精度的下降;
6. 当字节类型变量参与运算,java作自动数据运算类型的提升,将其转换为int类型。
例如:byte b;
b=3;
b=(byte)(b*3);//必须声明byte。
四、包装数据类型与基本数据类型之间的转换
简单类型的变量转换为相应的包装类,可以利用包装类的构造函数。即:Boolean(boolean value)、Character(char value)、Integer(int value)、Long(long value)、Float(float value)、Double(double value) 而在各个包装类中,总有形为××Value()的方法,来得到其对应的简单类型数据。利用这种方法,也可以实现不同数值型变量间的转换,例如,对于一个双精度实型类,intValue()可以得到其对应的整型变量,而doubleValue()可以得到其对应的双精度实型变量。
1.字符串与其它类型间的转换
(1)其它类型向字符串的转换
①调用类的串转换方法:X.toString();
②自动转换:X+“”;
③使用String的方法:String.volueOf(X);
(2)字符串作为值,向其它类型的转换
①先转换成相应的封装器实例,再调用对应的方法转换成其它类型
例如,字符中“32.1”转换double型的值的格式为:new Float(“32.1”).doubleValue()。也可以用:Double.valueOf(“32.1”).doubleValue()
②静态parseXXX方法
例如:
String s = "1";
byte b = Byte.parseByte( s );
short t = Short.parseShort( s );
int i = Integer.parseInt( s );
long l = Long.parseLong( s );
Float f = Float.parseFloat( s );
Double d = Double.parseDouble( s );
③Character的getNumericValue(char ch)方法
具体可查阅api。
五、转换实例
1.基本类型向类类型转换
正向转换:通过类包装器来new出一个新的类类型的变量
Integer a= new Integer(2);
反向转换:通过类包装器来转换 int b=a.intValue();
通过类包装器——>基本数据类型
eg1:int i=Integer.parseInt(“123”)
说明:此方法只能适用于字符串转化成整型变量
eg2: float f=Float.valueOf(“123”).floatValue()
说明:上例是将一个字符串转化成一个Float对象,然后再调用这个对象的floatValue()方法返回其对应的float数值。
eg3: boolean b=Boolean.valueOf(“123”).booleanValue()
说明:上例是将一个字符串转化成一个Boolean对象,然后再调用这个对象的booleanValue()方法返回其对应的boolean数值。
eg4:double d=Double.valueOf(“123”).doubleValue()
说明:上例是将一个字符串转化成一个Double对象,然后再调用这个对象的doubleValue()方法返回其对应的double数值。
eg5: long l=Long.valueOf(“123”).longValue()
说明:上例是将一个字符串转化成一个Long对象,然后再调用这个对象的longValue()方法返回其对应的long数值。
eg6: char=Character.valueOf(“123”).charValue()
说明:上例是将一个字符串转化成一个Character对象,然后再调用这个对象的charValue()方法返回其对应的char数值。
2.基本类型向字符串的转换
正向转换: 如下:
System.out.println(""+2+3); // 双引号“""”把2转成字符串操作;
System.out.println(2+3);// 不存在转换。
System.out.println(2+3+"");// 前两个数值相加后,被“""”转成字符串。
System.out.println(2+""+3);// 同第一个。
输出显示为:23,5,5,23
3.类类型向字符串转换
正向转换:因为每个类都是object类的子类,而所有的object类都有一个toString()函数,所以通过toString()函数来转换即可
反向转换:通过类包装器new出一个新的类类型的变量
eg1: int i=Integer.valueOf(“123”).intValue()
说明:上例是将一个字符串转化成一个Integer对象,然后再调用这个对象的intValue()方法返回其对应的int数值。
eg2: float f=Float.valueOf(“123”).floatValue()
说明:上例是将一个字符串转化成一个Float对象,然后再调用这个对象的floatValue()方法返回其对应的float数值。
eg3: boolean b=Boolean.valueOf(“123”).booleanValue()
说明:上例是将一个字符串转化成一个Boolean对象,然后再调用这个对象的booleanValue()方法返回其对应的boolean数值。
eg4:double d=Double.valueOf(“123”).doubleValue()
说明:上例是将一个字符串转化成一个Double对象,然后再调用这个对象的doubleValue()方法返回其对应的double数值。
eg5: long l=Long.valueOf(“123”).longValue()
说明:上例是将一个字符串转化成一个Long对象,然后再调用这个对象的longValue()方法返回其对应的long数值。
eg6: char=Character.valueOf(“123”).charValue()
说明:上例是将一个字符串转化成一个Character对象,然后再调用这个对象的charValue()方法返回其对应的char数值。
基本类型有以下四种:
1.int长度数据类型有:byte(8bits)、short(16bits)、int(32bits)、long(64bits);
2.float长度数据类型有:单精度(32bits float)、双精度(64bits double)。
java中将小数默认为double类型,也可以在double类型后添加后缀d或者D,若要定义float需在数据后面用f或者F声明,如果使用long类型,则必须加后缀l或者L;
3.boolean类型变量的取值有:true、false;
4.char数据类型有:unicode字符,16bits。一个char可以保存一个汉字。
8中基本类型对应的类类型:Byte、Short、Integer、Long、Float、Double、Boolean、Character。
基本的数据类型由低级到高级分别为:(byte、short、char)--int--long--float--doube。
ps:此处的“级别”是表示值得范围的大小。
二、数据类型之间的转换
分为以下几种情况:
1.低级到高级的自动类型转换;
2.高级到低级的强制类型转换(会导致溢出或丢失精度);
3.基本类型向类类型转换;
4.基本类型向字符串的转换;
5.类类型向字符串转换
三、基本数据类型之间的转换规则
1.在一个双操作数以及位运算等算术运算式中,会根据操作数的类型将低级的数据类型自动转换为高级的数据类型,分为以下几种情况:
1)只要两个操作数中有一个是double类型的,另一个将会被转换成double类型,并且结果也是double类型;
2)只要两个操作数中有一个是float类型的,另一个将会被转换成float类型,并且结果也是float类型;
3)只要两个操作数中有一个是long类型的,另一个将会被转换成long类型,并且结果也是long类型;
4)两个操作数(包括byte、short、int、char)都将会被转换成int类型,并且结果也是int类型。
2. 如果低级类型为char型,向高级类型(整型)转换时,会转换为对应ASCII码值,再做其它类型的自动转换。
3. 对于byte,short,char三种类型而言,它们是平级的,因此不能相互自动转换,可以使用下述的强制类型转换。
如: short i=99;
char c=(char)i;
System.out.println("output:"+c); //c,99为小写c的ascii码
4. 不能在布尔值和任何数字类型间强制类型转换;
5. 不同级别数据类型间的强制转换,可能会导致溢出或精度的下降;
6. 当字节类型变量参与运算,java作自动数据运算类型的提升,将其转换为int类型。
例如:byte b;
b=3;
b=(byte)(b*3);//必须声明byte。
四、包装数据类型与基本数据类型之间的转换
简单类型的变量转换为相应的包装类,可以利用包装类的构造函数。即:Boolean(boolean value)、Character(char value)、Integer(int value)、Long(long value)、Float(float value)、Double(double value) 而在各个包装类中,总有形为××Value()的方法,来得到其对应的简单类型数据。利用这种方法,也可以实现不同数值型变量间的转换,例如,对于一个双精度实型类,intValue()可以得到其对应的整型变量,而doubleValue()可以得到其对应的双精度实型变量。
1.字符串与其它类型间的转换
(1)其它类型向字符串的转换
①调用类的串转换方法:X.toString();
②自动转换:X+“”;
③使用String的方法:String.volueOf(X);
(2)字符串作为值,向其它类型的转换
①先转换成相应的封装器实例,再调用对应的方法转换成其它类型
例如,字符中“32.1”转换double型的值的格式为:new Float(“32.1”).doubleValue()。也可以用:Double.valueOf(“32.1”).doubleValue()
②静态parseXXX方法
例如:
String s = "1";
byte b = Byte.parseByte( s );
short t = Short.parseShort( s );
int i = Integer.parseInt( s );
long l = Long.parseLong( s );
Float f = Float.parseFloat( s );
Double d = Double.parseDouble( s );
③Character的getNumericValue(char ch)方法
具体可查阅api。
五、转换实例
1.基本类型向类类型转换
正向转换:通过类包装器来new出一个新的类类型的变量
Integer a= new Integer(2);
反向转换:通过类包装器来转换 int b=a.intValue();
通过类包装器——>基本数据类型
eg1:int i=Integer.parseInt(“123”)
说明:此方法只能适用于字符串转化成整型变量
eg2: float f=Float.valueOf(“123”).floatValue()
说明:上例是将一个字符串转化成一个Float对象,然后再调用这个对象的floatValue()方法返回其对应的float数值。
eg3: boolean b=Boolean.valueOf(“123”).booleanValue()
说明:上例是将一个字符串转化成一个Boolean对象,然后再调用这个对象的booleanValue()方法返回其对应的boolean数值。
eg4:double d=Double.valueOf(“123”).doubleValue()
说明:上例是将一个字符串转化成一个Double对象,然后再调用这个对象的doubleValue()方法返回其对应的double数值。
eg5: long l=Long.valueOf(“123”).longValue()
说明:上例是将一个字符串转化成一个Long对象,然后再调用这个对象的longValue()方法返回其对应的long数值。
eg6: char=Character.valueOf(“123”).charValue()
说明:上例是将一个字符串转化成一个Character对象,然后再调用这个对象的charValue()方法返回其对应的char数值。
2.基本类型向字符串的转换
正向转换: 如下:
System.out.println(""+2+3); // 双引号“""”把2转成字符串操作;
System.out.println(2+3);// 不存在转换。
System.out.println(2+3+"");// 前两个数值相加后,被“""”转成字符串。
System.out.println(2+""+3);// 同第一个。
输出显示为:23,5,5,23
3.类类型向字符串转换
正向转换:因为每个类都是object类的子类,而所有的object类都有一个toString()函数,所以通过toString()函数来转换即可
反向转换:通过类包装器new出一个新的类类型的变量
eg1: int i=Integer.valueOf(“123”).intValue()
说明:上例是将一个字符串转化成一个Integer对象,然后再调用这个对象的intValue()方法返回其对应的int数值。
eg2: float f=Float.valueOf(“123”).floatValue()
说明:上例是将一个字符串转化成一个Float对象,然后再调用这个对象的floatValue()方法返回其对应的float数值。
eg3: boolean b=Boolean.valueOf(“123”).booleanValue()
说明:上例是将一个字符串转化成一个Boolean对象,然后再调用这个对象的booleanValue()方法返回其对应的boolean数值。
eg4:double d=Double.valueOf(“123”).doubleValue()
说明:上例是将一个字符串转化成一个Double对象,然后再调用这个对象的doubleValue()方法返回其对应的double数值。
eg5: long l=Long.valueOf(“123”).longValue()
说明:上例是将一个字符串转化成一个Long对象,然后再调用这个对象的longValue()方法返回其对应的long数值。
eg6: char=Character.valueOf(“123”).charValue()
说明:上例是将一个字符串转化成一个Character对象,然后再调用这个对象的charValue()方法返回其对应的char数值。
相关文章推荐
- Java基础——数据类型之间的转换
- Java基础02-变量,数据类型及其转换
- java基础类型数据与String类包装类之间的转换与理解
- 虽然微不足道但是很有用的JAVA基础—数据类型及其转换
- java基础之基本数据类型及之间的转换
- Java中数据类型及其之间的转换
- daliu_it java基础笔记之 变量和数据类型以及数据类型之间的转换以及转义字符
- Java中数据类型及其之间的转换
- java基础数据类型与字符串之间的转换
- Java中数据类型及其之间的转换(转)
- java中基本数据类型介绍及其之间的转换
- 【java基础】在Java中实现基本数据类型与字符、字符串之间的转换
- Java中数据类型及其之间的转换
- Java中数据类型及其之间的转换(转)
- Java中数据类型及其之间的转换
- Java基础——数据类型之间的转换
- Java中数据类型及其之间的转换(转)
- Java中数据类型及其之间的转换(转)
- java语言基础(59)——jdk5自动装箱和拆箱(基本数据类型与包装类之间的转换)
- java基础--->基本数据类型之间的转换