当前位置: 首页 > 科技观察

图解Java——8张最流行的图看懂Java机制

时间:2023-03-21 23:02:21 科技观察

希望这篇文章能帮助大家复习一下已经知道的知识。如果图片不够清晰,您可能需要阅读详细文章或进行搜索。1、String对象的不可变特性(请点击以上标题查看详情)下图显示了以下代码的运行过程:Strings="abcd";s=s.concat("ef");中文参考:JavaString详解2.equals()和hashCode()方法的配合协议HashCode(散列码,哈希码)是为了提高性能而设计的。equals()和hashCode()方法的关系可以概括为:2.1如果两个对象相等(equal),那么它们的哈希码(hashcode)一定相同2.2即使两个对象的哈希值相同(哈希码),它们不一定相等。中文参考:HashMap的实现原理3.Java异常类层次的粉红色是checkedexceptions(已检查异常),必须用try{}catch语句块捕获,或者通过方法签名中的throws子句声明。另一种异常是运行时异常(runtimeexceptions),程序员需要分析代码来决定是否捕获并处理它。声明为Error的为严重错误,需要根据业务信息进行特殊处理,不需要捕获Error。中文例子:Exception4。集合类之间的层次关系注意Collections(工具类)和Collection(集合顶层接口)的区别:中文参考:Collections5。Lock——Java同步的基本思想比喻:中文参考:ThreadSynchronization——synchronized6.Java对象引用处理机制的别名是指多个引用指向同一个内存地址(对象的实际地址,可以理解为对象),甚至这些引用的类型也完全不同。7.Java对象在堆中的内存结构下图是方法和对象在运行时在内存中的位置大多数情况下:对象(及其属性字段)存储在堆中,方法参数、局部变量(参考资料),和6种基本类型)存储在堆栈中。当然,在非常特殊的情况下(极限优化【对象栈】、常量池【String】、静态变量【方法区】等)也会打破这个潜规则。8.JVM运行时数据区下图为JVM(JavaVirtualMachine)运行时整体数据区划分