8张图带你深入理解Java
2016-02-24 21:27
696 查看
有时候一张图往往胜过千言万语。下列的图是来自于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/高质量代码下载)
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/高质量代码下载)
相关文章推荐
- JAVA_继承演示02_ExtendsDeamo01.java super关键字
- JAVA_继承演示02_ExtendsDeamo01.java super关键字
- 显示当前月的日历 1(java实现)
- java 对象克隆
- 关于写的Java书籍进展
- Java语言设计人员笔记: 首先不要造成伤害
- RxJava入门初体验
- JAVA_继承演示01_ExtendsDeamo01.java
- JAVA_继承演示01_ExtendsDeamo01.java
- Java编码易疏忽的十个问题
- Java类的封装的好处
- 偏执却管用的10条Java编程技巧
- java中的final,finally,finalize()
- Java 编程中关于异常处理的 10 个最佳实践
- JSP+Servlet+Struts2的基本原理学习笔记
- 继承,装饰者模式和动态代理之间的区别
- 《JAVA编程思想》日志(一)------对象导论
- 10个精妙的Java编码最佳实践
- 328. Odd Even Linked List
- 在springmvc中配置jedis: