- String運算會產(chǎn)生新的String, 不會改變其原有的值
StringBuilder和StringBuffer會改變其原有的值, 所以循環(huán)內(nèi)字符串運算推薦用StringBuilder
@Test
public void test() {
List<String> strings = new ArrayList<>();
strings.add("hehe");
for (String e: strings) {
e = e.toUpperCase();
e += "hehe";
}
for (String string : strings) {
System.out.println(string);
}
}
/*
運行結(jié)果:
hehe
*/
@Test
public void test() {
List<StringBuilder> strings = new ArrayList<>();
strings.add(new StringBuilder("hehe"));
for (StringBuilder e: strings) {
e.append("hehe");
}
for (StringBuilder string : strings) {
System.out.println(string);
}
}
/*
運行結(jié)果:
hehehehe
*/
- Integer對象 -128-127范圍的數(shù)字 在IntegerCache里,調(diào)用時直接引用. 所以Integer Long String對象的比較,應(yīng)該調(diào)用equals方法.
@Test
public void test() {
for (Integer integer = -129; integer <= 128; integer++) {
Integer j = integer.intValue();
if (integer != j)
System.out.println(integer + " " + j);
}
}
/*
運行結(jié)果:
-129 -129
128 128
*/
@Test
public void test() {
Integer aInteger = 2;
Integer bInteger = 2;
Integer cInteger = 200;
Integer dInteger = 200;
System.out.println(aInteger == bInteger);
System.out.println(cInteger == dInteger);
}
/*
運行結(jié)果:
true
false
*/
- 值傳遞和引用傳遞,對象在方法中都是引用傳遞。但是Integer等類型會自動拆裝箱,String類型會產(chǎn)生一個新的String.所以這幾個對象在方法中傳遞不會影響值.
class Person {
int age;
String name;
public Person(int age, String name) {
this.age = age;
this.name = name;
}
@Override
public String toString() {
return "age: " + String.valueOf(this.age) + ", name: " + name;
}
}
@Test
public void test() {
int a = 1;
addOne(a);
System.out.println(a);
Person person = new Person(10, "child");
addTwo(person);
System.out.println(person);
}
private void addOne(int val) {
val += 1;
}
private void addTwo(Person person) {
person.age += 2;
}
/*
運行結(jié)果:
1
age: 12, name: child
*/
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。