显示器上显示的字母、汉字、数字、图形符号等都是字符,计算机怎么存储字符?用的是二进制数据(计算机只能识别二进制数据)。
一定数量的字符的集合,每一个字符都规定了对应的二进制数据,这个字符的集合,就叫做字符集。
在java中表示字符的类和关键字有:char(一个字符)、Character、String等等
表示数值的类和关键字有很多:byte、short、int、long、float、double
/**
java中在bai1.6之前是不支持二进制表示的,从java1.7开始支持,以0b开头 如:
int i = 0b110101001; // 二进制数:0b
int i = 425; //十进制
int i = 0651; //八进制:0开头
int i = 0x1a9; //十六进制:0x 开头
*/
// System.out.println(Byte.SIZE); // 一个byte字节的位数 8位
// System.out.println(Byte.BYTES); // 字节数 1个字节
// System.out.println(Byte.MAX_VALUE); // 最大值(十进制):127
// System.out.println(Byte.MIN_VALUE); // 最小值(十进制):-128
// Type mismatch: cannot convert from int to byte。提示可以转为byte,但转完之后是什么数值,不清楚java的规则
byte[] b2 = {(byte) 129,86};
// byte[] b = {57,86}; // 十进制数值:57,表示字符:9
// byte[] b = {97,86}; // 十进制数值:97,表示字符:a
byte[] b = {65,86}; // 十进制数值:65,表示字符:A
System.out.println(new String(b,"utf-8")); // 打印:AV
Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。
1、整数:包括int,short,byte,long
2、浮点型:float,double
3、字符:char
4、布尔:boolean
常见字符集:
1、ascii 大概是美国制定的,适用于英文、西欧字符
((American Standard Code for Information Interchange): 美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。
2、Unicode (ascii的扩展,所以英文字符编码和ascii一致)国际制定的,包含全世界各个国家的字符,大概每一个字符占用4个字节
Unicode是一个标准,不是具体的字符集。
(又称统一码、万国码、单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。1990年开始研发,1994年正式公布。
utf-8 是Unicode标准下的一种字符集,只是每一个字符占用的位数可变(占用的存储空间变小,传输时也减小了带宽?)
在Unicode中,我们有很多方式将数字23383表示成程序中的数据,
包括:UTF-8、UTF-16、UTF-32。UTF是“Unicode Transformation Format”的缩写,可以翻译成Unicode字符集转换格式,即怎样将Unicode定义的数字转换成程序数据。
UTF-8(8位元,Universal Character Set/Unicode Transformation Format)是针对Unicode的一种可变长度字符编码。它可以用来表示Unicode标准中的任何字符,而且其编码中的第一个字节仍与ASCII相容,使得原来处理ASCII字符的软件无须或只进行少部份修改后,便可继续使用。因此,它逐渐成为[电子邮件]及其他存储或传送文字的应用中,优先采用的编码。
3、gbk 中国制定的,适用于汉字。(gbk拼音:国标扩展)
网友评论