Java初学者问题图解(动力节点Java学院整理)
作者:mrr 发布时间:2023-10-15 18:06:11
1. String对象不可改变的特性
下图显示了如下代码运行的过程:
String s = "abcd";
s = s.concat("ef");
图1
2. equals()与hashCode()方法协作约定
HashCode(哈希编码,散列码)是设计了用来提高性能的.
equals()与hashCode()方法之间的关系可以概括为:
1、如果两个对象相等(equal),那么必须拥有相同的哈希码(hash code)
2、即使两个对象有相同的哈希值(hash code),他们不一定相等.
图2
3. Java 异常类层次结构
粉红色的是受检查的异常(checked exceptions),其必须被 try{}catch语句块所捕获,或者在方法签名里通过throws子句声明.
另一类异常是运行时异常(runtime exceptions),需要程序员自己分析代码决定是否捕获和处理。
而声明为Error的,则属于严重错误,需要根据业务信息进行特殊处理,Error不需要捕捉。
图3
4. 集合类层次结构关系
注意Collections(工具类) 和 Collection(集合顶层接口) 的区别:
图4.1
图4.2
5. 锁——Java同步的基本思想
Java同步(synchronization)机制可以用一座大楼来比喻:
图5
6.Java对象引用处理机制
别名是指多个引用指向同一个内存地址(对象实际地址,可以理解为这就是对象),甚至这些引用的类型完全不一样.
图 6
7. Java 对象在堆中的内存结构
下图显示了运行时内存中方法和对象所处的地盘
绝大多数情况下:对象(及其属性域)都保存在堆里面,而方法的参数,局部变量(引用,以及6种基本类型)保存在栈里面.
当然,极特殊的情况下(极度优化[对象入栈],常量池[String],静态变量[方法区]等)也会打破这个潜规则。
图 7
8. JVM 运行时数据区
下图显示了JVM(Java虚拟机)运行时总体的数据区域划分
图8
以上所述是小编给大家介绍的Java初学者问题图解(动力节点Java学院整理),希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!


猜你喜欢
- Java中获取整点时间戳在实际的开发过程中,前端给后端传时间的时候,有时候传的是整点数值,比如:timeList=[00,01,02,03,
- start方法和run方法$start()$方法用来启动一个线程,这时此线程处于就绪(可运行)状态,并没有运行,一旦得到$cpu$时间片,就
- package com.chen.lucene.image;import java.io.File;import java.io.FileI
- 前段时间因为看JUC的源码,里面有大量关于unsafe的操作,所以就来看看了.写点笔记总结下(本文基于jdk1.8):unsafe可以帮我们
- 前沿知识ThreadLocal存储线程变量,使用set方法设置变量,使用get方法获取变量线程隔离的实现是每个Thread类有一个类型为Th
- 本文实例讲述了WPF中不规则窗体与WindowsFormsHost控件兼容问题的解决方法。分享给大家供大家参考。具体方法如下:这里首先说明一
- 需求说明在对图像进行处理时,经常会有这类需求:想通过阈值对图像进行二值化分割,以提取自己感兴趣的区域,常见的阈值分割方法有常数分割、最大类间
- 简介通过 pulsar-flink-connector 读取到 Apache pulsar 中的namespaces、topics的元数据信
- 一般而言,在传统的VB6中父子窗体(诸如“闪屏”窗体是“父窗体”加载内容,然后启动自动关闭,启动主窗体,是子窗体)的交互中,我们只需按照这样
- 前言使用过SpringBoot的都应该知道,一个SpringBoot 项目就是由一个一个 Starter 组成的,一个 Starter 代表
- 本文实例为大家分享了java实现简单年龄计算器的具体代码,供大家参考,具体内容如下制作一个如下图年龄计算器根据题目,我做了一个由Calend
- 单例模式应该是设计模式中比较简单的一个,也是非常常见的,但是在多线程并发的环境下使用却是不那么简单了,今天给大家分享一个我在开发过程中遇到的
- 1,USB存储设备(如:U盘,移动硬盘): //USB存储设备 插拔监听与 SD卡插拔监听一致。 private USB
- 1 简介先来一张效果图TIM图片.gif上图中灰色的一块是ImageView控件,ImageView中的图片进行左右上下移动,以及双指缩放。
- 本文实例讲述了C#简单聊天程序实现方法。分享给大家供大家参考。具体如下:假如有服务器端程序,ChatServer和客户端程序ChatClie
- 前言SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其
- 一 概述GC(Garbage Collection),在程序运行过程中内存空间是有限的,为了更好的的使用有限的内存空间,GC会将不再使用的对
- java线程同步原理java会为每个object对象分配一个monitor,当某个对象的同步方法(synchronizedmethods)被
- 是不是很讨厌mybatis Generator帮我们生成代码的时候在Mapper和mapper.xml文件中生成的一大堆注解?今天在看MyB
- @Profiles和@PropertySource根据环境切换配置文件使用@PropertySource注解加载配置文件,并制定解析配置文件