8张图带你深入理解Java

有时候一张图往往胜过千言万语。下列的图是来自于Program Creek的Java教程,这是至今为止最受欢迎的文章。希望这些图能够帮助你复习已经学习到的知识。如果你通过这些图还无法将问题弄明白,那么你可能就要去阅读详细的文章来更进一步地学习Java


1、字符串的不变性(http://www.9ymw.com/高质量代码下载)


下图展示了如下的代码运行过程:


String s = "abcd";s = s.concat("ef");



备注:String reference variable :字符串引用变量 String object:字符串对象


2、equals() 和hashCode()的关系(http://www.9ymw.com/高质量代码下载)


哈希码是设计用于提高性能的。equals()和hashCode()的关系是:


2.1如果两个对象相等,那么它们一定有着相同的哈希码。

2.2即使两个对象有着相同的哈希码,但它们不一定相等。



备注:Hash Function:哈希函数 buckets:散列桶

3、Java异常类的层次结构(http://www.9ymw.com/高质量代码下载)


红颜色标注的方块属于检查异常,这类异常必须通过在try—catch代码块里捕获异常或者在方法中用thorws申明抛出异常。




4、集合类的层次结构(http://www.9ymw.com/高质量代码下载)


注意Collections和Collection的区别:



备注:Collection:是集合类层次结构的最顶层接口。

Collecitons:这个类由操作集合对象的静态方法和集合对象组成。




5、Java同步机制(http://www.9ymw.com/高质量代码下载)


Java同步机制可以用一栋大楼来比喻阐述:


备注:special room:专用房间 wait room:等待室 hallway:走廊


6、引用别名机制(http://www.9ymw.com/高质量代码下载)


引用别名机制是指多个引用可以定位到同一个能被更新的内存地址,而这些引用变量可以是不同的类型。




7、栈和堆(http://www.9ymw.com/高质量代码下载)


下图展示了方法和对象在运行时在内存的存储位置



备注:Stack:栈 Heap:堆


8、Java虚拟机运行时数据区域(http://www.9ymw.com/高质量代码下载)


下图展示了java虚拟机运行时总体的数据区域




备注:Thread:线程 PC Register:程序计数器 JVM Stack:Java虚拟机栈

Native Method Stack:本地方法栈 Heap:堆 Method Area:方法区Runtime Constant Pool:运行时常量池(http://www.9ymw.com/高质量代码下载)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值