【Java 基础篇】Java Map 详解

Map接口是一个键值对的集合,它继承自Collection接口中的size()和isEmpty()等方法,同时还提供了根据键查找值的方法,以及添加、删除和更新键值对的方法。在Java中,Map接口有几个常见的实现类,每个实现类都具有不同的性能和用途。

HashMap:基于哈希表实现,具有快速的查找和插入操作,适用于需要快速查找键值对的场景。
TreeMap:基于红黑树实现,可以对键进行排序,并提供了一系列与排序相关的方法,适用于需要对键进行排序的场景。
LinkedHashMap:基于哈希表和链表实现,保持键值对的插入顺序,适用于需要保持插入顺序的场景。

龙生   11 Jun 2026
View Details

Java中Map接口存取的有序和无序

HashMap和ConcurrenthashMap键的顺序和keys数组的顺序不一样,也就是插入和读取的顺序不一样;LinkedHashMap是一致的;TreeMap则对键进行了自然排序。

龙生   11 Jun 2026
View Details

JSON.toJSONString时保留null值

private static final SerializerFeature[] serializerFeatures;
static {
serializerFeatures = new SerializerFeature[] {
SerializerFeature.WriteMapNullValue,
SerializerFeature.WriteNullListAsEmpty
};
}

龙生   11 Jun 2026
View Details

Java中的雪花算法(Snowflake)解析与实践

雪花算法是分布式系统ID生成的经典解决方案,Java实现需要注意:

合理分配各部分的位数

完善时钟回拨处理机制

设计可靠的WorkerId分配方案

根据业务特点进行定制优化

对于超高并发场景,可以考虑结合号段模式或使用改进版算法如Leaf。实际应用中应建立完善的监控体系,确保ID生成服务的稳定性。

龙生   06 Jun 2026
View Details

BigDecimal 比较大小

if(a.compareTo(b) == -1){
System.out.println("a小于b");
}

if(a.compareTo(b) == 0){
System.out.println("a等于b");
}

if(a.compareTo(b) == 1){
System.out.println("a大于b");
}

if(a.compareTo(b) > -1){
System.out.println("a大于等于b");
}

if(a.compareTo(b) < 1){ System.out.println("a小于等于b"); }

龙生   06 Jun 2026
View Details

Mac系统安装多版本 PHP,低版本 PHP

brew tap shivammathur/php
brew search php
brew install shivammathur/php/php@5.6
brew install brew-php-switcher
brew-php-switcher 7.3

龙生   01 Jun 2026
View Details

MacOS安装nvm实现多Node版本管理和自由切换

虽然可以通过Homebrew安装nvm,但官方推荐使用 nvm 的安装脚本来安装。这是因为Homebrew安装的nvm可能在配置方面稍有不同。
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.4/install.sh | bash

龙生   28 May 2026
View Details

一文搞定POI,再也不怕excel导入导出了

下面是excel导入导出的几个最常用的使用场景:
①企业管理系统:企业管理系统通常需要导入员工信息、客户信息、销售数据等大量数据到系统中,以及导出报表、数据分析结果等信息。
②学校教务系统:学校教务系统可能需要导入学生信息、课程表、成绩等数据,以及导出学生成绩单、教师工资表等信息。
③电子商务平台:电子商务平台需要导入商品信息、订单数据等内容,以及导出销售报表、库存清单等信息,方便管理和分析。
④ 人力资源管理系统:人力资源管理系统需要导入员工档案、薪资信息等数据,以及导出薪资条、考勤报表等信息,方便人力资源管理和工资结算。
⑤ 医院信息系统:医院信息系统可能需要导入患者信息、医疗记录等数据,以及导出医疗报告、统计分析等信息,方便医护人员进行医疗服务和管理。

龙生   21 May 2026
View Details

使用docker 来部署 gitlab社区版并解决gitlab内存过高的问题

vim /home/gitlab-ce/home/config/gitlab.rb

减少数据库缓存
postgresql['shared_buffers'] = "64MB"

减少数据库并发数
postgresql['max_worker_processes'] = 1

减少sidekiq并发数
sidekiq['concurrency'] = 1
nginx['worker_processes'] = 2

禁用prometheus
prometheus_monitoring['enable'] = false

龙生   21 May 2026
View Details

Java POI导出Excel时设置指定列为文本格式

 

龙生   30 Apr 2026
View Details
1 2 418