Java初学者问题图解(动力节点Java学院整理)

作者:mrr 时间:2023-10-15 18:06:11 

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

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


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

Java初学者问题图解(动力节点Java学院整理)

图1

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

HashCode(哈希编码,散列码)是设计了用来提高性能的.

equals()与hashCode()方法之间的关系可以概括为:

1、如果两个对象相等(equal),那么必须拥有相同的哈希码(hash code)

2、即使两个对象有相同的哈希值(hash code),他们不一定相等.

Java初学者问题图解(动力节点Java学院整理)

图2

3. Java 异常类层次结构

粉红色的是受检查的异常(checked exceptions),其必须被 try{}catch语句块所捕获,或者在方法签名里通过throws子句声明.

另一类异常是运行时异常(runtime exceptions),需要程序员自己分析代码决定是否捕获和处理。

而声明为Error的,则属于严重错误,需要根据业务信息进行特殊处理,Error不需要捕捉。

Java初学者问题图解(动力节点Java学院整理)

图3

4. 集合类层次结构关系

注意Collections(工具类) 和 Collection(集合顶层接口) 的区别:

Java初学者问题图解(动力节点Java学院整理)

图4.1

Java初学者问题图解(动力节点Java学院整理)

图4.2

5. 锁——Java同步的基本思想

Java同步(synchronization)机制可以用一座大楼来比喻:

Java初学者问题图解(动力节点Java学院整理)

图5

6.Java对象引用处理机制

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

Java初学者问题图解(动力节点Java学院整理)

图 6

7. Java 对象在堆中的内存结构

下图显示了运行时内存中方法和对象所处的地盘

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

Java初学者问题图解(动力节点Java学院整理)

图 7

8. JVM 运行时数据区

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

Java初学者问题图解(动力节点Java学院整理)

图8

以上所述是小编给大家介绍的Java初学者问题图解(动力节点Java学院整理),希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

标签:java,初学者,问题
0
投稿

猜你喜欢

  • C#实现数据包加密与解密实例详解

    2022-05-14 18:44:50
  • 英语单词state与status的区别

    2021-09-04 13:57:34
  • Java动态添加view的方法

    2023-06-11 04:20:38
  • Android获取SD卡路径及SDCard内存的方法

    2021-12-30 17:04:58
  • Intellij搭建springmvc常见问题解决方案

    2023-07-23 12:53:29
  • Android中Notification通知用法详解

    2023-02-24 02:37:51
  • 图文详解OkHttp的超时时间

    2022-05-14 13:50:23
  • winform实现限制及解除鼠标移动范围的方法

    2023-07-17 22:11:51
  • Django之多对多查询与操作方法详解

    2021-08-03 03:21:58
  • Android 去掉状态栏的方法汇总

    2022-05-25 01:31:18
  • spring框架集成flyway项目的详细过程

    2023-09-14 11:47:14
  • Unity实现VR中在黑板上写字效果

    2021-08-04 20:11:11
  • asp.net之生成验证码的方法集锦(一)

    2022-09-07 22:37:13
  • C# FileStream文件读写详解

    2021-10-27 15:44:14
  • springboot整合kaptcha生成验证码功能

    2023-07-14 21:48:51
  • 详解Struts2中json 相互引用死循环解决办法

    2022-09-08 04:04:46
  • java泛型中占位符T和?有什么区别

    2022-07-05 02:53:56
  • java(jdk)环境变量配置(XP、win7、win8)图文教程详解

    2021-11-01 15:06:48
  • C#中重载重写和覆盖的定义与区别

    2022-04-23 09:25:34
  • Java二维数组简单定义与使用方法示例

    2022-01-28 08:31:37
  • asp之家 软件编程 m.aspxhome.com