不兼容的类型: 从int转换到byte可能会有损失
数据在 byte short 范围之内是 该类型 一旦超过 默认为 int
byte 1
short 2
int 4 (默认的数据类型)
long 8
float 4
double 8 (默认的数据类型)
浮点类型 不能表示精确的小数 BigDecimal支持科学计数法表示
class Test2{
public static void main(String [] args){
byte b =100;
System.out.println("b = "+ b);
float f = 3.14F;
System.out.println("f = "+ f);
float f1 = 3.3333333333333333333f;
System.out.println("f1 = "+ f1);
double d = 3.3333333333333333333333333333333333;
System.out.println("d = "+ d);
double d1 = 3.14E3;
System.out.println("d1 = "+ d1);
}
}```
char 2byte 单个字符
ASCII
48 0
65 A
97 a
unicode 编码
```java
class Test4{
public static void main(String [] args){
char c = 97;
System.out.println(c);
char c1 = 'の';
System.out.println(c1);
char c2 = '\u674e';
System.out.println(c2);//李
}
}
\n: 换行
\t: 一个tab键的距离 一个制表符
": 在字符串内展现双引号
\r:回到开头
\b:退格
\: 展现一个 \
class Test5{
public static void main(String [] args){
System.out.println("今天真开心啊");
System.out.println("今天真\\开心啊");
System.out.println("今天真\"开心啊");
System.out.println("今天真开心\b啊");
System.out.println("今天真开\r心啊");
System.out.println("今天真开\t心啊");
System.out.println("今天\n真开心啊");
}
}
byte 1 杯子
char 2 瓶子
short 2 瓶子
int 4 水壶
long 8 水缸
float 4 水池
double 8 湖
数据类型转换:
1.自动类型提升
1.1 将小的数据类型的值赋值给大的数据类型
1.2多个数据类型的值进行运算时 结果以最大类型为准
2.强制类型转换
class ConversionTest1{
public static void main(String [] args){
byte b = 10;
int i = b;
System.out.println("i = "+i);
long l = 21212L;
float f = l;
System.out.println("f = "+f);
int i2 = 20;
long sum = b + i2 + l;
System.out.println("sum = "+sum);
char c ='A';
char c1 = 'B';
int sum1 = c+c1;
System.out.println("sum1 = "+sum1);
}
}
只要是 byte short char 三者之间做运算 结果都是 int类型
class ConversionTest3{
public static void main(String [] args){
/*
short s = 120;
short s1 = 8;
short s2 = (short)(s + s1);
System.out.println(s2);
*/
short s1 = 120;
short s2 = 8;
byte s3 = (byte)(s1 + s2);
System.out.println(s3);
}
}
byte 1字节 杯子
char 2字节 瓶子
short 2字节 瓶子
int 4字节 水壶
long 8字节 水缸
float 4字节 水池
double 8字节 湖
数据类型转换: *******
1.自动类型提升
1.1 将小的数据类型的值赋值给大的数据类型
1.2多个数据类型的值进行运算时 结果以最大类型为准
2.强制类型转换 不兼容的类型: 从double转换到int可能会有损失
小的数据类型 变量名 = (小的数据类型)大的数据类型的值;
注意:
小数转为整数 会舍弃小数部分
class ConversionTest2{
public static void main(String [] args){
//不兼容的类型: 从double转换到int可能会有损失
double d =3.14;
//小的数据类型 变量名 = (小的数据类型)大的数据类型的值;
int i = (int)d;
System.out.println("i = "+ i);
long l = 80L;
//小的数据类型 变量名 = (小的数据类型)大的数据类型的值;
int i2 = (int)l;
System.out.println("i2 = "+ i2);
int i3 = 65;
//小的数据类型 变量名 = (小的数据类型)大的数据类型的值;
char c =(char)i3;
System.out.println("c = "+ c);
int i4 =200;
byte b1 = (byte)i4;
/*
1100 1000
补码:1100 1000
反码:1100 0111
原码:1011 1000
*/
System.out.println("b1 = "+ b1);
int i5 = 383;
/*
0001 0111 1111
0111 1111
*/
byte b2 = (byte)i5;
System.out.println("b2 = "+ b2);
}
}