
java
qsdnmd
这个作者很懒,什么都没留下…
展开
-
jdk1.8 hashmap.putVal源码
final V putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict) { Node<K,V>[] tab; Node<K,V> p; int n, i; if ((tab = table) == null原创 2018-09-30 22:15:02 · 471 阅读 · 0 评论 -
IDEA maven项目不自动复制资源文件到编译目录 classes文件夹下 的问题
本来用Thread.currentThread().getContextClassLoader().getResourceAsStream(“application.properties”);加载src\main\resources下的文件application.properties,发现加载不了得到的InputStream是null。经排查后发现是target\classes文件夹下没有app...原创 2019-03-05 10:08:48 · 4653 阅读 · 0 评论 -
tomcat7.x源码导入idea
tomcat7.x、jdk1.7、maven、idea环境安装就不多说了,只说tomcat源码编译并导入idea1、首先下载tomcat源码https://github.com/apache/tomcat70.git2、下载好了之后在tomcat根目录下创建pom.xml文件,文件内容如下<?xml version="1.0" encoding="UTF-8"?><p...原创 2018-12-19 14:34:56 · 1149 阅读 · 2 评论 -
jdk1.8 hashmap.balanceInsertion方法源码
红黑树的特性:(1)每个节点或者是黑色,或者是红色。(2)根节点是黑色。(3)每个叶子节点(NIL)是黑色。 [注意:这里叶子节点,是指为空(NIL或NULL)的叶子节点!](4)如果一个节点是红色的,则它的子节点必须是黑色的。(5)从一个节点到该节点的子孙节点的所有路径上包含相同数目的黑节点。[这里指到叶子节点的路径]static &amp;amp;lt;K,V&amp;amp;gt; TreeNode&amp;amp;lt;K,...原创 2018-09-28 23:10:55 · 514 阅读 · 1 评论 -
jdk1.8 hashmap.resize方法源码
final Node&amp;lt;K,V&amp;gt;[] resize() { Node&amp;lt;K,V&amp;gt;[] oldTab = table;//原数组 int oldCap = (oldTab == null) ? 0 : oldTab.length;//原数组长度 int oldThr = threshold;//原阀值,数组长度乘加载因子 ...原创 2018-09-23 00:07:23 · 159 阅读 · 1 评论 -
jdk1.8 hashmap.split方法解析
/***和链表的修剪差不多*/final void split(HashMap<K,V> map, Node<K,V>[] tab, int index, int bit) { TreeNode<K,V> b = this; // Relink into lo and hi lists, preserving order TreeN...原创 2018-10-03 20:45:23 · 2120 阅读 · 1 评论 -
jdk1.8 hashmap.putTreeVal方法解析
final TreeNode&lt;K,V&gt; putTreeVal(HashMap&lt;K,V&gt; map, Node&lt;K,V&gt;[] tab, int h, K k, V v) { Class&lt;?&gt; kc = null;//k的类型 boolean searched = false;/原创 2018-10-03 14:38:24 · 523 阅读 · 0 评论 -
jdk1.8 hashmap.tieBreakOrder方法解析
/** * 用这个方法来比较两个对象,返回值要么大于0,要么小于0,不会为0 * 也就是说这一步一定能确定要插入的节点要么是树的左节点,要么是右节点,不然就无继续满足二叉树结构了 * 先比较两个对象的类名,类名是字符串对象,就按字符串的比较规则 * 如果两个对象是同一个类型,那么调用本地方法为两个对象生成hashCode值,再进行比较,hashCode相等的话返回-1 */ ...原创 2018-10-02 00:36:08 · 1387 阅读 · 1 评论 -
jdk1.8 hashmap.compareComparables方法解析
/** * Returns k.compareTo(x) if x matches kc (k's screened comparable * class), else 0. * 如果x的类型是kc,返回k.compareTo(x)的比较结果 * 如果x为空,或者类型不是kc,返回0 */ @SuppressWarnings({"rawtypes","unchecked"})...原创 2018-10-02 00:31:03 · 1658 阅读 · 0 评论 -
jdk1.8 hashmap.comparableClassFor方法解析
/** * Returns x's Class if it is of the form "class C implements * Comparable<C>", else null. * 如果对象x的类型实现了Comparable<C>接口,那么返回x的类型,否则返回nul * 总之方法的目的就是为了看看x的class是否 imp...原创 2018-10-01 23:51:49 · 474 阅读 · 0 评论 -
jdk1.8 hashmap.moveRootToFront方法解析
/** * 把红黑树的根节点设为 其所在的数组槽 的第一个元素 * 首先明确:TreeNode既是一个红黑树结构,也是一个双链表结构 * 这个方法里做的事情,就是保证树的根节点一定也要成为链表的首节点 */static <K,V> void moveRootToFront(Node<K,V>[] tab, TreeNode<K,V> root) {...原创 2018-10-01 00:03:30 · 570 阅读 · 0 评论 -
jdk1.8 hashmap.treeify方法解析
final void treeify(Node<K,V>[] tab) { TreeNode<K,V> root = null; // 定义树的根节点 for (TreeNode<K,V> x = this, next; x != null; x = next) { // 遍历链表,x指向当前节点、next指向下一个节点 next...原创 2018-09-30 23:35:55 · 1087 阅读 · 0 评论 -
jdk1.8 hashmap.treeifyBin源码
final void treeifyBin(Node<K,V>[] tab, int hash) { int n, index; Node<K,V> e;//n是数组长度,e是hash值和数组长度计算后,得到链表的首节点 /** 如果数组为空或者数组长度小于树结构化的最小限制 * MIN_TREEIFY_CAPACITY 默认值64,对于...原创 2018-09-30 22:58:55 · 1255 阅读 · 0 评论 -
MySQL中BIGINT与Java数据类型对应问题
问题背景:最近在做的工作使用了mybatis框架,前两天有一个需求,中间涉及到一条sql,需要将某表中的最大最小主键取出来,mysql中该主键类型是BIGINT(20),我在xml文件中是这样写的:<select id="getMinAndMaxId" resultType="java.util.Map"> select min(id) as minId, max(id) ...转载 2019-03-18 16:29:44 · 13505 阅读 · 0 评论