JDK源码学习之String

此次学习起源于阅读《编写高质量代码:改善Java程序的151个建议》之建议三时的代码疑惑。

困惑

1
2
3
4
5
6
7
8
9
10
public class Client {
public static void main(String[] args) {
String a = String.valueOf(80);
String a1 = String.valueOf(80);//al,a与数字1
System.out.println("a.equals(a1):" + a.equals(a1));
String b = String.valueOf(800);
String b1 = String.valueOf(800);
System.out.println("b.equals(b1):" + b.equals(b1));
}
}

源码

  1. String.java
  2. Integer.java

流程图

String.valueOf 流程图

总结

  1. 后来发现这根本不是疑惑,只是把equal=两种比较方式搞混了;

不理解

  1. Integer.java里面的static void getChars(int i, int index, char[] buf)方法;