2020年4月23日晚上,阿里交叉面时,面试官问到了ConcurrentHashMap中size()方法的实现原理,我瞬间懵逼,因为之前只关注了put和get等操作,压根根本没看过size()的源码…
ConcurrentHashMap扩容操作的实现原理
2020年4月23日晚上,阿里交叉面时,面试官问到了ConcurrentHashMap中扩容操作的实现原理,瞬间懵逼。当初看源码的时候,这块就没看懂。这次仔细研究了很久,终于看明白啦。
Spring MVC DispatcherServlet请求流程
1 | private List<HandlerMapping> handlerMappings; |
1.找到当前请求的HandlerExecutionChain
1 | protected HandlerExecutionChain getHandler(HttpServletRequest request) throws Exception { |
2.寻找当前处理器对象对应的处理器适配器
1 | // 遍历DispatcherServlet中的handlerAdapters,寻找当前请求对应的处理器适配器 |
3.根据ModelAndView中的视图名,寻找对应的视图解析器,对视图名进行解析,返回View对象。
1 | protected View resolveViewName(String viewName, @Nullable Map<String, Object> model, |
关于MySQL中varchar超过限制长度的问题
下午面快手的时候,小姐姐问我:如果列的类型为varchar(10),当插入的字符串长度超过10的时候,将会发生什么?这个问题之前完全没了解过,一时语塞,只能回答说:“应该会发生溢出吧”。
ThreadLocal.ThreadLocalMap源码分析
ThreadLocalMap是ThreadLocal类的静态内部类,用于保存本地线程变量。它采用除留余数法和线性探测法,以ThreadLocal.threadLocalHashCode为键,以本地线程变量为值。