java中常用的数据转换
前些天在项目中遇到了Calender和Date的相互转换问题,然后就查了一些资料。整理了一些相关的常用转换,和大家分享下:
1.
Java包装类:在介绍具体的数据类型转换之前,我们有必要先介绍java中的一个特殊的拆装箱类型----java包装类。
• Java包装类出现的目的:为了能够使java程序员可以将java中基本数据类型视为类引用类型进行操作,即直接将简单类型的变量表示为一个类。
• Java共分为六个包装类,分别是Boolean,Character,Integer,Long,Float和Double。当然从字面上我们就能看出他们分别对应的是boolean , char , int , long , float ,double .除此之外,我们常见的String和Date类型本身就是类引用类型的,所以就不存在什么包装类的概念。
2.
详细的转换机制:
v
基本数据类型之间的转换:
§ 基本数据类型之间有一定的优先级顺序,在java中变量的优先级由低到高的排列顺序是:byte - (short , char) - int - long - float - double
§ 基本数据类型之间的转换可分为两种:
a.
自动类型转换:由优先级低的数据类型转向优先级高的数据类型。
举例:char c = 10 ;
int b = c ;
long d = c ;
b.
强制类型转换:由优先级高的数据类型转向优先级低的数据类型。
举例: float f = 3 ;
int a = f ; (编译器会报错),正确的写法是:int a =(int) f ;
很显然,这样的转换可能会导致数据溢出或是精度下降。
v
简单类型变量和包装类之间的转换:
§ 简单数据类型转换成相应的包装类,可以利用包装类的构造函数。如Boolean(boolean value) , Character(char value) , Integer( int value) , Long (long value) ,Float (float value) , Double(double value)
§ 而包装类转换成相应的简单数据类型,可以利用包装类中的xxValue()方法。如Long.intValue()可以将Long包装类型的变量转换成int型的数据类型。
v
String型和其他数据类型之间的数据转换:
§
String类型和包装类之间的转换:
a. String 类型转换成各种包装类,除了Character包装类之外,都有可以直接使用字符串作为参数的构造函数使得String类型转换成各种包装类;比如new Integer(String value) , Long(String value) , Double (String value)
b. 包装类转换成String类型,可以使用各种包装类提供的toString()方法。如Long LongValue = 13 ; LongValue.toString();
§
String 类型和基本数据类型之间的转换:
a. String 类型转换成基本数据类型可以使用基本数据类型的包装类的parseXxx()方法。如 Long.parseLong(String value)就可以将一个String类型的数据转换成一个long型的数据。