本文对JDK11下HashMap的源码进行分析,HashMap的实现在JDK8之后做了比较大的改动,之后就大同小异,对于JDK8也是可以适用的。
存储结构
再JDK1.7以前,HashMap采用位桶+链表来实现,使用链表拉链法来处理Hash冲突,当相同hash值的元素较多时,需要遍历链表查找的效率就比较低。
因此JDK1.8以后采用位桶+链表+红黑树来实现,……继续阅读 »
悠悠
2年前 (2022-06-28) 4790浏览 2评论
100个赞
IDEA自动清除无效import
清除无效import的快捷键:
Alt + Enter
Ctrl + Alt + O
自动清除无效import配置方法:
Settings -> Editor -> General -> Auto Import -> Optimize imports on the fly
勾选上即可,会自动清除所有无用的包。
使用ide……继续阅读 »
悠悠
5年前 (2019-11-02) 15674浏览 2评论
20个赞
常量定义:Map,List
定义Map,List的常量,在定义的时候初始化值,如果只是使用 final 关键字,仍然可以对集合进行修改,需要加 unmodified 修饰,如下:
// 定义常量Map
public static final Map<String, String> CONST_MAP = Collections.unmodifi……继续阅读 »
悠悠
7年前 (2017-11-07) 3319浏览 0评论
4个赞
一个优秀的开发,不能等到程序交到测试人员手上才发现代码的问题。需要学会自己书写单元测试,保证自己代码的质量。
添加单元测试
单元测试需要引入 JUnit 相关的包,一般来说,使用IDE添加JUnit单元测试的时候,会自动添加。Maven的单元测试配置如下:
<dependency>
<groupId>junit</gro……继续阅读 »
悠悠
7年前 (2017-11-02) 4218浏览 0评论
2个赞
JSON 作为非常轻便的数据交互格式,在Spring中用的非常多,作为客户端和服务端数据交互的数据格式。
使用@ResponseBody返回JSON数据
如果需要使得某个服务端的接口返回个客户端JSON格式的数据,可以通过给Controller添加 @ResponseBody 注解实现。
该方法不需要额外的配置,只需要使用 @ResponseBody 注解,……继续阅读 »
悠悠
7年前 (2017-11-01) 4336浏览 0评论
2个赞
Java 中有很多非常成熟的 JSON 库,常用的有 fastjson,Jackson,Gson,我一般使用阿里的 fastjson,json 解析非常快速和简单。下面针对 fastjson 简单介绍。
fastjson库引入
fastjson 在Maven中的配置如下:
<dependency>
<groupId>com.a……继续阅读 »
悠悠
7年前 (2017-11-01) 7117浏览 0评论
0个赞
Java是 Unicode 编码的,稍微不注意,就会出现乱码的问题,乱码的根本原因就是对文本进行编码的时候和解码的时候,所使用的编码字符集不一致导致的。像SpringMVC搭建的Web服务这类事,输入和输出在两个完全不同的环境中的情况,稍微不注意就会出现问题,这种MVC模式的乱码问题,一定要先定位乱码出现的位置,然后针对出现位置前后两个环境的编码配置差异,检……继续阅读 »
悠悠
7年前 (2017-10-30) 3716浏览 0评论
0个赞
1. SpringMVC简单介绍
对于SpringMVC,我也只是简单的了解,这儿进行一些简单的总结。更加详细的内容可以参考官方文档:Spring Framework Reference
SpringMVC是一个非常强大的IOC依赖注入容器,通过xml配置文件来管理类和类之间的依赖关系,对于程序员来说,我们只要通过注解或者配置等方式来指定类之间的依赖关系,由……继续阅读 »
悠悠
7年前 (2017-10-19) 3963浏览 0评论
2个赞
使用Eclipse一段时间了,Eclipse各方面确实挺好用的,但是写jsp页面的时候就有些尴尬了,好些JSTL标签的解析有问题,特别是标签内嵌标签的时候,再加上以前一直使用PHPStorm进行开发,所以转用IDEA。在使用的时候,遇到的问题记录一下。
IDEA导入Maven项目
IDEA选择菜单:File -> Open,直接打开Maven项目的根目……继续阅读 »
悠悠
7年前 (2017-09-26) 3442浏览 0评论
2个赞
Mybatis是Java中一个非常好用的数据库框架,这儿记录一下在使用过程中遇到的坑。官方中文文档地址:http://www.mybatis.org/mybatis-3/zh/getting-started.html
在Mybatis mapping.xml映射配置文件中使用大于>号小于号<
由于Mybatis的映射文件遵循xml文件的格式,所以……继续阅读 »
悠悠
7年前 (2017-09-12) 4208浏览 1评论
4个赞