- Collection线程不安全的举例 前言单线程环境下多线程环境解决方案方案一:Vector方案二:Collections.sychronized()方案三:采用JUC里面的方法 HashSet线程不安全HashSet底层结构 HashMap线程不安全解决方法 前言 1、当我们执行下面语句的时候,底层进行了什么操作 new ArrayList... Collection线程不安全的举例 前言单线程环境下多线程环境解决方案方案一:Vector方案二:Collections.sychronized()方案三:采用JUC里面的方法 HashSet线程不安全HashSet底层结构 HashMap线程不安全解决方法 前言 1、当我们执行下面语句的时候,底层进行了什么操作 new ArrayList...
- 为什么要读JDK源码 当然不是为了装,毕竟谁没事找事虐自己 ... 1、面试跑不掉。现在只要面试Java相关的岗位,肯定或多或少会会涉及JDK源码相关的问题。 2、弄懂原理才不慌。我们作为JDK的使用者,虽然说天天用得很开心,但是有时候遇到问题还是得跟到底层源码去看看,才能帮助我们更好的弄懂原理, 3、学习优秀的代码、思想和模式。JDK毕竟是一个优秀的代码库,我们... 为什么要读JDK源码 当然不是为了装,毕竟谁没事找事虐自己 ... 1、面试跑不掉。现在只要面试Java相关的岗位,肯定或多或少会会涉及JDK源码相关的问题。 2、弄懂原理才不慌。我们作为JDK的使用者,虽然说天天用得很开心,但是有时候遇到问题还是得跟到底层源码去看看,才能帮助我们更好的弄懂原理, 3、学习优秀的代码、思想和模式。JDK毕竟是一个优秀的代码库,我们...
- 1. 代理模式 代理模式是一种比较好的理解的设计模式。简单来说就是 我们使用代理对象来代替对真实对象(real object)的访问,这样就可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对象的功能。 代理模式的主要作用是扩展目标对象的功能,比如说在目标对象的某个方法执行前后你可以增加一些自定义的操作。 举个例子:你的找了一小红来帮你问话,小红就看作是... 1. 代理模式 代理模式是一种比较好的理解的设计模式。简单来说就是 我们使用代理对象来代替对真实对象(real object)的访问,这样就可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对象的功能。 代理模式的主要作用是扩展目标对象的功能,比如说在目标对象的某个方法执行前后你可以增加一些自定义的操作。 举个例子:你的找了一小红来帮你问话,小红就看作是...
- 本节书摘来自华章计算机《从零开始学Hadoop大数据分析(视频教学版)》 一书中第2章,第2.6.2节,作者是温春水 毕洁馨 。 本节书摘来自华章计算机《从零开始学Hadoop大数据分析(视频教学版)》 一书中第2章,第2.6.2节,作者是温春水 毕洁馨 。
- 本节书摘来自华章计算机《从零开始学Hadoop大数据分析(视频教学版)》 一书中第2章,第2.6.1节,作者是温春水 毕洁馨 。 本节书摘来自华章计算机《从零开始学Hadoop大数据分析(视频教学版)》 一书中第2章,第2.6.1节,作者是温春水 毕洁馨 。
- 关于 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...
- 阅读Java源码的前提条件:1、技术基础在阅读源码之前,我们要有一定程度的技术基础的支持。假如你从来都没有学过Java,也没有其它编程语言的基础,上来就啃《Core Java》,那样是很难有收获的,尤其是《深入Java虚拟机》这类书,或许别人觉得好,但是未必适合现在的你。比如设计模式,许多Java源码当中都会涉及到。再比如阅读Spring源码的时候,势必要先对IOC,AOP,Java动态代理... 阅读Java源码的前提条件:1、技术基础在阅读源码之前,我们要有一定程度的技术基础的支持。假如你从来都没有学过Java,也没有其它编程语言的基础,上来就啃《Core Java》,那样是很难有收获的,尤其是《深入Java虚拟机》这类书,或许别人觉得好,但是未必适合现在的你。比如设计模式,许多Java源码当中都会涉及到。再比如阅读Spring源码的时候,势必要先对IOC,AOP,Java动态代理...
- 目录1. 面向对象和面向过程的区别2. Java 语言有哪些特点3. 关于 JVM JDK 和 JRE 最详细通俗的解答4. Oracle JDK 和 OpenJDK 的对比5. Java和C++的区别6. 什么是 Java 程序的主类 应用程序和小程序的主类有何不同7. Java 应用程序与小程序之间有那些差别8. 字符型常量和字符串常量的区别9. 构造器 Constructor 是否可被... 目录1. 面向对象和面向过程的区别2. Java 语言有哪些特点3. 关于 JVM JDK 和 JRE 最详细通俗的解答4. Oracle JDK 和 OpenJDK 的对比5. Java和C++的区别6. 什么是 Java 程序的主类 应用程序和小程序的主类有何不同7. Java 应用程序与小程序之间有那些差别8. 字符型常量和字符串常量的区别9. 构造器 Constructor 是否可被...
- Java 代理模式什么是代理代理是一种设计模式,它的核心思想,是将对目标的访问转移到代理对象上。这样做的好处就是,目标对象在不改变代码的情况下,可以通过代理对象加一些额外的功能。这是一种编程思想,在不改变原有代码的情况下,通过代理增加一些扩展功能。代理过程如图所示,用户访问代理对象,代理对象通过访问目标对象,来达到用户访问目标对象的目的,代理模式包含一下三个角色:ISubject:接口对象,... Java 代理模式什么是代理代理是一种设计模式,它的核心思想,是将对目标的访问转移到代理对象上。这样做的好处就是,目标对象在不改变代码的情况下,可以通过代理对象加一些额外的功能。这是一种编程思想,在不改变原有代码的情况下,通过代理增加一些扩展功能。代理过程如图所示,用户访问代理对象,代理对象通过访问目标对象,来达到用户访问目标对象的目的,代理模式包含一下三个角色:ISubject:接口对象,...
- 前言Map 这样的 Key Value 在软件开发中是非常经典的结构,常用于在内存中存放数据。本篇主要想讨论 ConcurrentHashMap 这样一个并发容器,在正式开始之前我觉得有必要谈谈 HashMap,没有它就不会有后面的 ConcurrentHashMap。HashMap众所周知 HashMap 底层是基于 数组 + 链表 组成的,不过在 jdk1.7 和 1.8 中具体实现稍有... 前言Map 这样的 Key Value 在软件开发中是非常经典的结构,常用于在内存中存放数据。本篇主要想讨论 ConcurrentHashMap 这样一个并发容器,在正式开始之前我觉得有必要谈谈 HashMap,没有它就不会有后面的 ConcurrentHashMap。HashMap众所周知 HashMap 底层是基于 数组 + 链表 组成的,不过在 jdk1.7 和 1.8 中具体实现稍有...
- Java应用程序是运行在JVM上的,得益于JVM的内存管理和垃圾收集机制,开发人员的效率得到了显著提升,也不容易出现内存溢出和泄漏问题。但正是因为开发人员把内存的控制权交给了JVM,一旦出现内存方面的问题,如果不了解JVM的工作原理,将很难排查错误。本文将从理论角度介绍虚拟机的内存管理和垃圾回收机制,算是入门级的文章,希望对大家的日常开发有所助益。一、内存管理也许大家都有过这样的经历,在启动... Java应用程序是运行在JVM上的,得益于JVM的内存管理和垃圾收集机制,开发人员的效率得到了显著提升,也不容易出现内存溢出和泄漏问题。但正是因为开发人员把内存的控制权交给了JVM,一旦出现内存方面的问题,如果不了解JVM的工作原理,将很难排查错误。本文将从理论角度介绍虚拟机的内存管理和垃圾回收机制,算是入门级的文章,希望对大家的日常开发有所助益。一、内存管理也许大家都有过这样的经历,在启动...
- 数据库领域感觉 MySQL 、PostgreSQL、OracleDB 这三者所占的比例还是比较大的,MySQL 依然是开发者中使用最广泛的。但是,PostgreSQL 大有超过之势头,PostgreSQL 自去年以来增长了 5%。非关系数据库使用最广泛的还是 MongoDB 然后是 Redis,平时开发中,但凡并发量会稍大一点,都会优先选择使用 Redis 作为缓存层,避免过多请求直接访问数据库。 数据库领域感觉 MySQL 、PostgreSQL、OracleDB 这三者所占的比例还是比较大的,MySQL 依然是开发者中使用最广泛的。但是,PostgreSQL 大有超过之势头,PostgreSQL 自去年以来增长了 5%。非关系数据库使用最广泛的还是 MongoDB 然后是 Redis,平时开发中,但凡并发量会稍大一点,都会优先选择使用 Redis 作为缓存层,避免过多请求直接访问数据库。
- 最近在整理数据结构方面的知识,系统化看了下Java中常用数据结构,突发奇想用动画来绘制数据流转过程。主要基于jdk8,可能会有些特性与jdk7之前不相同,例如LinkedList LinkedHashMap中的双向列表不再是回环的。HashMap中的单链表是尾插,而不是头插入等等,后文不再赘叙这些差异,本文目录结构如下: 1. LinkedListLinkedList经典的双链表结构,适用于... 最近在整理数据结构方面的知识,系统化看了下Java中常用数据结构,突发奇想用动画来绘制数据流转过程。主要基于jdk8,可能会有些特性与jdk7之前不相同,例如LinkedList LinkedHashMap中的双向列表不再是回环的。HashMap中的单链表是尾插,而不是头插入等等,后文不再赘叙这些差异,本文目录结构如下: 1. LinkedListLinkedList经典的双链表结构,适用于...
- Semaphore 通常用于限制可以访问某些资源(物理或逻辑的)线程数目,我们可以自己设定最大访问量。它有两个很常用的方法是 acquire() 和 release(),分别是获得许可和释放许可。官方JDK上面对 Semaphore 的解释是这样子的:一个计数信号量。从概念上讲,信号量维护了一个许可集。如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可。每个 relea... Semaphore 通常用于限制可以访问某些资源(物理或逻辑的)线程数目,我们可以自己设定最大访问量。它有两个很常用的方法是 acquire() 和 release(),分别是获得许可和释放许可。官方JDK上面对 Semaphore 的解释是这样子的:一个计数信号量。从概念上讲,信号量维护了一个许可集。如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可。每个 relea...
- 11.1JDK7新特性: 二进制整数由于我们在开发中也经常使用二进制整数,因此JDK7为我们直接提供了二进制整数的类型。我们只要以:0b开头即可。int a = 0b0101:11.2 JDK7新特性:下划线分隔符在实际开发和学习中,如果遇到特别长的数字,读懂它令人头疼!JDK7为我们提供了下划线分隔符,可以按照自己的习惯进行分割,如:int b = 1_2312_3131;我们很容易就知道... 11.1JDK7新特性: 二进制整数由于我们在开发中也经常使用二进制整数,因此JDK7为我们直接提供了二进制整数的类型。我们只要以:0b开头即可。int a = 0b0101:11.2 JDK7新特性:下划线分隔符在实际开发和学习中,如果遇到特别长的数字,读懂它令人头疼!JDK7为我们提供了下划线分隔符,可以按照自己的习惯进行分割,如:int b = 1_2312_3131;我们很容易就知道...
上滑加载中
推荐直播
-
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步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签