os :windows7 x64
jdk:jdk-8u131-windows-x64
ide:Eclipse Oxygen Release (4.7.0)
code:
package jizuiku1; public class Demo110 { public static void main(String[] args) { StringBuffer sb = new StringBuffer(); sb.append("cnblog"); String str = sb.substring(3,5);//返回的是String [3,5) System.out.println(str);//截取部分 System.out.println(sb);//本身,为什么本身不变呢?看源码! } }
result:
sourceCode:
第一级
@Override public synchronized String substring(int start) { return substring(start, count); }
点击return后的 substring,进入第二级
@Override public synchronized String substring(int start, int end) { return super.substring(start, end); }
点击super.后面的 substring,进入第三级
public String substring(int start, int end) { if (start < 0) throw new StringIndexOutOfBoundsException(start); if (end > count) throw new StringIndexOutOfBoundsException(end); if (start > end) throw new StringIndexOutOfBoundsException(end - start); return new String(value, start, end - start); }
奥,原来是这样的,懂了!
Java优秀,值得学习。
学习资源:API手册+Java源码+清净的心地。
时间: 2024-11-06 07:23:04