「java自动转换类型」java 自动转型
本篇文章给大家谈谈java自动转换类型,以及java 自动转型对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java自动类型转换是什么意思
- 2、java自动类型转换示例
- 3、java 数据类型的自动转换
- 4、java在什么情况下会发生自动类型转换
- 5、Java中的强制类型转换是如何转换的?
- 6、java编译时,自动类型转换,是不是自动在变量前面加上要转换的类型?
java自动类型转换是什么意思
在理解自动类型转换之前必须理解这样一个原则“表数范围小的可以向表数范围大的进行自动类型转换”,因此自动类型转换指小可转大,大转小会失去精度,自动类型是两个大小不同的数据,会把小的转变成大的进行运算。
java高级编程语言是一种类型语言,编程过程中的对数据类型的限制是比较严格的。
java自动类型转换示例
自动类型转换,就是一个类型直接可以赋值给另外一个类型,而不需要强制进行转换。
举例:
public class Test {
public static void main (String args[])
{
int i=123;
char c1=22;
char c2='c';
byte b=2;
int n=b;
long l=i;
System.out.println(n);
System.out.println(l);
}
}
java 数据类型的自动转换
String就是字符串类型
第一 char相加的结果是int类型,不能赋值给String
第二 A+B的结果是int类型,再加上String,请应用int+String的规则
第三String+char+char,请应用char+String的规则
package org.xyz;
public class Test{
public static void main(String[] args) {
String V = "与";
char A = '男';
char B = '女';
// String s = A + B;//错误 A+B的结果是int,int不能赋值给String
int i = A + B;//正确,在java中char和byte是可以转换为十进制的 A+B的结果是int类型的
System.out.println(i);
String sum2 = i + V;//正确 字符串可以跟任意的基本类型相加 下面有证明
System.out.println(sum2);
String sum = A + B + V;//A+B的结果是int类型的,然后再加V A+B是char+char结果是int,字符串可以跟任意的基本类型相加
System.out.println(sum);
//===================String begin================================================================================
//八种基本类型String都可以跟它们进行相加,没有任何问题
boolean boo = true;
sum2 = boo + V;
double d = 10.0;
sum2 = d + V;
float f = 10.0f;
sum2 = f + V;
byte b = 'A';
sum2 = b + V;
//char
sum2 = A + V;
short sr = 10;
sum2 = sr + V;
long l = 10;
sum2 = l + V;
int i10 = 10;
sum2 = i10 + V;
//===================String end================================================================================
}
}
字符串跟基本类型相加的结果
package org.xyz;
/**
* 除了byte是转换称ACII码的值之后再跟字符串相加其他没有任何例外
*
*/
public class Test{
public static void main(String[] args) {
String str = "中";
String str2 = "";
boolean bl = true;
str2 = "";
str2 = bl + str;
System.out.println(str2);//true中
float f = 10.0f;
str2 = "";
str2 = f + str;
System.out.println(str2);//10.0中
double d = 10.0;
str2 = "";
str2 = d + str;
System.out.println(str2);//10.0中
int i = 10;
str2 = "";
str2 = i + str;
System.out.println(str2);//10中
short s = 10;
str2 = "";
str2 = s + str;
System.out.println(str2);//10中
byte b = 'c';
str2 = "";
str2 = b + str;
System.out.println(str2);//99中
char c = 'c';
str2 = "";
str2 = c + str;
System.out.println(str2);//c中
long l = 10;
str2 = "";
str2 = l + str;
System.out.println(str2);//10中
}
}
基本类型相加的规律
package org.xyz;
/**
*
* 任意基本类型都是可以相加了,除了跟boolean,boolean跟任何基本类型都不能相加,包括自身
* 可以相加的基本类型相加之後的结果一定是int float long double类型(有short参与并且另一个参数不大与short类型的结果都是int)
*/
public class Test{
public static void main(String[] args) {
char c = 'c';
byte b = 'b';
int i = 1;
long l = 10;
float f = 10.0f;
double d = 10.0;
short s = 10;
boolean bl = true;
//===================char begin==========================================
//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;
//===================char end==========================================
//===================byte begin==========================================
//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;
//===================byte end==========================================
//===================int begin==========================================
//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;
//===================int end==========================================
//===================long begin==========================================
//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;
//===================long end==========================================
//===================float begin==========================================
//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;
//===================float end==========================================
//===================double begin==========================================
//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;
//===================double end==========================================
//===================short begin==========================================
//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;
//===================short end==========================================
//===================boolean begin==========================================
// i = bl + c;
// i = bl + b;
// i = bl + i;
// f = bl + f;
// d = bl + d;
// i = bl + s;
// l = bl + l;
// i = bl + bl;
//===================boolean end==========================================
}
}
java在什么情况下会发生自动类型转换
1) 若参与运算量的类型不同,则先转换成同一类型,然后进行运算。
2) 转换按数据长度增加的方向进行,以保证精度不降低。如int型和long型运算时,先把int量转成long型后再进行运算。
a.若两种类型的字节数不同,转换成字节数高的类型
b.若两种类型的字节数相同,且一种有符号,一种无符号,则转换成无符号类型
3) 所有的浮点运算都是以双精度进行的,即使仅含float单精度量运算的表达式,也要先转换成double型,再作运算。
4) char型和short型参与运算时,必须先转换成int型。
5) 在赋值运算中,赋值号两边量的数据类型不同时,赋值号右边量的类型将转换为左边量的类型。如果右边量的数据类型长度左边长时,将丢失一部分数据,这样会降低精度,丢失的部分按四舍五入向前舍入。
Java中的强制类型转换是如何转换的?
java中数据类型的强制转换是通过强制转换语句完成的,强制转换语句的格式为“目标数据类型 变量=(目标数据类型)数据;”。下面给出例子:
1、定义两个字节数据类型a、b、c,分别赋予1和2和a+b的值,进行加法运算的式子a+b=3,得出的结果“3”将会被编译环境判定为整形数据,把这个整形数据赋值给c,系统将会报错,这样就需要用到格式为“目标数据类型 变量=(目标数据类型)数据;”的强制转换语句。
2、根据强制转换语句的格式,易得“bytec=(byte)(a+b);”;
3、这样就把整形数据的“3”赋值给字节数据类型的c了,其中完成数据的强制类型转换。
扩展资料:
基本类型转换原则:
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、byteshortchar运算会转换为Int;
(1)如操作数之一为double,则另一个操作数先被转化为double,再参与算术运算。
(2)如两操作数均不为double,当操作数之一为float,则另一操作数先被转换为float,再参与运算。
(3)如两操作数均不为double或float,当操作数之一为long,、则另一操作数先被转换为long,再参与算术运算。
(4)如两操作数均不为double、float或long,则两操作数先被转换为int,再参与运算。
特殊:
(1)如采用+=、*=等缩略形式的运算符,系统会自动强制将运算结果转换为目标变量的类型。
(2) 当运算符为自动递增运算符(++)或自动递减运算符(--)时,如果操作数为byte,short或char类型不发生改变;
参考资料:百度百科-java关键字
java编译时,自动类型转换,是不是自动在变量前面加上要转换的类型?
1、小的类型自动转化为大的类型
2、整数类型可以自动转化为浮点类型,可能会产生舍入误差
3、字符可以自动提升为整数,自动转换类型不需要在前面加类型,那是强制转换。
关于java自动转换类型和java 自动转型的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2023-03-20,除非注明,否则均为
原创文章,转载请注明出处。