这也是自己第二次回过头来啃java基础书,小生自认为愚昧无知。如果大神有好的教育,可以评论私信。以下都是我的看法:
为什么说char
呢,我这里先卖个关子。在java中,char是用unicode编码的,占16位(2字节)。从ansi编码(1字节)到unicode编码(2字
节)。java中使用unicode的原因是,java的applet(网页)运行,unicode里面包含最多最广比如:中
文,english,spanish,german, french等。因此,char属于java的基本类型之一,使用也很方便。
这里我就解答则个关子,刚才为啥说string和char密切相关。因为java字符串string就是char值序列(其实就是final的char数组)组成。在源码中很好的证明了这一点:
为了证明上面的东西,大家可以来写一段好玩的代码:
运行后你可以看到以下输出:
但有些人不要误解,比如java的
以为它就是想c语言中的 char name[]="jeff li"; 这种认知是错误的,其他它更像char*指针:
最常见的也是最经常被使用的 boolean equals()分析,源码如下:
从源码中慢慢道来:例子(a.equals(b))
第一:if (this == anobject)
//this代表a,其实就是判断其b对象是否和a的引用型变量表示的是两个变量在堆中存储的地址(就是栈引用一样内容自然一样)。
第二: if (anobject instanceof string)
//java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例。这句话为了下面强转 string anotherstring = (string) anobject;
第三:我刚开始有些疑惑源码中的:我觉得是string类型的anotherstring获取到char值序列(char[]),这就回到了前面内容。
猜测是如上意思,如果大牛有的可以说的地方,请说。因为我自己想实现一个简单的stringcopy时,这个老是不行,不知道为什么。
第四:剩下的就是char[]直接循环比较了。
还有些常用的 split (正则) format 这里不发表一一看法了。
另外有一句很好的代码分享:来自org.apache.commons.lang