博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
8张图带你深入理解Java
阅读量:2183 次
发布时间:2019-05-02

本文共 1015 字,大约阅读时间需要 3 分钟。

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

备注: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:运行时常量池(高质量代码下载)

转载地址:http://bvakb.baihongyu.com/

你可能感兴趣的文章
进程和线程的概念、区别和联系
查看>>
CMake 入门实战
查看>>
绑定CPU逻辑核心的利器——taskset
查看>>
Linux下perf性能测试火焰图只显示函数地址不显示函数名的问题
查看>>
c结构体、c++结构体和c++类的区别以及错误纠正
查看>>
Linux下查看根目录各文件内存占用情况
查看>>
A星算法详解(个人认为最详细,最通俗易懂的一个版本)
查看>>
利用栈实现DFS
查看>>
逆序对的数量(递归+归并思想)
查看>>
数的范围(二分查找上下界)
查看>>
算法导论阅读顺序
查看>>
Windows程序设计:直线绘制
查看>>
linux之CentOS下文件解压方式
查看>>
Django字段的创建并连接MYSQL
查看>>
div标签布局的使用
查看>>
HTML中表格的使用
查看>>
(模板 重要)Tarjan算法解决LCA问题(PAT 1151 LCA in a Binary Tree)
查看>>
(PAT 1154) Vertex Coloring (图的广度优先遍历)
查看>>
(PAT 1115) Counting Nodes in a BST (二叉查找树-统计指定层元素个数)
查看>>
(PAT 1143) Lowest Common Ancestor (二叉查找树的LCA)
查看>>