「java自动转换类型」java 自动转型

博主:adminadmin 2023-03-20 01:32:10 41

本篇文章给大家谈谈java自动转换类型,以及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 自动转型的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2023-03-20,除非注明,否则均为首码项目网原创文章,转载请注明出处。