Skip to content

Commit 0d985e2

Browse files
authored
Merge pull request Snailclimb#1614 from geomonlin/patch-9
Update memory-area.md
2 parents dcd509e + 3c2745d commit 0d985e2

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

docs/java/jvm/memory-area.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -365,7 +365,7 @@ String d = str1 + str2; // 常量池中的对象
365365
System.out.println(c == d);// true
366366
```
367367
368-
被 `final` 关键字修改之后的 `String` 会被编译器当做常量来处理,编译器在程序编译期就可以确定它的值,其效果就想到于访问常量
368+
被 `final` 关键字修改之后的 `String` 会被编译器当做常量来处理,编译器在程序编译期就可以确定它的值,其效果就相当于访问常量
369369
370370
如果 ,编译器在运行时才能知道其确切值的话,就无法对其优化。
371371
@@ -457,7 +457,7 @@ System.out.println(s3==s4); // False
457457
1. 对于基本数据类型来说,==比较的是值。对于引用数据类型来说,==比较的是对象的内存地址。
458458
2. 在编译过程中,Javac 编译器(下文中统称为编译器)会进行一个叫做 **常量折叠(Constant Folding)** 的代码优化。常量折叠会把常量表达式的值求出来作为常量嵌在最终生成的代码中,这是 Javac 编译器会对源代码做的极少量优化措施之一(代码优化几乎都在即时编译器中进行)。
459459
3. 一般来说,我们要尽量避免通过 new 的方式创建字符串。使用双引号声明的 `String` 对象( `String s1 = "java"` )更利于让编译器有机会优化我们的代码,同时也更易于阅读。
460-
4. 被 `final` 关键字修改之后的 `String` 会被编译器当做常量来处理,编译器程序编译期就可以确定它的值,其效果就想到于访问常量
460+
4. 被 `final` 关键字修改之后的 `String` 会被编译器当做常量来处理,编译器程序编译期就可以确定它的值,其效果就相当于访问常量
461461
462462
### 4.2 String s1 = new String("abc");这句话创建了几个字符串对象?
463463

0 commit comments

Comments
 (0)