【java源码阅读系列】String类型

https://blog.csdn.net/sugar_rainbow/article/details/68150249
https://www.cnblogs.com/NiceCui/p/8046564.html
参考以上文章
java native关键字
一个Native Method就是一个java调用非java代码的接口。一个Native Method是这样一个java的方法:该方法的实现由非java语言实现,比如C。这个特征并非java所特有,很多其它的编程语言都有这一机制,比如在C++中,你可以用extern "C"告知C++编译器去调用一个C的函数。
“A native method is a Java method whose implementation is provided by non-java code.”

类型比较必须得用equals,原因:== 比较的不只是值相同,而且比较的是物理地址相同,String a =”aaa”; 这种会去找String常量池里面有没有,如果没有,会将这个字符串常量放到常量池里面。
String a = new String(“a”);这个得分两步 new String()、”a”,首先新建对象,然后再去常量池里面找有没有”a”,如果没有,则讲字符串”a”放到常量池里面。
字符串拼接的话,虚拟机编译的时候会进行优化,比如 String a = “a”+”b”;
编译器会将这个段代码优化成 String a =”ab”;

测试代码:
public class ReadString {
public static void main(String[] args) {
String a = “a,a,a,”;
String cc = “a,a,”+“a,”;
System.out.println(acc);
Test4();
String bcv = new String(“b”);
a.getBytes();
String[] b = a.split(",");
a = a.substring(0,3);
}
public static void Test4(){
String str = “laji”;
String str2 = new String(“laji”);
String str3 = null;
System.out.println(str
str2);
str3 = str2.intern();
System.out.println(str==str3);
}
}

你可能感兴趣的:(源码阅读-String,源码阅读)