Java中八种基本数据类型及其区别、字符编码
一、Java中八种基本数据类型及其区别
八种基本数据类型又分成四类:
- 整数型:byte、short、int、long (没有小数)
- 浮点型:float、double (有小数)
- 布尔型:boolean
- 字符型:char
区别: 占用的空间大小不同
byte占用1个字节、short占用2个字节、int占用4个字节、long占用8个字节
float占用4个字节、double 占用8个字节
boolean占用1个字节
char占用2个字节
补充一下,除了八种基本数据类型外,还有引用数据类型,我们常使用的String就是引用数据类型
关于计算机存储单位
计算机只能识别二进制
1字节(byte)=8 bit
1 bit 就是一个1或者0(二进制)
1KB = 1024 byte
1M = 1024 KB
1GB = 1024 MB
1TB = 1024 GB
二、字符编码
只有char和字符编码有关系
char可以存储汉字,在java中char类型占用两个字节
对于布尔类型只有两个值true和false,实际上true和false分别在C++对应的是1和0,1为true,0为false
对于char类型来说计算机表示起来比较麻烦,因为char对应的是文字,每一个国家的文字不一样,文字不能直接通过自然算法转换成二进制
所以诞生了字符编
2.1 什么是字符编码?
是人为定义的一套转换表,在字符编码中规定了一系列的文字对应的二进制
字符编码其实本质上就是一本字典,该字段中描述了文字与二进制之间的对照关系
字符编码是认为规定的
字符编码设计到编码和解码两个过程,编码和解码的时候必须采用同一套字符编码方式,不然会出现乱码
计算机最先开始支持的文字是英文,英文对应的字符编码方式是ASCII码
ASCII码采用1byte存储,英文字母一共26个(将键盘上所有的键全部算上也不超过256个,1byte可以表示256中不同的情况,所以英文本身在计算机方面就占有优势)
前提是采用ASCII解码和编码,如果不统一会出现乱码
比如 ‘a’ ——97 ‘A’——65 ‘0’——48 (这个地方的0是文字0,不是数字)
随着发展又制定了ISO-8859-1编码方式,但是不支持中文,后来发展到亚洲才支持
后来在java中采用了Unicode编码,统一了全球所有的文字,支持所有文字
具体的实现包括:UTF-8 UTF-16 BTF-32
还没有评论,来说两句吧...