java数据类型转换(JAVA类型转换)
本篇文章给大家谈谈java数据类型转换,以及JAVA类型转换对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。
Java进阶:Java变量类型之间的相互转换
我们知道 Java的数据类型分为三大类即布尔型字符型和数值型而其中数值型又分为整型和浮点型相对于数据类型 Java的变量类型为布尔型boolean字符型char整型byte short int long浮点型float double其中四种整型变量和两种浮点型变量分别对应于不同的精度和范围此外我们还经常用到两种类变量即String和Date对于这些变量类型之间的相互转换在我们编程中经常要用到在我们今天的这篇文章中我们将来看看如何实现这些转换
一整型实型字符型变量中的相互转换
在Java中整型实型字符型被视为同一类数据这些类型由低级到高级分别为(byte short char)??int??long??float??double低级变量可以直接转换为高级变量例如下面的语句可以在Java中直接通过
byte b;int i=b;
而将高级变量转换为低级变量时情况会复杂一些你可以使用强制类型转换即你必须采用下面这种语句格式
int i;byte b=(byte)i;
可以想象这种转换肯定可能会导致溢出或精度的下降因此我们并不推荐使用这种转换
二 Java的包装类
在我们讨论其它变量类型之间的相互转换时我们需要了解一下Java的包装类所谓包装类就是可以直接将简单类型的变量表示为一个类在执行变量类型的相互转换时我们会大量使用这些包装类 Java共有六个包装类分别是Boolean Character Integer Long Float和 Double从字面上我们就可以看出它们分别对应于 boolean char int long float和double而String和Date本身就是类所以也就不存在什么包装类的概念了
三简单类型变量和包装类之间的相互转换
简单类型的变量转换为相应的包装类可以利用包装类的构造函数即
Boolean(boolean value) Character(char value) Integer(int value) Long(long value) Float(float value) Double(double value)
而在各个包装类中总有形为××Value()的方法来得到其对应的简单类型数据利用这种方法也可以实现不同数值型变量间的转换例如对于一个双精度实型类 intValue()可以得到其对应的整型变量而doubleValue()可以得到其对应的双精度实型变量
四 String类和其它数据类型的相互转换
对于上面的这些包装类除了Character以外都有可以直接使用字符串参数的构造函数这也就使得我们将String类转换为这些数据类型变得相当之简单即
Boolean(String s) Integer(String s) Long(String s) Float(String s) Double(String s)
而将String类转换为Date类也可以使用这样的构造函数 Date(String s)
现在我们还剩下一个字符型变量事实上String类可以理解为一个char型数组因此我们可以在String类中找到这样的方法来实现这种转换 charAt(int index)可以得到String类中某一位置上的字符 toCharArray()更可以将整个String类转换成一个char的数组
对于所有的包装类都存在一个名为toString()的方法可以将其转换成对应的String类而对于整型类和长整型类还可以使用 toBinaryString(int i) toHexString(int i) toOctalString(int i)分别以二进制十六进制和八进制的形式进行到String类的转换
五将字符型直接做为数值转换为其它数据类型
将字符型变量转换为数值型变量实际上有两种对应关系在我们在第一部分所说的那种转换中实际上是将其转换成对应的ASCII码但是我们有时还需要另一种转换关系例如就是指的数值而不是其ASCII码对于这种转换我们可以使用Character的getNumericValue(char ch)方法
六 Date类与其它数据类型的相互转换
整型和Date类之间并不存在直接的对应关系只是你可以使用int型为分别表示年月日时分秒这样就在两者之间建立了一个对应关系在作这种转换时你可以使用Date类构造函数的三种形式
Date(int year int month int date)以int型表示年月日Date(int year int month int date int hrs int min)以int型表示年月日时分Date(int year int month int date int hrs int min int sec)以int型表示年月日时分秒
在长整型和Date类之间有一个很有趣的对应关系就是将一个时间表示为距离格林尼治标准时间年月日时分秒的毫秒数对于这种对应关系 Date类也有其相应的构造函数 Date(long date)
获取Date类中的年月日时分秒以及星期你可以使用Date类的getYear() getMonth() getDate() getHours() getMinutes() getSeconds() getDay()方法你也可以将其理解为将Date类转换成int
而Date类的getTime()方法可以得到我们前面所说的一个时间对应的长整型数与包装类一样 Date类也有一个toString()方法可以将其转换为String类
lishixinzhi/Article/program/Java/hx/201311/27245
java中的数据类型之间的转换该怎么学习啊 、自动类型转换
Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。
byte:
byte数据类型是8位、有符号的,以二进制补码表示的整数;
最小值是-128(-2^7);
最大值是127(2^7-1);
默认值是0;
byte类型用在大型数组中节约空间,主要代替整数,因为byte变量占用的空间只有int类型的四分之一;
例子:byte a= 100,byte b=-50。
short:
short数据类型是16位、有符号的以二进制补码表示的整数
最小值是-32768(-2^15);
最大值是32767(2^15- 1);
Short数据类型也可以像byte那样节省空间。一个short变量是int型变量所占空间的二分之一;
默认值是0;
例子:short s= 1000,short r=-20000。
int:
int数据类型是32位、有符号的以二进制补码表示的整数;
最小值是-2,147,483,648(-2^31);
最大值是2,147,485,647(2^31- 1);
一般地整型变量默认为int类型;
默认值是0;
例子:int a= 100000, int b=-200000。
long:
long数据类型是64位、有符号的以二进制补码表示的整数;
最小值是-9,223,372,036,854,775,808(-2^63);
最大值是9,223,372,036,854,775,807(2^63-1);
这种类型主要使用在需要比较大整数的系统上;
默认值是0L;
例子: long a= 100000L,int b=-200000L。
float:
float数据类型是单精度、32位、符合IEEE 754标准的浮点数;
float在储存大型浮点数组的时候可节省内存空间;
默认值是0.0f;
浮点数不能用来表示精确的值,如货币;
例子:float f1= 234.5f。
double:
double数据类型是双精度、64位、符合IEEE 754标准的浮点数;
浮点数的默认类型为double类型;
double类型同样不能表示精确的值,如货币;
默认值是0.0f;
例子:double d1= 123.4。
boolean:
boolean数据类型表示一位的信息;
只有两个取值:true和false;
这种类型只作为一种标志来记录true/false情况;
默认值是false;
例子:boolean one= true。
char:
char类型是一个单一的16位Unicode字符;
最小值是’\u0000’(即为0);
最大值是’\uffff’(即为65,535);
char数据类型可以储存任何字符;
例子:char letter=‘A’。
你可以看看这里:。
java 数据类型的自动转换
String就是字符串类型
第一 char相加的结果是int类型,不能赋值给String
第二 A+B的结果是int类型,再加上String,请应用int+String的规则
第三String+char+char,请应用char+String的规则
packageorg.xyz;
publicclassTest{
publicstaticvoidmain(String[]args){
StringV="与";
charA='男';
charB='女';
// Strings=A+B;//错误A+B的结果是int,int不能赋值给String
inti=A+B;//正确,在java中char和byte是可以转换为十进制的A+B的结果是int类型的
System.out.println(i);
Stringsum2=i+V;//正确字符串可以跟任意的基本类型相加下面有证明
System.out.println(sum2);
Stringsum=A+B+V;//A+B的结果是int类型的,然后再加VA+B是char+char结果是int,字符串可以跟任意的基本类型相加
System.out.println(sum);
//===================Stringbegin================================================================================
//八种基本类型String都可以跟它们进行相加,没有任何问题
booleanboo=true;
sum2=boo+V;
doubled=10.0;
sum2=d+V;
floatf=10.0f;
sum2=f+V;
byteb='A';
sum2=b+V;
//char
sum2=A+V;
shortsr=10;
sum2=sr+V;
longl=10;
sum2=l+V;
inti10=10;
sum2=i10+V;
//===================Stringend================================================================================
}
}字符串跟基本类型相加的结果
packageorg.xyz;
/**
*除了byte是转换称ACII码的值之后再跟字符串相加其他没有任何例外
*
*/
publicclassTest{
publicstaticvoidmain(String[]args){
Stringstr="中";
Stringstr2="";
booleanbl=true;
str2="";
str2=bl+str;
System.out.println(str2);//true中
floatf=10.0f;
str2="";
str2=f+str;
System.out.println(str2);//10.0中
doubled=10.0;
str2="";
str2=d+str;
System.out.println(str2);//10.0中
inti=10;
str2="";
str2=i+str;
System.out.println(str2);//10中
shorts=10;
str2="";
str2=s+str;
System.out.println(str2);//10中
byteb='c';
str2="";
str2=b+str;
System.out.println(str2);//99中
charc='c';
str2="";
str2=c+str;
System.out.println(str2);//c中
longl=10;
str2="";
str2=l+str;
System.out.println(str2);//10中
}
}基本类型相加的规律
packageorg.xyz;
/**
*
*任意基本类型都是可以相加了,除了跟boolean,boolean跟任何基本类型都不能相加,包括自身
*可以相加的基本类型相加之後的结果一定是intfloatlongdouble类型(有short参与并且另一个参数不大与short类型的结果都是int)
*/
publicclassTest{
publicstaticvoidmain(String[]args){
charc='c';
byteb='b';
inti=1;
longl=10;
floatf=10.0f;
doubled=10.0;
shorts=10;
booleanbl=true;
//===================charbegin==========================================
//char不可以跟boolean相加
i=c+c;//char+char=int
i=c+b;
i=c+i;
f=c+f;
d=c+d;
i=c+s;
l=c+l;
// i=c+bl;
//===================charend==========================================
//===================bytebegin==========================================
//char不可以跟boolean相加
i=b+c;//char+char=int
i=b+b;
i=b+i;
f=b+f;
d=b+d;
i=b+s;
l=b+l;
// i=b+bl;
//===================byteend==========================================
//===================intbegin==========================================
//char不可以跟boolean相加
i=i+c;//char+char=int
i=i+b;
i=i+i;
f=i+f;
d=i+d;
i=i+s;
l=i+l;
// i=i+bl;
//===================intend==========================================
//===================longbegin==========================================
//char不可以跟boolean相加
l=l+c;//char+char=int
l=l+b;
l=l+i;
f=l+f;
d=l+d;
l=l+s;
l=l+l;
// l=l+bl;
//===================longend==========================================
//===================floatbegin==========================================
//char不可以跟boolean相加
f=f+c;//char+char=int
f=f+b;
f=f+i;
f=f+f;
d=f+d;
f=f+s;
f=f+l;
// f=f+bl;
//===================floatend==========================================
//===================doublebegin==========================================
//char不可以跟boolean相加
d=d+c;//char+char=int
d=d+b;
d=d+i;
d=d+f;
d=d+d;
d=d+s;
d=d+l;
// d=d+bl;
//===================doubleend==========================================
//===================shortbegin==========================================
//char不可以跟boolean相加
i=s+c;//char+char=int
i=s+b;
i=s+i;
f=s+f;
d=s+d;
i=s+s;
l=s+l;
// i=s+bl;
//===================shortend==========================================
//===================booleanbegin==========================================
// i=bl+c;
// i=bl+b;
// i=bl+i;
// f=bl+f;
// d=bl+d;
// i=bl+s;
// l=bl+l;
// i=bl+bl;
//===================booleanend==========================================
}
}
END,本文到此结束,如果可以帮助到大家,还望关注本站哦!