作者:程序猿编译团队-黑崎一护 编译
链接:programcreek.com/java-tutorials/
下图展示了如下的代码运行过程:
String s = "abcd";s = s.concat("ef");
备注:String reference variable :字符串引用变量 String object:字符串对象.关注微信公众号:互联网架构师,在后台回复:2T,可以获取我整理的架构师全套教程,都是干货。
哈希码是设计用于提高性能的。equals()和hashCode()的关系是:
2.1如果两个对象相等,那么它们一定有着相同的哈希码。
2.2即使两个对象有着相同的哈希码,但它们不一定相等。
备注:Hash Function:哈希函数 buckets:散列桶
红颜色标注的方块属于检查异常,这类异常必须通过在try—catch代码块里捕获异常或者在方法中用thorws申明抛出异常。
注意Collections和Collection的区别:
Collecitons:这个类由操作集合对象的静态方法和集合对象组成。
Java同步机制可以用一栋大楼来比喻阐述:
备注:special room:专用房间 wait room:等待室 hallway:走廊
引用别名机制是指多个引用可以定位到同一个能被更新的内存地址,而这些引用变量可以是不同的类型。关注微信公众号:互联网架构师,在后台回复:2T,可以获取我整理的架构师全套教程,都是干货。
7、栈和堆
下图展示了方法和对象在运行时在内存的存储位置
备注:Stack:栈 Heap:堆
下图展示了java虚拟机运行时总体的数据区域
备注:Thread:线程 PC Register:程序计数器 JVM Stack:Java虚拟机栈
Native Method Stack:本地方法栈 Heap:堆 Method Area:方法区:Runtime Constant Pool:运行时常量池