8张图带你深入理解Java
1、字符串的不变性
下图展示了如下的代码运行过程:
String s = "abcd";s = s.concat("ef");
备注:String reference variable :字符串引用变量 String object:字符串对象
2、equals() 和hashCode()的关系
哈希码是设计用于提高性能的。equals()和hashCode()的关系是:
2.1如果两个对象相等,那么它们一定有着相同的哈希码。
2.2即使两个对象有着相同的哈希码,但它们不一定相等。
备注:Hash Function:哈希函数 buckets:散列桶
3、Java异常类的层次结构
红颜色标注的方块属于检查异常,这类异常必须通过在try—catch代码块里捕获异常或者在方法中用thorws申明抛出异常。
4、集合类的层次结构
注意Collections和Collection的区别:
Collecitons:这个类由操作集合对象的静态方法和集合对象组成。
5、Java同步机制
Java同步机制可以用一栋大楼来比喻阐述:
备注:special room:专用房间 wait room:等待室 hallway:走廊
6、引用别名机制
引用别名机制是指多个引用可以定位到同一个能被更新的内存地址,而这些引用变量可以是不同的类型。
7、栈和堆
下图展示了方法和对象在运行时在内存的存储位置
备注:Stack:栈 Heap:堆
8、Java虚拟机运行时数据区域
下图展示了java虚拟机运行时总体的数据区域
备注:Thread:线程 PC Register:程序计数器 JVM Stack:Java虚拟机栈
Native Method Stack:本地方法栈 Heap:堆 Method Area:方法区:Runtime Constant Pool:运行时常量池
8张图带你深入理解Java的更多相关文章
- 5000字 | 24张图带你彻底理解Java中的21种锁
本篇主要内容如下: 本篇文章已收纳到我的Java在线文档. Github 我的SpringCloud实战项目持续更新中 帮你总结好的锁: 序号 锁名称 应用 1 乐观锁 CAS 2 悲观锁 synch ...
- 10张图带你深入理解Docker容器和镜像
http://dockone.io/article/783 [编者的话]本文用图文并茂的方式介绍了容器.镜像的区别和Docker每个命令后面的技术细节,能够很好的帮助读者深入理解Docker. Doc ...
- 10 张图带你深入理解 Docker 容器和镜像
这篇文章希望能够帮助读者深入理解 Docker 的命令,还有容器(container)和镜像(image)之间的区别,并深入探讨容器和运行中的容器之间的区别. 当我对 Docker 技术还是一知半解的 ...
- 10张图带你深入理解Docker容器和镜像-转
转载:http://dockone.io/article/783 这篇文章希望能够帮助读者深入理解Docker的命令,还有容器(container)和镜像(image)之间的区别,并深入探讨容器和运行 ...
- 8张图带你轻松温习Java知识
年初四好,一图胜千言,下面图解均来自Program Creek 网站,目前它们拥有最多的票选. 如果图解没有阐明问题,那么你可以借助它的标题来一窥究竟. 1 字符串不变性 下面这张图展示了这段代码做了 ...
- 【转】10张图带你深入理解Docker容器和镜像
[转自]:http://dockone.io/article/783 待续
- 8张图带你理解Java整个只是网络(转载)
8张图带你理解Java整个只是网络 一图胜千言,下面图解均来自Program Creek 网站的Java教程,目前它们拥有最多的票选.如果图解没有阐明问题,那么你可以借助它的标题来一窥究竟. 1.字符 ...
- 47 张图带你 MySQL 进阶!!!
我们在 MySQL 入门篇主要介绍了基本的 SQL 命令.数据类型和函数,在局部以上知识后,你就可以进行 MySQL 的开发工作了,但是如果要成为一个合格的开发人员,你还要具备一些更高级的技能,下面我 ...
- 【转】深入理解 Java 垃圾回收机制
深入理解 Java 垃圾回收机制 一.垃圾回收机制的意义 Java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再 ...
随机推荐
- hadoop常用基础命令
1.日志查询: 用户可使用以下命令在指定路径下查看历史日志汇总$ bin/hadoop job -history output-dir 这条命令会显示作业的细节信息,失败和终止的任务细节. 关于作业的 ...
- Python TF-IDF计算100份文档关键词权重
上一篇博文中,我们使用结巴分词对文档进行分词处理,但分词所得结果并不是每个词语都是有意义的(即该词对文档的内容贡献少),那么如何来判断词语对文档的重要度呢,这里介绍一种方法:TF-IDF. 一,TF- ...
- iOS学习笔记---c语言学习第七天
结构体 结构体是一种自定义的数据类型 struct 结构体名 { 类型说明符 成员名: … 类型说明符 成员名: }: #import <Foundation/Foundation.h& ...
- ss命令使用示例
导读 ss是Socket Statistics的缩写,可以用来获取socket统计信息,它可以显示和netstat类似的内容.但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比n ...
- Codeforces Round #136 (Div. 2)
A. Little Elephant and Function 逆推. B. Little Elephant and Numbers \(O(\sqrt n)\)枚举约数. C. Little Ele ...
- scala言语基础学习十
类型参数 泛型函数 多个参数 使用泛型参数时候,不给类型scala也能自己判断 上边界bounds 下边界bounds 专门用于打包泛型数组
- Codeforces378 D Kostya the Sculptor(贪心)(逻辑)
Kostya the Sculptor time limit per test 3 seconds memory limit per test 256 megabytes input standard ...
- 《苹果开发之Cocoa编程》挑战1 创建委托 练习
<苹果开发之Cocoa编程>第4版 P87 新建一个单窗口应用程序,设置某对象为窗口的委托,当用户调整窗口尺寸时,确保窗口高度为宽度的2倍. 需要实现的委托方法为:-(NSSize)win ...
- Java——IO(输入输出流)
* * 想要知道开发时用到哪些数据对象,只要通过四个明确即可: * 1.明确源,和目的: * 源: InputStream reader * 目的: OutPutStream Write ...
- web-api-global-error-handling
http://www.asp.net/web-api/overview/error-handling/web-api-global-error-handling http://www.cnblogs. ...