专栏首页微信公众号:Java团长图说Java —— 理解Java机制最受欢迎的8幅图

图说Java —— 理解Java机制最受欢迎的8幅图

世间总是一图胜过千万言!

下面的8幅图来自于 Program Creek 的 Java教程 ,目前这是该网站最受欢迎的文章. 希望本文能帮你回顾你已经知道的那些知识。如果图片讲解的不够清晰,你可能需要阅读详细的文章或者进行搜索。

1. String对象不可改变的特性

(详情请点击上面的标题查看)

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

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

中文参考:Java String 详解

2. equals()与hashCode()方法协作约定

HashCode(哈希编码,散列码)是设计了用来提高性能的. equals()与hashCode()方法之间的关系可以概括为: 2.1 如果两个对象相等(equal),那么必须拥有相同的哈希码(hash code) 2.2 即使两个对象有相同的哈希值(hash code),他们不一定相等. 中文参考: HashMap的实现原理

3. Java 异常类层次结构 粉红色的是受检查的异常(checked exceptions),其必须被 try{}catch语句块所捕获,或者在方法签名里通过throws子句声明. 另一类异常是运行时异常(runtime exceptions),需要程序员自己分析代码决定是否捕获和处理。 而声明为Error的,则属于严重错误,需要根据业务信息进行特殊处理,Error不需要捕捉。 中文示例: Exception

4. 集合类层次结构关系 注意Collections(工具类) 和 Collection(集合顶层接口) 的区别: 中文参考: Collections

5. 锁——Java同步的基本思想 Java同步(synchronization)机制可以用一座大楼来比喻: 中文参考: 线程同步---synchronized

6.Java对象引用处理机制 别名是指多个引用指向同一个内存地址(对象实际地址,可以理解为这就是对象),甚至这些引用的类型完全不一样.

7. Java 对象在堆中的内存结构 下图显示了运行时内存中方法和对象所处的地盘 绝大多数情况下:对象(及其属性域)都保存在堆里面,而方法的参数,局部变量(引用,以及6种基本类型)保存在栈里面. 当然,极特殊的情况下(极度优化[对象入栈],常量池[String],静态变量[方法区]等)也会打破这个潜规则。

8. JVM 运行时数据区 下图显示了JVM(Java虚拟机)运行时总体的数据区域划分

本文分享自微信公众号 - Java团长(javatuanzhang)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-06-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java学习路线图

    其实Java不算完全面向对象的语言。Java更偏实用性,很多控制流(if语句、while循环、for循环等)来自面向过程的语言;基本数据类型(int, char...

    Java团长
  • 12个提高Java程序员工作效率的工具

    Java开发者常常都会想办法如何更快地编写Java代码,让开发过程变得更加轻松,更加高效。目前,市面上涌现出越来越多的高效编程工具。团长总结了几个常用的工具,其...

    Java团长
  • BATJ等公司必问的8道Java经典面试题,你都会了吗?

    我在 Oracle 已经工作了近 7 年,面试过从初级到非常资深的 Java 工程师,且由于 Java 组工作任务的特点,我非常注重面试者的计算机科学基础和编程...

    Java团长
  • 12道囊括重要的东西的 Java 基础问题

    谈谈你对 JVM JDK 和 JRE 的理解(JDK 和 JRE的区别是什么?)。什么是字节码?为什么要采用字节码?

    乔戈里
  • Java虚拟机的Heap监狱

    在Java虚拟机中,我是一个位高权重的大管家,他们都很怕我,尤其是那些Java 对象,我把他们圈到一个叫做Heap的“监狱”里,严格管理,生杀大权尽在掌握。

    用户1260737
  • js行内式遇到的一些问题 DOM对象和jq对象转换的问题

    这两天给后台页面做页面,我的工作比较简单,只需要写结构和样式就行了,写好之后,后端大哥用ajax重写页面加载数据,顺便给标签添加选中事件,做选中后变色的处理,但...

    吴裕超
  • Django基础篇-请求

    服务器接收到 http 协议的请求后,会根据 报文 创建 HttpRequest 对象视图函数的第一个参数是 HttpRequest 对象在 django.ht...

    小团子
  • c#面向对象基础

    面向过程:面向完成这件事的过程,强调的是完成这件事的动作(针对每个人量身定做的动作)。

    wfaceboss
  • 《Head First 设计模式》笔记

    软件开发的一个不变真理:不管当初软件设计得多好,一段时间后,总是需要成长与改变,否则软件就会“死亡”。

    谛听
  • Go 语言内存管理(二):Go 内存管理

    了解操作系统对内存的管理机制后,现在可以去看下 Go 语言是如何利用底层的这些特性来优化内存的。Go 的内存管理基本上参考 tcmalloc 来实现的,只是细节...

    李海彬

扫码关注云+社区

领取腾讯云代金券