- 博客(24)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 你可能不清楚的Java细节(3)--JDK1.8中HashMap在出现hash碰撞时链表长度超过8就一定会变成红黑树?
如题,答案是:否.至少迄今为止零零散散看过的关于JDK1.8 HashMap的源码分析文章不下10个了.但印象中都是众口一词,说超过8就会转换成红黑树.但是很可惜,实际上不是的.原因核心代码如下(大体上调用关系就是 put->putVal->treeifyBin):putVal方法中相关部分// putVal方法中相关部分(put方法调用了putVal())if (binC...
2019-05-10 12:52:01
4542
21
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 前后端分离的项目集成CAS
前后端分离的项目集成CAS关于前后端分离的项目如何集成CAS,网上很少有资料博客,即便是有的也只是单纯的说下怎么做,并没有解释为什么,甚至大部分在前后端分离的项目中"成功"的集成了cas的,也是懵懵懂懂.本文从原理层面来进行一定的剖析,再来看如何解决.采用环境:Tomcat 8.5,cas 3.4.1.本文内容和Tomcat及cas版本关系不大.主要涉及以下知识:cas认证原理,及客...
2019-02-18 17:26:54
27357
36
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 自定义及私服下使用maven archetype
1.前言本文假设用的是自己本机的maven repository.用的是windows,其它操作系统本文中需要调整的地方请自行脑补…2.正文2.1创建并安装archetype首先,我们得有一个比较完善的可以用来构建archetype的maven工程.我这里就随手找一个已有的项目来作为示例.在项目的根目录(即项目的pom文件所在目录)下执行maven命令: mvn archetype:cr
2016-08-19 17:29:57
12116
5
原创 监控系统搭建(4) Logstash安装
监控系统搭建(4) Logstash安装环境Logstash 7.11jdk 1.8+(注意,实际完整功能需要jdk11+,es内置有jdk11+,但是会优先采用环境变量JAVA_HOME设置的jdk.,文中有设置使用内置JDK的方法)本文使用的windows版本Logstash 官方文档地址: Logstash 官方文档注意:需先安装 elastic search ,版本需和kibana保持一致2. 安装部署2.1 下载ES下载地址: Logstash 官网下载地址大小约300M
2021-03-11 19:32:26
343
原创 ELK 监控系统搭建(3) Kibana安装
ELK 监控系统搭建(3) Kibana安装环境kibana 7.11jdk 1.8+(注意,实际完整功能需要jdk11+,es内置有jdk11+,但是会优先采用环境变量JAVA_HOME设置的jdk.,文中有设置使用内置JDK的方法)本文使用的windows版本kibana 官方文档地址: kibana 官方文档注意:需先安装 elastic search ,版本需和kibana保持一致2. 安装部署2.1 下载ES下载地址: Kibana官网下载地址大小约300M2.2 部署
2021-03-11 11:47:50
235
原创 ELK 监控系统搭建(2) ES安装
ELK 监控系统搭建(2) ES安装环境elastic search 7.11jdk 1.8 (注意,es内置有jdk,但是会优先采用环境变量JAVA_HOME设置的jdk.)本文使用的windows版本elastic search 官方文档地址: ES官方文档安装部署下载ES下载地址: ES官网下载地址大小约300M部署解压下载下来的压缩包至硬盘某目录.运行 bin\elasticsearch.bat默认访问地址为: http://localhost:9200配置文件共有三个
2021-03-10 20:25:12
197
原创 ELK 监控系统搭建(1) 目录
ELK 监控系统搭建(1) 目录目标应用程序日志采集服务器状态监控数据库状态监控环境及版本jdk1.8elastic search 7.11logstash 7.11kibana 7.11操作系统 主要使用windows.
2021-03-10 20:24:03
138
原创 Paoding-Rose下的Junit测试
Paoding-Rose下的Junit测试新公司老项目都用的paoding-rose框架,想在里面写个单元测试来测试Service和Dao居然没有解决方案,参照传统Spring web项目的去配置test直接死翘翘.花了点时间看了下Rose的源码.算是弄出来个解决方案.不过话说9012年都快过完了,应该没哪个公司会在技术选型时再来选Rose了.目测看到这篇文章的都是苦逼.解决方案以mav...
2019-08-31 20:08:30
338
原创 JDK源码-关于JDK1.8的`HashMap`的探究
关于JDK1.8的HashMap的探究HashMap的几个疑问大家都知道,HashMap是个散列表,笼统的说是就是数组(hash table)+链表/红黑树的形式.通过key的hashcode来确定在hash table中的位置,如果计算出来的位置相同,那么会将对应位置转换为链表,JDK1.8中如果链表上元素个数超过8个(实际上并不完全是),会转换为红黑树.先提出以下几个问题,有些是老生常谈...
2019-05-10 11:39:49
684
原创 【IDEA报错】Fatal error initializing 'com.intellij.xdebugger.XDebuggerManager
某次工程正在执行时,电脑蓝屏关机,重启后启动IDEA打开工程时,报错: Fatal error initializing 'com.intellij.xdebugger.XDebuggerManager解决方案:删除 C:\Users\用户名\.IntelliJIdea2017.2\system\caches 下的所有内容.重启IDEA
2018-01-11 18:22:32
6921
7
原创 JAVA集合框架详解(1)--整体概述
本文主要是将java的集合框架从多个角度进行了分类,然后分别进行概述.本文只是概述,方便对集合框架有个整体的了解.只有JDK中明确说明是属于集合框架的类或接口,才在本文探讨范围内.基于JDK1.8_102.1.
2016-11-04 17:41:46
615
1
原创 SpringMVC路径匹配规则AntPathMatcher
前言本文是基于Spring Framework 4.3.3分析.正文SpringMVC的路径匹配规则是依照Ant的来的.实际上不只是SpringMVC,整个Spring框架的路径解析都是按照Ant的风格来的.在Spring中的具体实现,详情参见 org.springframework.util.AntPathMatcher.具体规则如下(来自Spring AntPathMatcher源码注释): *
2016-11-04 14:30:01
22275
原创 try--catch--finall优先级总结
前言先放上main方法,下文中的测试代码只修改test()的实现.public static void main(String[] args) { String s = test(); System.out.println(s);}1.出现异常后不会阻断try-catch之外语句的执行测试代码public static String test() { String s =
2016-11-02 11:56:46
1181
原创 StringTokenizer、split、substring对比
对String进行分割,JDK提供了三种方法:分别是 java.lang.String的 split方法和substring方法,以及java.util.StringTokenizer类.最常用的就String自带的两种方法,StringTokenizer极为少见.下面就来对比下这三种的用法,分析下优缺点.在此事先声明,本文代码示例基于JDK1.8_102.JDK1.6的substring方法有缺陷
2016-11-02 09:28:16
2634
原创 你可能不清楚的Java细节(2)--for及for-each各自循环适用的场景
本文参考资料基于JDK1.8,理论上也适用于之前的版本.严格的说,for-each是对for的增强,本质上也属于for循环.for和for-each一般无非也就是如下三种用法,其中第三种也就是我们平时所说的for-each://其中list为java.util.List类型//第一种写法for (int i=0, n=list.size(); i < n; i++){ list.get(i
2016-10-11 00:09:18
1144
原创 你可能不清楚的Java细节(1)--为什么Boolean的hashCode()方法返回值是1231或1237
为什么Boolean的hashCode()方法返回值是1231或1237?hashCode散列算法中为什么常用31作为乘数?
2016-08-09 17:11:40
5607
7
翻译 Dojo 1.10 教程(2)-基础入门篇dojoConfig配置
序言dojoConfig对象(以前是djConfig)允许你为dojo设置一些默认的选项。在这篇教程里将会为大家说明如何在你的代码里面使用dojoConfig。介绍使用dojoConfig对象(1.6版本之前是叫djConfig对象)是在页面中或者应用中主要的配置Dojo的方法。就像Dojo的那些可以全局使用的模块一样,它被模块加载器所引用。如果有这方面的要求的话,在一般的应用中,它可
2014-09-25 14:19:45
1462
翻译 Dojo 1.10 教程(1)-基础入门篇Hello Dojo
欢迎来到Dojo!在本篇教程中,你将会学到如何加载Dojo以及如何使用它的部分核心功能。你也会学到Dojo的AMD模块架构,学会如何加载额外的模块来为你的网站或应用增加新的功能,以及学会如何解决问题。难度等级:初学者Dojo版本:1.10开始开始使用Dojo很简单,只需要像使用其他任何的JavaScript文件一样将dojo.js引入到你的页面里面即可。CDN上一般都有Dojo,因
2014-09-25 11:30:07
2412
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人