比较器Comparator使用

java.lang.Integer

Integer

缓存

先看一段代码

Integer a = 1;
Integer b = 1;
Integer c = 500;
Integer d = 500;
System.out.print(a == b);//true
System.out.print(c == d);//false

Integer a = 1;
Integer a = new Integer(1);
System.out.print(a == b);//false

Integer类型在-128—>127范围之间是被缓存了的,也就是每个对象的内存地址是相同的,赋值就直接从缓存中取,不会有新的对象产生,而大于这个范围,将会重新创建一个Integer对象,也就是new一个对象出来,当然地址就不同了,也就!=;

java.lang.String

String

String类表示字符串。 Java 程序中的所有字符串文字,例如”abc” ,都是作为此类的实例实现的。
字符串是常量; 它们的值在创建后无法更改。 字符串缓冲区支持可变字符串。 因为 String 对象是不可变的,所以它们可以共享。 例如:

String str = "abc";

相当于:

char data[] = {'a', 'b', 'c'};
String str = new String(data);