char定义的变量实际上底层在内存上也是按照整数存储的。
但是我们为什么称char定义的变量是一个字符类型呢?
字符&字符集
ASCII:存储的是1个字节的字符,英文字符的字符集,键盘上的英文字母,和其他的按键符号,图片之类的。
但是中文的1个汉字是没有办法用1个字节来存储的,所以ASCII不能存储中文汉字。
GBK:是2个字节存储的字符的字符集,中文字符用2个字节存储,英文字符用1个字节存储。
Java默认的是Unicode字符集!!!
图示:
字符编码
字符在底层内存上是按整数存储的。
1个字符对应的是哪个整数啊?
这是由字符编码决定的!
1个字符集里面就提供了相应的字符编码,还可能提供多个字符编码
utf-8是最常用的。
MySQL客户端和服务器在交互的时候采用的字符编码不一样:
英文是互相认识的(都是存储的是1个字节),但是中文就不是了: