基本类型char的包装类是Character,使用的比较多,大家是比较熟悉的。
我只是觉得里面有很多static方法,平时不怎么用,学习一下怎么实现的,或许日后就用到了。
static int compare(char x, char y):以数字方式比较两个char值。返回结果是正数就是第一个大,0表示相等,负数就是第二个参数大。
static boolean isDigit(char ch):确定指定的字符是否为数字。
static boolean isLetter(char ch):确定指定的字符是否为字母。
static boolean isLetterOrDigit(char ch):确定指定的字符是字母还是数字。
static boolean isLowerCase(char ch):确定指定的字符是否为小写字符。
static boolean isUpperCase(char ch):确定指定的字符是否为大写字符。
static boolean isWhitespace(char ch):根据Java确定指定的字符是否为空格。
static char toLowerCase(char ch):使用UnicodeData文件中的大小写映射信息将字符参数转换为小写。
static char toUpperCase(char ch):使用UnicodeData文件中的大小写映射信息将字符参数转换为大写。
static boolean isDefined(char ch):确定是否在Unicode中定义了字符。
然后看点Character里面的实现,里面有个内部类CharacterCache,而且使用static修饰,内部用static块中初始化缓存数组,数据大小是128个,维护0到127的char。
比如在valueOf(char c)中,对于不大于127的,我们可以可以看到使用缓存中的对象,而没有初始化一个对象,当然在我们日常使用中,一般都是那些可见字符。
这个计算hashcode也是比较简单的,返回当前的编码值
在java的世界中,看看下面会输出什么:
有什么讨论的内容,可以加我公众号: