新闻详情

新闻详情

首页 / 资讯中心 / 详情

一文掌握Java常见八股

发布时间:2026/9/2 6:12:13来源:尧图网络
一文掌握Java常见八股
集合ArrayList为什么new ArrayList时建议指定初始化容量值如果设置的初始值合适就可以避免数组扩容因为数组扩容耗费内存资源。为什么扩容机制是扩容为原数组的1.5倍内存使用和性能之间的权衡。List是线程安全的吗不是当多个线程同时执行add()导致元素覆盖同时扩容数据丢失解决方式使用synchronized 代码块包裹操作使用CopyOnWriteArrayListCopyOnWriteArrayList 的实现原理首先CopyOnWriteArrayList内部也是用数组来实现在向CopyOnWriteArrayList添加元素时会复制一个新数组写操作在新数组上进行度操作在原数组上进行读写分离的设计并且写操作会加锁防止出现并发写入时元素覆盖问题写操作结束后会把原数组指向新数组优点不加锁提升性能适合读多写少缺点比较占内存且实时性不是很好HashMap底层的数据结构JDK1.7数组链表JDK1.8数据链表红黑树工作原理分为三步怎么存存一个 Key-Value 时先算 Key的 hashCode然后用(table.length-1) hash算出应该放在数组的哪个下标位置。冲突了怎么办两个不同的 key 算出来的下标一样就叫哈希冲突。HashMap 的解决方式是用链表把它们串起来。JDK 8 做了优化如果同一个下标的链表长度超过 8 个节点就转成红黑树查找速度从 O(n) 变成 O(log n)。扩容机制当数组使用率达到 75% 时自动触发扩容数组大小翻倍然后把所有数据重新算位置放到新数组中叫做ReshHash。耗性能所以初始化最好给个预估量hashmap不是线程安全若 HashMap 作为多线程的共享数据比如单实例的成员变量、静态变量等那么多线程并发修改 HashMap 时会出现线程不安全的问题。解决用synchronized代码块包裹。使用ConcurrentHashMapJava 中 ConcurrentHashMap 1.7 和 1.8 之间有哪些区别两个版本的核心区别在于锁粒度JDK 1.7 采用分段锁设计底层把整个数组分成 16 个 segment。每个 segment 里面是一个完整的 HashMap 加一个 lock。不同线程访问不同 segment 完全不争只有访问同一个 segment 时才有锁定。因此其并发最高可达 16。JDK 1.8 移除了 Segment 锁将锁粒度细化到数组。每个槽位的数据结构跟 HashMap 同步变成了“数组 链表 红黑树”。插入时先用 CAS 无锁尝试插入到数组位置如果真发生冲突了才使用 synchronized。而且它只锁链表的头节点其他线程可以照样操作别的 bucket并发大大增加。反射反射允许程序在运行时动态地检查、修改或调用类、方法、属性、构造函数等代码结构的信息。增加程序的灵活性和通用性使用场景框架开发如 Spring 的依赖注入、AOP 的动态代理。动态加载类如插件化架构。序列化、反序列化如 JSON 库将对象转为字符串。测试工具。弊端性能开销大反射操作比直接调用慢。安全风险可能破坏封装性暴露私有逻辑。维护困难反射代码可读性差调试复杂。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

ADB安卓调试桥:从原理到实践,打造自动化设备管理助手 2026/9/2 6:45:18

ADB安卓调试桥:从原理到实践,打造自动化设备管理助手

你是不是也遇到过这样的场景:想给家里的旧安卓电视装个第三方应用,结果系统提示“禁止安装未知来源”;或者想看看手机里某个App到底在后台偷偷干了什么,却苦于没有合适的工具;又或者,你只是单纯好奇&#x…

阅读更多 →
SSM框架实战:从零构建客户管理系统,掌握Java Web开发核心 2026/9/2 6:45:18

SSM框架实战:从零构建客户管理系统,掌握Java Web开发核心

简介:本资源是一套面向计算机专业本科生毕业设计及Java初学者实战训练的客户关系管理(CRM)系统,基于SSM(SpringSpringMVCMyBatis)框架开发,覆盖客户资料管理、服务跟踪、交易记录、客户等级与开…

阅读更多 →
HoRain云--CSS3 边框 2026/9/2 6:45:18

HoRain云--CSS3 边框

CSS3 边框 用 CSS3,你可以创建圆角边框,添加阴影框,并作为边界的形象而不使用设计程序,如 Photoshop。 在本章中,您将了解以下的边框属性: border-radiusbox-shadowborder-image CSS3 圆角 在 CSS2 中添…

阅读更多 →
HoRain云--CSS 网页布局 2026/9/2 6:45:18

HoRain云--CSS 网页布局

网页布局网页布局有很多种方式,一般分为以下几个部分:头部区域、菜单导航区域、内容区域、底部区域。头部区域头部区域位于整个网页的顶部,一般用于设置网页的标题或者网页的 logo:CSS3 实例.header { background-color: #F1F1F1;…

阅读更多 →
电赛省一攻略:从工程化思维到稳定作品的全流程实践 2026/9/2 6:45:18

电赛省一攻略:从工程化思维到稳定作品的全流程实践

1. 这篇文章真正要解决的问题如果你正在备战2024年全国大学生电子设计竞赛,并且目标不仅仅是“参与”,而是冲击“省一”甚至更高奖项,那么这篇文章就是为你准备的。电赛获奖,尤其是高等级奖项,从来不是靠临场发挥的灵光…

阅读更多 →
交通信号智能调控:Python+SUMO+DQN工程落地全链路 2026/9/2 6:42:18

交通信号智能调控:Python+SUMO+DQN工程落地全链路

简介:本资源是一套面向高校毕业设计与交通智能控制课程实践的DQN强化学习交通信号灯相位优化系统,聚焦微观交通仿真场景下的动态配时决策问题。系统基于Python开发,深度集成SUMO仿真平台,通过DQN算法实现车道级车辆密度、排队长度…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞