![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
源码分析
文章平均质量分 77
忙里偷闲得几回
用代码创造价值
展开
-
Float.isNaN(float v)方法初探
Float.isNaN(float v)方法初探背景今天在翻看之前的博客Java容器类浅析二-----HashMap的存取原理,发现了HashMap的全参构造器中有这样一句代码if (loadFactor <= 0 || Float.isNaN(loadFactor)),当时对这个Float.isNaN(float v)方法产生了兴趣,于是翻看了一下这个方法的源码,方法体很简单就一句话...原创 2019-12-17 20:49:59 · 783 阅读 · 0 评论 -
记一次SpringBoot返回数据乱码引发的思考
记一次SpringBoot返回数据乱码引发的思考文章目录记一次SpringBoot返回数据乱码引发的思考问题背景解决过程解决方案:源码分析HttpMessageConverters的初始化过程HttpMessageConverters解析过程遗留问题问题背景使用SpringBoot的starter构建了一个demo项目,添加了一个Get接口,返回一段字符串,有中文、数字和英文,接口一直正常...原创 2019-05-16 17:25:27 · 5955 阅读 · 0 评论 -
Tomcat如何解析URL的请求参数(追踪HttpServletRequest对于请求参数的解析过程)
想起了前两个月同事问我:我发出的请求里如果有”a=f&a=g”,那么在Servlet里获取到的a的值是一个字符串”f,g”,这是怎么回事儿? 当时我就猜测是SpringMVC做的处理,然后启动了一个测试工程,并进行了Debug追踪,最终查询到了Tomcat的源码里,发现居然是它做的解析。原创 2017-02-09 15:54:15 · 5248 阅读 · 0 评论 -
SpringAOP原理之---Java动态代理
前言: 前两天在学习Spring的AOP时,看到Spring默认使用JDK动态代理来实现AOP,于是对Java的动态代理原理产生了疑惑和兴趣,便查找了一些资料来解惑。现将理解记录如下。 参考资料: 1. Java 动态代理机制分析及扩展,第 1 部分 2. 使用ProxyGenerator类生成字节码 3. 说说 cglib 动态代理 4. ProxyGener原创 2016-11-17 18:51:40 · 519 阅读 · 0 评论 -
Servlet和SpringMVC的初始化及请求处理过程浅析
Servlet接口分析继承图: 首先看一下Servlet的类结构public interface Servlet { public void init(ServletConfig config) throws ServletException; public ServletConfig getServletConfig(); public void service(Servl原创 2016-09-02 18:57:31 · 10461 阅读 · 0 评论 -
Java容器类浅析四----ArrayList和LinkedList的存取原理
一、概述数组和列表是Java容器类中最经常使用的一类。 顺序列表的底层存储数据结构是Object的数组,数组是静态的,而列表的长度是可以动态增长的,可以称之为“动态数组”。顺序列表长度的动态增长,是在add时检查当前元素个数是否达到了数组的边界,如果达到了,则创建一个长度为当前数组长度1.5倍的新数组,并将之前的数据copy到新的数组中;copy时调用Native Method—System.ar原创 2016-06-17 18:14:08 · 500 阅读 · 0 评论 -
Java容器类浅析三-----保证插入顺序的HashMap--LinkedHashMap的存取原理
一、概述 可排序的HashMap--LinkedHashMap原创 2016-06-15 18:04:00 · 3062 阅读 · 2 评论 -
Java容器类浅析一-----容器类的类型
1.容器类类图:容器类类图由类图我们可以看出,Java的容器类一个有两大类型,一是存储单值的Collection,另一个是存储键值对的Map。其中Collection的实现类有四种:Set、List、Vector、Stack。我们常用的是Set和List,顾名思义,Set是集合,没有重复的元素,而List是数组,可以存储相同的元素。Vector是线程安全的,List的实现类...原创 2016-05-18 16:41:43 · 2056 阅读 · 0 评论 -
Java容器类浅析二-----HashMap的存取原理
上一节我们说到HashMap底层的数据结构是顺序表,且数据存储是无序的(不按照我们插入的顺序进行存储),下面我们来分析一下HashMap的源码(JDK1.7),深入了解其实现原理。HashMap的put()方法:```Javapublic V put(K key, V value) { if (table == EMPTY_TABLE) { inflateTable(原创 2016-06-13 16:52:15 · 639 阅读 · 0 评论