Java
文章平均质量分 67
azhning
这个作者很懒,什么都没留下…
展开
-
StringBuilder append方法源码分析
问题来源:在Java中,使用String str = “a" + "b" + “c"的时候,编译器会自动优化,使用StringBuilder来完成连接操作,那么,StringBuffer为什么比起String性能更高呢?首先,以上字符串的连接,按照Java中字符串是常量不可更改的特性,理应是先有一个新的变量指向"a",而后再创建一个变量,指向"a + b",依次类推。但是按照这种方法,会产生很原创 2015-07-22 09:27:40 · 4816 阅读 · 0 评论 -
Java InputStream层次分析
Java io使用的是设计模式中的装饰者模式,装饰者模式的结构应当为:对应到Java InputStream上,则为:对比一下InputStream和Reader的区别:核心是,前者读入的是字节,后者读入的是字符。不论是InputStream还是Reader,数据源的数据在内存中都是二进制码的形式,但是对于字节流,一次读取一个字节的数据,并返回这一个字节的二进制码对应的原创 2015-07-22 17:01:17 · 887 阅读 · 0 评论 -
BufferedInputStream源码分析
参考文章:http://www.cnblogs.com/skywang12345/p/io_12.html首先,BufferedInputStream能够加快读取速度的原因,是因为,每次它都将buffer.length的数据从数据源读取到内存中,调用read()方法或者read(int[ ] buf , int off , int len)都是从内存中的buffer中直接读取的,这要比从数据源原创 2015-07-22 15:39:01 · 430 阅读 · 0 评论 -
Java编码学习
参考文章:http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/前提:Java使用Unicode字符集编码,即utf-16。Java中一个char是两个字节编码:从字符转换为字节,从char[ ]到byte[ ]解码:从字节转换为字符,从byte[ ]到char[ ]Java中进行编码和解码时使用的是Charset原创 2015-07-23 16:32:46 · 656 阅读 · 3 评论 -
iterator
核心变量:cursor:指向下一个将要被访问的元素的索引号lastRet:指向刚被访问的元素的索引号expectedModCount:通过与ModCount比较,判断是不是进行了iterator内部remove的增删操作核心方法:hasNext():比较cursor与size()next():返回下一个元素remove:删除集合中的元素,并更新expectedModCo原创 2015-09-11 20:46:15 · 699 阅读 · 0 评论