数据类型
数据类型用来声明变量,通过不同的数据类型为不同的变量分配适当的空间大小
基本数据类型
以二进制方式存储
- 整数型
byte 占一个字节=8bit 00000000 范围(-128-127)
short 占两个字节 00000000 00000000 (-32768 ~ 32767)
int 四个字节 (-2147483648 ~ 2147483647)
long 占八个字节 (-9223372036854775808~9223372036854775807) - 浮点型
float 四个字节
double 8个字节 - 布尔型
boolean 一个字节 - 字符型
char 两个字节
引用数据类型
字符串型String
java中除了基本数据类型,其他都是引用数据类型
字符编码
一系列文字对应二进制数字
char a = 98 输出为字母b
ASCII编码对应英文字母和英文符号 储存单元1byte
‘b’ —> 98
‘c’ —> 99…
‘a’ —> 97
‘A’ —> 65
‘B’ —> 66
中文这块的编码方式:GB2312<GBK<GB18030 (容量的关系)
繁体中文:big5(台湾使用的是大五码。)
在java中,java语言为了支持全球所有的文字,采用了一种字符编码方式
叫做unicode编码。unicode编码统一了全球所有的文字,支持所有文字。
具体的实现包括:UTF-8 UTF-16 UTF-32....
类型转换
字面量的数字类型默认为int型
int向上转换时可以自动类型转换,但是如果字面量的范围超过了int型需要在数字后加L或小写l 转换成long型再转换
int型向下转换时,在向下转换的数据类型范围内,可以实现自动类型转换,一旦超出范围,需要强制类型转换例如 byte a = (byte) 300 但是此做法会丧失精度,输出结果会变成44 原因如下
int(四个字节) 300的二进制00000000 00000000 0000001 00101100
转换后的byte为1字节会直接砍掉前三个字节变成00101100转换为十进制为44
转义字符\
char型想输出单引号 char a = ‘’’ 是不可以的需要把中间的’用\进行转义 原因是java发现前两个单引号之后就把他当做正常定义例’a’ 的两侧的单引号,所以 需要用\转义中间的单引号,告诉java 中间的单引号是想要被声明的内容
\n为换行 \t为制表符,也就是四个空格
想输出\ 就需要
char a = '\\' String s = "\\"
String a = "\"哈哈\"";
输出为 "哈哈"
因为char是字符型 所以char a = 97 时 会自动输出97对应的转义字符