- 前言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;我们很容易就知道...
- 3.1 JDK是什么?JRE是什么?JDK和JRE的区别?Java Runtime Environment (JRE) 包含:Java虚拟机、库函数、运行Java应用程序和Applet所必须文件 Java 2 SDK (Development Kit)包含:JRE的超集,包含编译器和调试器等用于程序开发的文件 Java运行环境的三项主要功能: n 加载代码:由class loader... 3.1 JDK是什么?JRE是什么?JDK和JRE的区别?Java Runtime Environment (JRE) 包含:Java虚拟机、库函数、运行Java应用程序和Applet所必须文件 Java 2 SDK (Development Kit)包含:JRE的超集,包含编译器和调试器等用于程序开发的文件 Java运行环境的三项主要功能: n 加载代码:由class loader...
- 工欲善其事,必先利其器。作为老牌军 Java 在发行二十多年的今天,战胜了 C 和 C++,成为诸多开发者的宠儿,且如今从其更新速度来看,也是不甘落后。今年的 9 月 21 日,大家期待已久的 Java 9 正式发布,现在开发者即将在几个月后就可以使用下一代 Java —— Java 10。十二月中旬,计划中的 Java 10 开发工具包升级节奏已经逐渐放缓。所以在目前阶段,产品升级后只能修复 P 工欲善其事,必先利其器。作为老牌军 Java 在发行二十多年的今天,战胜了 C 和 C++,成为诸多开发者的宠儿,且如今从其更新速度来看,也是不甘落后。今年的 9 月 21 日,大家期待已久的 Java 9 正式发布,现在开发者即将在几个月后就可以使用下一代 Java —— Java 10。十二月中旬,计划中的 Java 10 开发工具包升级节奏已经逐渐放缓。所以在目前阶段,产品升级后只能修复 P
上滑加载中
推荐直播
-
香橙派AIpro的远程推理框架与实验案例
2025/07/04 周五 19:00-20:00
郝家胜 -华为开发者布道师-高校教师
AiR推理框架创新采用将模型推理与模型应用相分离的机制,把香橙派封装为AI推理黑盒服务,构建了分布式远程推理框架,并提供多种输入模态、多种输出方式以及多线程支持的高度复用框架,解决了开发板环境配置复杂上手困难、缺乏可视化体验和资源稀缺课程受限等痛点问题,真正做到开箱即用,并支持多种笔记本电脑环境、多种不同编程语言,10行代码即可体验图像分割迁移案例。
即将直播 -
鸿蒙端云一体化应用开发
2025/07/10 周四 19:00-20:00
倪红军 华为开发者布道师-高校教师
基于鸿蒙平台终端设备的应用场景越来越多、使用范围越来越广。本课程以云数据库服务为例,介绍云侧项目应用的创建、新建对象类型、新增存储区及向对象类型中添加数据对象的方法,端侧(HarmonyOS平台)一体化工程项目的创建、云数据资源的关联方法及对云侧数据的增删改查等操作方法,为开发端云一体化应用打下坚实基础。
即将直播
热门标签