java常识3

简介: 本内容介绍了JVM的组成及HashMap的工作原理。JVM包括类加载器、运行时数据区(堆、方法区、虚拟机栈等)、执行引擎和本地接口。HashMap基于数组+链表/红黑树实现,1.8中引入树化机制优化性能,扩容时采用位运算提升效率。同时对比了ConcurrentHashMap在不同版本中的实现差异。

jvm组成

1.类加载器:负责将java的.class文件转化为字节码文件,并加载到运行数据区的方法区

2.运行时数据区: jvm的内存

运行数据区的组成:

堆:存储实例化对象  伊甸园:s0,s1 8:1:1  老年代:新生代  新生代->老年代 条件:15次、大对象、动态担保机制

方法区:存储类信息,常量,静态变量,jdk8之后移动至元空间

虚拟机栈:线程独有,存储方法调用,局部常量,返回信息,由一个个的栈帧组成,(一次方法调用产生一个栈帧),只有一个活动栈帧

本地方法栈:处理本地方法的调用

程序计数器:记录当前线程执行的字节码位置

3.执行引擎:负责执行字节码文件

解释器,逐行解释执行字节码文件

及时解释器:配将频繁调用的的代码前端转化为本地机器码,提高效率

垃圾回收gc,回收堆中不使用的对象实例,释放内存

4.本地借口,

通过底层调用c或者c++的方法,实现与操作系统的交互

HashMap

数据结构:

1.7是数组+链表

1.8是数组+链表/红黑树

树化的时机:数组长度大于64且链表长度大于8

扩容机制:

扩容因子是0.75是根据泊松分布验证的合理值,

扩容因子:过大导致冲突上升,过小导致空间利用率过低

扩容为原来的两倍

数组长度要数组容量必须是2的幂次方原因:

HashMap 要求容量是 2 的幂次方,最终目的是用高效的位运算代替取模运算,同时保证元素在数组中分布更均匀,从而提升查询、插入、删除的效率。

执行流程:

put的执行流程:

首先把key进行两次hash计算得到hashcode,两次hash运算主要是为了减少hash碰撞,以及其分布的更均匀

再通过与数组长度的取模运算,得到要存储的数组下标

通过数组下表查找,如果对应位置为空则key-value的node节点存储进去,否则进行相同key的链表上的查找,如果key相同则替换value,不存在则存储在链表的末端,同时判断是否达到树化的时机,是否进行树化

CourrentHashMap的区别?

  • 1.7:分段锁,16个Segement对象
  • 1.8:CAS+synchronized
  • 低冲突用CAS
  • 高冲突使用synchronized
  • monitor
  • 线程id
  • 计数器

分布式锁

redission

zookeeper

文件夹的唯一性

etcd3

可重入锁

synchronized

reetrantLock

相关文章
|
17天前
|
人工智能 JSON API
全网刷屏的 Jev 模型正式开放!一手实战测评 + 保姆级教程
全网爆火的 Jev 模型是什么?有什么用?怎么使用?怎么接入 AI 编程工具?效果真的好么?傻子可懂的 Jev 保姆级实战教程 + 项目实战测评来啦
8548 24
|
16天前
|
人工智能 并行计算 PyTorch
秋叶 ComfyUI 2026 整合包 v3.2 完整部署教程:Python 3.13 + Torch 2.13 全栈升级
秋叶aaaki ComfyUI 2026年8月整合包v3.2正式发布!全面升级Python 3.13.11、PyTorch 2.13.0+cu130及ComfyUI v0.30.2,原生支持MiniMax H3、Wan 2.2、Qwen-Image-2.1等2026主流音视频/图像模型,解压即用,无需环境配置。
2944 14
|
16天前
|
人工智能 测试技术 API
最近全网爆火的 Jev 到底是什么?适合干什么、怎么用,一篇讲透!
Jev是TypeSafe AI推出的“系统一模型”,不生成文本,专做毫秒级结构化决策:Choice(多选)、Score(打分)、Noul(是非概率)。响应快193倍、成本低444倍,适合工单路由、内容审核、测试定级等高频判断场景。
2065 4
最近全网爆火的 Jev 到底是什么?适合干什么、怎么用,一篇讲透!
|
14天前
|
人工智能 编解码 并行计算
MiniMax-H3 一键整合包技术文档:8G 显存运行 AI 漫剧制作 —— 角色替换 / 动作迁移 / 文图生视频部署与调参指南
MiniMax H3 是 MiniMax 开源的全模态视频生成模型,支持文/图/音/视多条件输入,输出最高2K、15秒带双声道音频视频。本文档详述其Int8量化版在8GB显存下的本地一键部署、三段式工作流(EDIT/REPLACE/CONTINUE)、参数调优及常见问题排查。(239字)
|
10天前
|
人工智能 Linux 开发者
【2026国内使用】Codex安装过程一篇讲透(Win/Mac/Linux全支持)
Codex是OpenAI推出的AI编程智能体,可读取本地项目、理解需求并自动修改代码。支持桌面GUI、命令行(CLI)及VS Code/Cursor插件三种形态,覆盖可视化操作、终端高效开发与编辑器无缝集成场景,助开发者用自然语言驱动编码全流程。(239字)
【2026国内使用】Codex安装过程一篇讲透(Win/Mac/Linux全支持)
|
5天前
|
人工智能 JSON Linux
【全网最详细】ComfyUI使用教程:下载+本地部署+配置+工作流搭建一篇搞定(2026最新版)
ComfyUI是一款免费开源的本地AI绘图工具,采用节点式工作流设计,支持文生图、图生图、局部重绘、放大、换脸等多种功能。可离线运行,依赖显卡加速,无需联网。支持自定义流程保存与分享,插件生态丰富,适合进阶用户。(239字)
|
10天前
|
人工智能 JSON 编解码
【2026最新版】ComfyUI本地部署教程,新手也能看懂!
ComfyUI是本地运行的AI绘画工具,采用节点式工作流设计:通过拖拽连接“加载模型”“提示词编码”“采样”“解码”等模块,实现高度可控的文生图。新手推荐使用秋叶整合包,一键启动、内置模型管理与插件安装器,轻松上手。(239字)

热门文章

最新文章