最后
小编精心为大家准备了一手资料
以上Java高级架构资料、源码、笔记、视频。Dubbo、Redis、设计模式、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术
【附】架构书籍
- BAT面试的20道高频数据库问题解析
- Java面试宝典
- Netty实战
- 算法
BATJ面试要点及Java架构师进阶资料
System.out.println(str3 == str2);
步骤:
-
栈中开辟一块空间存放引用str3
-
堆中开辟一块新空间存放另外一个(不同于str2所指)新建的String对象
-
引用str3指向另外新建的那个String对象
-
str3和str2指向堆中不同的String对象,地址也不相同,输出为
false
String str4 = “a” + “b”;
System.out.println(str4 == “ab”);
步骤:
-
栈中开辟一块空间存放引用str4
-
根据编译器合并已知量的优化功能,池中开辟一块空间,存放合并后的String常量”ab”
-
引用str4指向池中常量”ab”
-
str4所指即池中常量”ab”,输出为
true
final String s = “a”;
String str5 = s + “b”;
System.out.println(str5 == “ab”);
同场景4的步骤
String s1 = “a”;
String s2 = “b”;
String str6 = s1 + s2;
System.out.println(str6 == “ab”);
步骤:
-
栈中开辟一块中间存放引用s1,s1指向池中String常量”a”
-
栈中开辟一块中间存放引用s2,s2指向池中String常量”b”
-
栈中开辟一块中间存放引用str5
-
s1 + s2通过StringBuilder的最后一步toString()方法还原一个新的String对象”ab”,因此堆中开辟一块空间存放此对象
-
引用str6指向堆中(s1 + s2)所还原的新String对象
-
str6指向的对象在堆中,而常量”ab”在池中,输出为
false
String str7 = “abc”.substring(0, 2);
步骤:
-
栈中开辟一块空间存放引用str7
-
substring()方法还原一个新的String对象”ab”(不同于str6所指),堆中开辟一块空间存放此对象
-
引用str7指向堆中的新String对象
最后的话
无论是哪家公司,都很重视Spring框架技术,重视基础,所以千万别小看任何知识。面试是一个双向选择的过程,不要抱着畏惧的心态去面试,不利于自己的发挥。
同时看中的应该不止薪资,还要看你是不是真的喜欢这家公司,好了希望这篇文章对大家有帮助!
部分截图:
解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**