One Trick Per Day

简介: 初始化Map时,指定容量并非实际分配大小,HashMap会扩容至最近的2的幂(如1→2,3→4,9→16),易引发性能波动。建议使用Guava工具Maps.newHashMapWithExpectedSize(),按预期元素数自动计算初始容量,避免频繁扩容,提升性能稳定性。

<初始化Map大小并非用多少指定多少>
初始化Map并非用多少初始化Size是多少,建议使用Guava,避免扩容引起的动荡()
说明
如:Map map = new HashMap<>(1); 在具体使用时,并非size=1,而是最近的2的幂等,如1实际是2,3实际是4,9实际是16
使用方法
依赖gvaua:Map map = Maps.newHashMapWithExpectedSize(7);

image.png

相关文章
|
19小时前
Arrays.asList之后不要调用修改操作
`Arrays.asList()`返回的列表是固定大小的,底层基于原数组,不支持add/remove操作,否则抛出UnsupportedOperationException;且修改原数组会同步影响列表元素,因二者共享同一引用。
|
17小时前
|
Java
SpringBoot--整合Logback,滚动记录+多文件
SpringBoot--整合Logback,滚动记录+多文件
|
18小时前
|
XML Java 数据格式
SpringBoot--无标题
被@Configuration标注的类会被Spring IOC容器识别为配置类,作用等同于applicationContext.xml配置文件。通过注解方式注册Bean,结合AnnotationConfigApplicationContext可启动容器并管理Bean。示例代码展示了配置类及Bean的加载过程,输出结果显示配置类与组件均被成功注册到容器中。
|
18小时前
SpringBoot--@Inherited
@Inherited用于注解,使子类继承父类中标记该注解的元数据;但仅适用于类继承,接口继承和实现均不继承注解。
|
18小时前
|
Java 数据库连接 Spring
MyBatis--常见配置
MyBatis配置优先级:方法参数 &gt; resource/url属性 &gt; properties元素内属性。支持多环境配置,通过environments指定默认环境和数据源,结合事务管理器(JDBC/MANAGED)管理事务,常用于多数据源场景,与Spring集成时由Spring接管事务管理。
|
18小时前
|
XML Java 数据格式
SpringBoot--@Configuration
被 @Configuration 标注的类视为Spring配置类,等同于XML配置文件。结合 @Bean 注册Bean,通过 AnnotationConfigApplicationContext 加载配置类,可启动IOC容器并管理Bean实例,实现基于Java的配置。
|
18小时前
|
SQL 关系型数据库 Java
MaBatis--分页
本文介绍了五种分页实现方式:MyBatis自带RowBounds内存分页、PageHelper插件分页、原生SQL分页、数组分页及拦截器分页。对比了逻辑分页与物理分页的优劣,指出大数据量下应优先选用物理分页,避免内存溢出,提升系统性能。
|
18小时前
|
Java 数据库连接 mybatis
MyBatis--映射关系
MyBatis中通过resultMap实现关联映射:一对一使用resultMap解决字段与属性不一致;一对多通过&lt;collection&gt;映射集合,如用户关联多个角色;多对一用&lt;association&gt;,如博客关联作者;多对多借助中间类,如用户与部门通过UserForDept建立双向关联。
|
19小时前
|
缓存 数据库
并发修改同一记录时需要加锁
推荐根据冲突概率选择锁策略:冲突小于20%时使用乐观锁,以version控制更新,重试不少于3次;否则采用悲观锁,可在应用层、缓存或数据库层加锁,确保数据一致性。
|
19小时前
|
存储 安全 Java
Java泛型类型擦除以及类型擦除带来的问题--泛型擦除引起的问题及解决方法
Java泛型在编译时先进行类型检查再擦除,类型检查针对引用而非对象。擦除后泛型转为原始类型,通过自动强转实现安全取值。多态中因擦除可能导致重写失效,编译器生成桥方法解决。泛型不支持基本类型,静态成员不能使用类的泛型参数,但泛型方法可独立定义类型。instanceof不适用泛型类型判断。