- 上一期我们介绍了HashMap的基本原理,没看过的小伙伴们可以点击下面的链接:漫画:什么是HashMap?这一期我们来讲解高并发环境下,HashMap可能出现的致命问题。HashMap的容量是有限的。当经过多次元素插入,使得HashMap达到一定饱和度时,Key映射位置发生冲突的几率会逐渐提高。这时候,HashMap需要扩展它的长度,也就是进行Resize。影响发生Resize的因素有两个:... 上一期我们介绍了HashMap的基本原理,没看过的小伙伴们可以点击下面的链接:漫画:什么是HashMap?这一期我们来讲解高并发环境下,HashMap可能出现的致命问题。HashMap的容量是有限的。当经过多次元素插入,使得HashMap达到一定饱和度时,Key映射位置发生冲突的几率会逐渐提高。这时候,HashMap需要扩展它的长度,也就是进行Resize。影响发生Resize的因素有两个:...
- 前两期我们讲解了HashMap的基本原理,以及高并发场景下存在的问题。没看过的小伙伴可以点击下面链接:漫画:什么是HashMap?漫画:高并发下的HashMapSegment是什么呢?Segment本身就相当于一个HashMap对象。同HashMap一样,Segment包含一个HashEntry数组,数组中的每一个HashEntry既是一个键值对,也是一个链表的头节点。单一的Segment结... 前两期我们讲解了HashMap的基本原理,以及高并发场景下存在的问题。没看过的小伙伴可以点击下面链接:漫画:什么是HashMap?漫画:高并发下的HashMapSegment是什么呢?Segment本身就相当于一个HashMap对象。同HashMap一样,Segment包含一个HashEntry数组,数组中的每一个HashEntry既是一个键值对,也是一个链表的头节点。单一的Segment结...
- 为什么这样写呢?我们来解释几个关键点:1.要想让一个类只能构建一个对象,自然不能让它随便去做new操作,因此Signleton的构造方法是私有的。2.instance是Singleton类的静态成员,也是我们的单例对象。它的初始值可以写成Null,也可以写成new Singleton()。至于其中的区别后来会做解释。3.getInstance是获取单例对象的方法。如果单例初始值是null,还... 为什么这样写呢?我们来解释几个关键点:1.要想让一个类只能构建一个对象,自然不能让它随便去做new操作,因此Signleton的构造方法是私有的。2.instance是Singleton类的静态成员,也是我们的单例对象。它的初始值可以写成Null,也可以写成new Singleton()。至于其中的区别后来会做解释。3.getInstance是获取单例对象的方法。如果单例初始值是null,还...
- 1. JavaGuide•Github 地址: https://github.com/Snailclimb/JavaGuide[1]•Star: 32.9k (6,196 stars this month)•介绍: 【Java 学习+面试指南】 一份涵盖大部分 Java 程序员所需要掌握的核心知识。2.advanced-java•Github 地址:https://github.com/do... 1. JavaGuide•Github 地址: https://github.com/Snailclimb/JavaGuide[1]•Star: 32.9k (6,196 stars this month)•介绍: 【Java 学习+面试指南】 一份涵盖大部分 Java 程序员所需要掌握的核心知识。2.advanced-java•Github 地址:https://github.com/do...
- 以下涉及到的数据统计与 2019 年 5 月 1 日 12 点,数据来源:https://github.com/trending/java?since=monthly。下面的内容从 Java 学习文档到最热门的框架再到热门的工具应有尽有,比如下面推荐到的开源项目 Hutool 就是近期比较热门的项目之一,它是 Java 工具包,能够帮助我们简化代码!我觉得下面这些项目对于学习 Java 的朋... 以下涉及到的数据统计与 2019 年 5 月 1 日 12 点,数据来源:https://github.com/trending/java?since=monthly。下面的内容从 Java 学习文档到最热门的框架再到热门的工具应有尽有,比如下面推荐到的开源项目 Hutool 就是近期比较热门的项目之一,它是 Java 工具包,能够帮助我们简化代码!我觉得下面这些项目对于学习 Java 的朋...
- 提到Java虚拟机(JVM),可能大部分人的第一印象是“难”,但当让我们真正走入“JVM世界”的时候,会发现其实问题并不像我们想象中的那么复杂。唯一真正令我们恐惧的,其实是恐惧本身。而作为整个JVM系列的首篇,本文将带你解除刚开始学习JVM时的种种疑惑。比如:什么是JVM?为什么学习JVM?怎么有效的学习JVM?带着以上的这些问题,让我们一起走入JVM的世界吧。一、什么是JVM?JVM简介:... 提到Java虚拟机(JVM),可能大部分人的第一印象是“难”,但当让我们真正走入“JVM世界”的时候,会发现其实问题并不像我们想象中的那么复杂。唯一真正令我们恐惧的,其实是恐惧本身。而作为整个JVM系列的首篇,本文将带你解除刚开始学习JVM时的种种疑惑。比如:什么是JVM?为什么学习JVM?怎么有效的学习JVM?带着以上的这些问题,让我们一起走入JVM的世界吧。一、什么是JVM?JVM简介:...
- 关于 JVM JDK 和 JRE 的讨论可以说已经烂大街了,但是还是会有人经常在群里问到这个问题。花了几个小时好好重新梳理了一下JVM JDK 和 JRE 以及Oracle JDK 和 OpenJDK这几个比较重要的概念。下面将自己的一些总结分享给各位。这部分内容已经加入 Java 基础总结,点击阅读原文即可查看。关于 JVM JDK 和 JRE 最详细通俗的解答JVMJava虚拟机(JVM... 关于 JVM JDK 和 JRE 的讨论可以说已经烂大街了,但是还是会有人经常在群里问到这个问题。花了几个小时好好重新梳理了一下JVM JDK 和 JRE 以及Oracle JDK 和 OpenJDK这几个比较重要的概念。下面将自己的一些总结分享给各位。这部分内容已经加入 Java 基础总结,点击阅读原文即可查看。关于 JVM JDK 和 JRE 最详细通俗的解答JVMJava虚拟机(JVM...
- 1. JavaGuideGithub地址: https://github.com/Snailclimb/JavaGuidestar: 22.8k介绍: 【Java学习+面试指南】 一份涵盖大部分Java程序员所需要掌握的核心知识。概览:2. advanced-javaGithub地址:https://github.com/doocs/advanced-javastar: 7.9k介绍: 互联... 1. JavaGuideGithub地址: https://github.com/Snailclimb/JavaGuidestar: 22.8k介绍: 【Java学习+面试指南】 一份涵盖大部分Java程序员所需要掌握的核心知识。概览:2. advanced-javaGithub地址:https://github.com/doocs/advanced-javastar: 7.9k介绍: 互联...
- 本文转载自公众号:Hollis 作者:Hollis 主要版本更新时间备注v1.02015-08-01首次发布v1.12018-03-12增加新技术知识、完善知识体系v2.02019-02-19结构调整,更适合从入门到精通;进一步完善知识体系; 新技术补充;1基础篇01 面向对象→ 什么是面向对象面向对象、面向过程面向对象的三大基本特征和五大基本原则→ 平台无关性Java 如何实现的平台无关J... 本文转载自公众号:Hollis 作者:Hollis 主要版本更新时间备注v1.02015-08-01首次发布v1.12018-03-12增加新技术知识、完善知识体系v2.02019-02-19结构调整,更适合从入门到精通;进一步完善知识体系; 新技术补充;1基础篇01 面向对象→ 什么是面向对象面向对象、面向过程面向对象的三大基本特征和五大基本原则→ 平台无关性Java 如何实现的平台无关J...
- 熟练掌握 BIO,NIO,AIO 的基本概念以及一些常见问题是你准备面试的过程中不可或缺的一部分,另外这些知识点也是你学习 Netty 的基础。目录:1. BIO (Blocking I/O)1.1 传统 BIO1.2 伪异步 IO1.3 代码示例1.4 总结2. NIO (New I/O)2.1 NIO 简介2.2 NIO的特性/NIO与IO区别1)Non-blocking IO(非阻塞I... 熟练掌握 BIO,NIO,AIO 的基本概念以及一些常见问题是你准备面试的过程中不可或缺的一部分,另外这些知识点也是你学习 Netty 的基础。目录:1. BIO (Blocking I/O)1.1 传统 BIO1.2 伪异步 IO1.3 代码示例1.4 总结2. NIO (New I/O)2.1 NIO 简介2.2 NIO的特性/NIO与IO区别1)Non-blocking IO(非阻塞I...
- 周日午后,刚刚放下手里的电话,正在给刚刚的面试者写评价。刚刚写到『对Linux的基本IO模型理解不深』这句的时候,女朋友突然出现。哈,这个面试者咋不知道IO模型呢,我都知道呢。 你怎么知道呢,你给我说说。上次你给我讲过呀。在Java中,主要有三种IO模型,分别是阻塞IO(BIO)、非阻塞IO(NIO)和 异步IO(AIO)。额、你说的这个是Java中提供的IO有关的API啊。并不是操作系统层... 周日午后,刚刚放下手里的电话,正在给刚刚的面试者写评价。刚刚写到『对Linux的基本IO模型理解不深』这句的时候,女朋友突然出现。哈,这个面试者咋不知道IO模型呢,我都知道呢。 你怎么知道呢,你给我说说。上次你给我讲过呀。在Java中,主要有三种IO模型,分别是阻塞IO(BIO)、非阻塞IO(NIO)和 异步IO(AIO)。额、你说的这个是Java中提供的IO有关的API啊。并不是操作系统层...
- CopyOnWriteArrayList是Java并发包中提供的一个并发容器,它是个线程安全且读操作无锁的ArrayList,写操作则通过创建底层数组的新副本来实现,是一种读写分离的并发策略,我们也可以称这种容器为"写时复制器",Java并发包中类似的容器还有CopyOnWriteSet。本文会对CopyOnWriteArrayList的实现原理及源码进行分析。实现原理我们都知道,集合框架中... CopyOnWriteArrayList是Java并发包中提供的一个并发容器,它是个线程安全且读操作无锁的ArrayList,写操作则通过创建底层数组的新副本来实现,是一种读写分离的并发策略,我们也可以称这种容器为"写时复制器",Java并发包中类似的容器还有CopyOnWriteSet。本文会对CopyOnWriteArrayList的实现原理及源码进行分析。实现原理我们都知道,集合框架中...
- 如下图所示,JVM类加载机制分为五个部分:加载,验证,准备,解析,初始化,下面我们就分别来看一下这五个过程。加载加载是类加载过程中的一个阶段,这个阶段会在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的入口。注意这里不一定非得要从一个Class文件获取,这里既可以从ZIP包中读取(比如从jar包和war包中读取),也可以在运行时计算生成(动态代理),... 如下图所示,JVM类加载机制分为五个部分:加载,验证,准备,解析,初始化,下面我们就分别来看一下这五个过程。加载加载是类加载过程中的一个阶段,这个阶段会在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的入口。注意这里不一定非得要从一个Class文件获取,这里既可以从ZIP包中读取(比如从jar包和war包中读取),也可以在运行时计算生成(动态代理),...
- 本文转载于公众号:crossoverJie前言平时接触过多线程开发的童鞋应该都或多或少了解过线程池,之前发布的《阿里巴巴 Java 手册》里也有一条:可见线程池的重要性。简单来说使用线程池有以下几个目的:线程是稀缺资源,不能频繁的创建。解耦作用;线程的创建于执行完全分开,方便维护。应当将其放入一个池子中,可以给其他任务进行复用。线程池原理谈到线程池就会想到池化技术,其中最核心的思想就是把宝贵... 本文转载于公众号:crossoverJie前言平时接触过多线程开发的童鞋应该都或多或少了解过线程池,之前发布的《阿里巴巴 Java 手册》里也有一条:可见线程池的重要性。简单来说使用线程池有以下几个目的:线程是稀缺资源,不能频繁的创建。解耦作用;线程的创建于执行完全分开,方便维护。应当将其放入一个池子中,可以给其他任务进行复用。线程池原理谈到线程池就会想到池化技术,其中最核心的思想就是把宝贵...
- 前言到了年底果然都不太平,最近又收到了运维报警:表示有些服务器负载非常高,让我们定位问题。还真是想什么来什么,前些天还故意把某些服务器的负载提高(没错,老板让我写个 BUG!),不过还好是不同的环境互相没有影响。定位问题拿到问题后首先去服务器上看了看,发现运行的只有我们的 Java 应用。于是先用 ps 命令拿到了应用的 PID。接着使用 ps-Hppid 将这个进程的线程显示出来。输入大写... 前言到了年底果然都不太平,最近又收到了运维报警:表示有些服务器负载非常高,让我们定位问题。还真是想什么来什么,前些天还故意把某些服务器的负载提高(没错,老板让我写个 BUG!),不过还好是不同的环境互相没有影响。定位问题拿到问题后首先去服务器上看了看,发现运行的只有我们的 Java 应用。于是先用 ps 命令拿到了应用的 PID。接着使用 ps-Hppid 将这个进程的线程显示出来。输入大写...
上滑加载中
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢
2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
回顾中 -
关于RISC-V生态发展的思考
2025/09/02 周二 17:00-18:00
中国科学院计算技术研究所副所长包云岗教授
中科院包云岗老师将在本次直播中,探讨处理器生态的关键要素及其联系,分享过去几年推动RISC-V生态建设实践过程中的经验与教训。
回顾中 -
一键搞定华为云万级资源,3步轻松管理企业成本
2025/09/09 周二 15:00-16:00
阿言 华为云交易产品经理
本直播重点介绍如何一键续费万级资源,3步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签