- 模式定义 观察者模式(Observer Pattern):观察者模式定义对象间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖的对象皆得到通知并且被自动更新。不过观察者只能知道目标发送了改变,而不能知道具体怎么改变的。 观察者角色 观察者模式包含如下角色: Subject:目标 ConcreteSubject:具体目标 Observer:观察... 模式定义 观察者模式(Observer Pattern):观察者模式定义对象间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖的对象皆得到通知并且被自动更新。不过观察者只能知道目标发送了改变,而不能知道具体怎么改变的。 观察者角色 观察者模式包含如下角色: Subject:目标 ConcreteSubject:具体目标 Observer:观察...
- 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...
上滑加载中
推荐直播
-
华为云软件开发生产线(CodeArts)1月&2月新特性解读
2025/03/18 周二 19:00-20:00
阿星 华为云高级产品经理
不知道产品的最新特性?没法和产品团队建立直接的沟通?本期直播产品经理将为您解读华为云软件开发生产线1月&2月发布的新特性,并在直播过程中为您答疑解惑。
回顾中 -
基于能力图谱的openGauss项目闯关
2025/03/20 周四 19:00-20:30
华为开发者布道师
想成为顶级数据库开发者吗?本次直播将从银行业务系统的数据库设计出发,带你逐步掌握openGauss的建库表、数据封装、密态技术、性能调优及AI应用。通过实战案例,全面展示openGauss的强大功能,助你提升技能,为未来的职业发展打下坚实基础。立即报名,开启你的数据库进阶之旅!
回顾中 -
基于开源鸿蒙+海思星闪开发板:嵌入式系统开发实战(Day1)
2025/03/29 周六 09:00-18:00
华为开发者布道师
本次为期两天的课程将深入讲解OpenHarmony操作系统及其与星闪技术的结合应用,涵盖WS63E星闪开发板的详细介绍、“OpenHarmony+星闪”的创新实践、实验环境搭建以及编写首个“Hello World”程序等内容,旨在帮助学员全面掌握相关技术并进行实际操作
回顾中
热门标签