java数据类型的转换
1. java中的强制类型转换是如何转换的
java中数据类型的强制转换是通过强制转换语句完成的,强制转换语句的格式为“目标数据类型 变量 = (目标数据类型) 数据;”。下面给出例子:
1、定义两个字节数据类型a、b、c,分别赋予1和2和a+b的值,进行加法运算的式子a+b=3,得出的结果“3”将会被编译环境判定为整形数据,把这个整形数据赋值给c,系统将会报错,这样就需要用到格式为“目标数据类型 变量 = (目标数据类型) 数据;”的强制转换语句。
2、根据强制转换语句的格式,易得“byte c = (byte)(a+b);”;
3、这样就把整形数据的“3”赋值给字节数据类型的c了,其中完成数据的强制类型转换。
(1)java数据类型的转换扩展阅读:
基本类型 转换原则:
1、类型转换主要在在赋值、方法调用、算术运算三种情况下发生。
a、赋值和方法调用 转换规则:从低位类型到高位类型自动转换;从高位类型到低位类型需要强制类型转换:
(1)布尔型和其它基本数据类型之间不能相互转换;
(2)byte型可以转换为short、int、、long、float和double;
(3)short可转换为int、long、float和double;
(4)char可转换为int、long、float和double;
(5)int可转换为long、float和double;
(6)long可转换为float和double;
(7)float可转换为double;
b、算术运算 中的类型转换:
1、基本就是先转换为高位数据类型,再参加运算,结果也是最高位的数据类型;
2、byte short char运算会转换为Int;
(1)如操作数之一为double,则另一个操作数先被转化为double,再参与算术运算。
(2)如两操作数均不为double,当操作数之一为float,则另一操作数先被转换为float,再参与运算。
(3)如两操作数均不为double或float,当操作数之一为long,、则另一操作数先被转换为long,再参与算术运算。
(4)如两操作数均不为double、float或long,则两操作数先被转换为int,再参与运算。
特殊:
(1)如采用+=、*=等缩略形式的运算符,系统会自动强制将运算结果转换为目标变量的类型。
(2) 当运算符为自动递增运算符(++)或自动递减运算符(--)时,如果操作数为byte,short或char类型不发生改变;
2. JAVA基本数据类型转换
基本类型中byte、short、int、long
和
float、double
依次增大,当后者转换成前者时需要强制转换,例如:long
a
=
100L;int
b
=
(int)a
;
但前者转换成后者,则可以直接赋值,JVM会完成自动转换
3. Java数据类型自动转换的优先顺序
楼主你好: 转换原则:从低精度向高精度转换byte 、short、int、long、float、double、char
注:两个char型运算时,自动转换为int型;当char与别的类型运算时,也会先自动转换为int型的,再做其它类型的自动转换
基本类型有以下四种:int 长度数据类型有:byte(8bits)、short(16bits)、int(32bits)、long(64bits)、
float 长度数据类型有:单精度(32bits float)、双精度(64bits double)
boolean 类型变量的取值有:ture、false 。1字节(8位)
char数据类型有:unicode字符,16位
对应的类类型:Integer、Float、Boolean、Character、Double、Short、Byte、Long
4. java数据类型转换
这很明显
第一 c=(int)d; 意思是把d的值强转为int类,然后赋给c,那么c自然也等于8000.
第二 f=(float)g; 意思是把double类型的g值,强转为float类型然后赋给f,因为float是单精度,所以结果就去掉小数点的一半.
5. java中各数据类型是如何实现强制类型转换的
转型有两种:
向上转型和向下转型(强制转型)
两种分别如下:
一种是向上转型对于基础数据类型
,
可以自动转型
,比如:int
a
=
10;long
b
=
a;这里就是把int型转成了long型
,
因为
long范围比int大
,
这样的转型不会有任何影响
,
所以可以自动转型
又比如
A
a
=
new
B();
其中
A
是B
的父类
,
这也是多态
,
就是父类的对象指向子类的引用
,
你调用a对象
,
实际上是B的类
,
但是B继承A
,
拥有A的一切属性和方法
(不谈复写)
</ol>第二种是向下转型
,
也就是强制这种需要强转
,
比如long
a
=
10
;int
b
=
(int)
a;通过
(int)可以强制转型
,
但是这样会丢失精度
,
比如a如果超过了b的范围
,
那么强转成int型,
只会等于int的最大值又比如
:B
b
=
new
A();
这样是不行的
,
需要有中间途径
,
比如A
a
=
new
A();
Object
obj
=
a;
B
b
=
(A)
a;而这种强转
,
又有要求
,
必须是同类型
,
也就是说
A
就是B
,
不然会报错.</ol>不同类型之间如果要转型
,
需要通过中间途径
,
比如JSON
,
将A转成JSON串
,
然后再转换为B
</ol></ol>
6. Java数据类型转换问题
放在前面那叫强制类型转换,放在后面编译就报错了,java源程序需要编译成.class文件,才能被JVM所识别的。
7. java 数据类型转换
java中数据类型是有个隐式的自动转换的.
byte,short,int和long都是整数,任何数字(如1,11,111等),只要不超过范围,都是可以赋值给byte,short,int类型的,但不能直接赋值给long,必须在后面加上L(大小写均可),任何char,byte,short,int之间的计算的结果都是int 型,
如题,
a = 1;把1赋给a,当然把1赋给byte是没有问题的,
a = a + 1 ; 这样就等于把int型赋给了byte型是会报错的.
a += 1 是自增运算,+=,-=,*=,/=等运算是不会转成其他类型的,此题中虽然结果与a = a + 1一样;
顺便展开一点讲,共有8种基本数据类型,顺要说明的是:byte,short,int,long,float,double,boolean,char
1.char,byte,short,int之间运算会自动转换为int,不包括自增与自减;
char会以ASCII码转换
2.如下链条,可以向下赋值,反之刚不行,比如,byte值可以赋给short变量,反之则不行.
3.数字默认类型是int,是不符合如下链条的例外情况,只要不超过范围可以赋值给char,byte,short等类型,比如可以byte a = 127是对的,byte a = 128是会编译错误的;
4.有小数点的都默认为为double型,加f变float,如2.5f
5.boolean只能逻辑运算
byte->short->int->long->float->double char->int
8. java大神 字符串的转换基本数据类型
1. 字符串转换为数字
java.lang中的Integer类调用其类方法public static int parseInt(String s)可以将由“数字”字符组成的字符串,比如“876”转换为int数据类型,例如:
int x;
String s = "876";
x = Integer.parseInt(s);
类似地,使用java.lang包中的Byte、Short、Long、Float、Double类调用相应的类方法
public static byte parseByte(String s) throws NumberFormatException
public static short parseShort(String s) throws NumberFormatException
public static long parseLong(String s) throws NumberFormatException
public static double parseDouble(String s) throws NumberFormatException
2. 可以使用下面的方法将数字转化为相应的字符串对象:
① valueOf方法
public static String valueOf(byte n)
public static String valueOf(int n)
public static String valueOf(long n)
public static String valueOf(float n)
public static String valueOf(double n)
例如:将形如123,12345.8等数值转换为字符串
String str = String.valueOf(123)
String str = String.valueOf(12345.8)
② 可以使用toString方法(一个对象通过调用该方法可以获取该对象的字符串表示)
使用java.lang包中的Byte、Integer、Short、Long、Float、Double类调用相应的类方法,Integer.toString、Double.toString,等等
比较常用的是Integer.toString("要进行转换的数字"),方法得到的是一个字符串的对象
例子:
int n = 123;
String m = Integer.toString(n);
System.out.println(m + 1);
Date date = new Date();
System.out.println(date.toString());
所以我们可以使用上面的方法将数字转化为一个字符串
3. 字符串与字符数组
① 将字符数组转换为字符串对象
使用String类的构造方法:String(char a[])和String(char a[],int offset,int length)
分别用数组a中的全部字符和部分字符构造字符串对象
例子:
char a[] = {'1','2','3'};
System.out.println(new String(a).length());
9. Java中数据类型转换有几种每种转换都在什么情况下使用
java
中自动化转换和强制转换
自动转换就例如简单类型的转换,可以自动通过
如整形转换城FLOAT,或者double
有些字符串类型则被转换成相应的ascii码
而转换会产生溢出或者丢失的转换则需要编程者进行强制转换
相对的java中还有原始变量和java进行封装的数据类型的转换
float
f=10.01;
Float
F=new
Float(f);
每种转换根据编程需要使用。
10. JAVA语言数据类型转换有什么特点
从低精度向高精度转换
byte 、short、int、long、float、double、char
注:两个char型运算时,自动转换为int型;当char与别的类型运算时,也会先自动转换为int型的,再做其它类型的自动转换
基本类型向类类型转换
正向转换:通过类包装器来new出一个新的类类型的变量
Integer a= new Integer(2);
反向转换:通过类包装器来转换
int b=a.intValue();
类类型向字符串转换
正向转换:因为每个类都是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数值。
基本类型向字符串的转换
正向转换:
如:int a=12;
String b;b=a+””;
反向转换:
通过类包装器
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数值。