Java核心技术 卷I 基础知识 学习笔记(2)
参考:Java核心技术 卷I 基础知识
Unicode和char类型
码点是指与一个编码表中的某个字符对应的代码值。在Unicode标准中,码点采用十六进制书写,并加上前缀U+。
Unicode的码点可以分成17个代码级别(code plane)。第一个代码级别成为基本的多语言级别(basic multilingual plane),码点从U+10000到U+10FFFF,其中包括一些辅助字符(supplementary character)。
UTF-16编码采用不同长度的编码表示所有的Unicode码点。在基本的多语言级别中,每个字符用16位表示,通常被称为代码单元。而辅助字符采用一对连续的diam单元进行编码。这样构成的编码值落入基本的多语言级别中空闲的2018字节内,同城被称为替代区域(surrogate area)。这样的设计可以使得我们很迅速的直到一个代码单元是一个字符的编码还是一个辅助字符的第一或第二部分。
Java中,char类型描述了UTF-16编码中的一个代码单元。
运算符优先级
码点与代码单元
Java字符串由char值序列组成。char数据类型是一个采用UTF-16编码表示Unicode码点的代码单元。大多数的常用Unicode字符使用一个代码单元就可以表示,而辅助字符需要一对代码单元表示。
大数值
如果基本的整数和浮点数精度不能够满足需求,那么可以使用java.math包中的两个很有用的类:BigInteger和BigDecimal,这两个类可以处理包含任意长度数字序列的数值。BigInteger类实现了任意精度的整数运算,BigDecimal实现了任意精度的浮点数运算。
使用静态的valueOf方法可以将普通的数值转换为大数值。
BigInteger a=BigInteger.valueOf(100);