携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第30天,点击查看活动详情
文章目录
1.自动转换类型特点:容量小的数据类型会自动转化成容量大的数据类型。
基本数据类型转换
- 在Java中,参与运算的数据类型不一致时,就会发生类型的转换。
- 运算时,不同类型的数据先转化成同一类型,再进行运算。
转换方式 :
按照转换方式,有两种 :自动转换类型(也称为隐式转换)和强制转换类型(也称显式转换)。
1.自动转换类型 特点:容量小的数据类型会自动转化成容量大的数据类型。
低------------------------------------------------------->高
char,byte,short ---> int ---> long ---> float ---> double
转换发生的条件 :由低类型 —> 高类型
public class Demo {
public static void main(String[] args) {
int a1 = 12;
byte a2 = 24;
System.out.println(a1+a2);
}
}
注意事项:
byte、short、char相互之间不转换,他们参与运算首先转换为int类型。
2.强制类型转换
特点:容量大的数据类型向容量小的数据类型转换,要进行强制类型转换,使用符号:() 。
格式:(类型)变量名 由级别高—>低
public class Demo {
public static void main(String[] args) {
int i = 128;
byte b = (byte)i;//强制转换
System.out.println(i); //输出128
System.out.println(b); //输出-128
//因为byte 的最大内存是127,要是赋予128的话,就会造成内存溢出的问题
}
}
- 类型转化的注意点:
1.不能对布尔值进行转换。
2.不能把对象类型转换为不相干的类型。
3.在把高容量转换到低容量的时候,强制转换。
4.转换的时候可能存在内存溢出,或者精度损失问题 !
二进制、位、字节
位(bit):一个数字0或者一个数字1,代表一位。
字节(Byte):每8位是一个字节,这个是数据存储的最小单位。
1Byte=8bit
1KB=1024 Byte
1MB=1024 KB
1GB=1024 MB
1TB=1024GB
1PB=1024TB
1EB=1024PB
1ZB=1024EB
三种常见的编码:ASCII码、UTF-8编码、Unicode编码等字符占据的字节数
ASCII码:
一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数,换算为十进制。最小值0,最大值255。如一个ASCII码就是一个字节。
UTF-8编码:
一个英文字符等于一个字节,一个中文(含繁体)等于三个字节。
Unicode编码:
一个英文等于两个字节,一个中文(含繁体)等于两个字节。
符号:
英文标点占一个字节,中文标点占两个字节。举例:英文句号“.”占1个字节的大小,中文句号“。”占2个字节的大小。