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相关推荐
- 扔掉源码,15张图带你彻底理解java AQS
java中AQS是AbstractQueuedSynchronizer类,AQS依赖FIFO队列来提供一个框架,这个框架用于实现锁以及锁相关的同步器,比如信号量.事件等. 在AQS中,主要有两部分功能 ...
- 24张图带你彻底理解Java中的21种锁
本篇主要内容如下: 本篇主要内容 本篇文章已收纳到我的Java在线文档. Github 我的SpringCloud实战项目持续更新中 帮你总结好的锁: 序号 锁名称 应用 1 乐观锁 CAS 2 悲观 ...
- java中怎么判断一段代码时线程安全还是非线程安全_24张图带你彻底理解Java中的21种锁...
(给ImportNew加星标,提高Java技能) 转自:悟空聊架 本篇主要内容如下: 本篇文章已收纳到我的 Java 在线文档. Github.我的 SpringCloud 实战项目持续更新中. 帮你 ...
- 8张图带你轻松温习Java知识
转载自 8张图带你轻松温习Java知识 1 字符串不变性 下面这张图展示了这段代码做了什么 [code ]String s = "abcd"; s = s.concat(&quo ...
- 10张图带你深入理解Docker容器和镜像--云平台技术栈07
导读:之前发布了云平台技术栈(ps:点击可查看),本文主要说一下其中的Docker! 翻译:杨润青 这篇文章希望能够帮助读者深入理解Docker的命令,还有容器(container)和镜像(image ...
- 10张图带你深入理解Docker容器和镜像
本文用图文并茂的方式介绍了容器.镜像的区别和Docker每个命令后面的技术细节,能够很好的帮助读者深入理解Docker. 这篇文章希望能够帮助读者深入理解Docker的命令,还有容器(containe ...
- 10 张图带你深入理解Docker容器和镜像
此文中部分信息.图片需要 fan qiang , 如果未能正常显示,文末有原文连接 . [Kubernetes培训通知]DockOne将会于2018年5月18日在上海举办Kubernetes技术培训, ...
- Docker--10张图带你深入理解Docker容器和镜像
这篇文章希望能够帮助读者深入理解Docker的命令,还有容器(container)和镜像(image)之间的区别,并深入探讨容器和运行中的容器之间的区别. 当我对Docker技术还是一知半解的时候,我 ...
- 红黑树分为红和黑有什么好处_30 张图带你彻底理解红黑树
点击上方"程序员大白",选择"星标"公众号 重磅干货,第一时间送达 来源:编程那些事等等 本文将通过图文的方式讲解红黑树的知识点,并且不会涉及到任何代码,相信我 ...
最新文章
- python读取word
- UBUNTU添加开机自动启动程序方法
- IDEA快捷键(修改成eclipse版)+Templates
- 强势崛起的Python会在十年内取代Java吗?
- 云原生开发框架dapr环境搭建:CLI安装和初始化
- LeetCode动态规划 最大子序和
- 【笔记】MySQL的基础学习(二)
- 数据库的Timeout
- EasyUI-在iframe里获取现阶段选中的tab的标题
- asp.net(C#)软件中多语言解决方案
- 实现透明防火墙的必备知识-Bridge Filter半景
- Xray配合awvs漏洞扫描
- android第三方视频播放加密,android 视频 加密/解密(使用AES)
- 【Scratch案例实操】scratch变魔术 scratch编程案例教学 scratch创意编程 少儿编程教案
- ai修复照片软件是哪个软件_智能照片修复
- win7计算机打印机共享权限设置,win7共享打印机(没有权限访问)
- 如何下载百度地图离线包并导入OruxMaps
- OpenCV——PS 滤镜, 浮雕效果
- React Native 应用深度链接是如何通过 URL打开到指定页面
- 头条粉丝红利期来了,最新涨粉攻略我真不想告诉你
热门文章
- python语言入门m-Python入门基础三-函数
- python 基础命令-Python 命令行(CLI)基础库
- python和c-C和Python我该先学什么?
- python安装pip-安装pip的三种方法
- python教程书籍-推荐python机器学习实践的书籍?
- 行为模式之Observer模式
- 毕业设计第四次任务书
- 佩特来项目经验小集合(2)___组合查询存储过程,报错 quot;varchar JBID=#39;#39; 转换成数据类型 int 时失败quot;...
- Emmet插件使用方法总结
- 【Irrlicht鬼火引擎】 安装配置Irrlicht鬼火引擎