摘要:
Map的结构 HashMap概述 在JDK1.8之前,HashMap采用数组+链表实现,即使用链表处理冲突,同一hash值的节点都存储在一个链表里。但是当位于一个桶中的元素较多,即hash值相等的元素较多时,通过key值依次查找的效率较低。而JDK1.8中,HashMap采用数组+链表+红黑树实现, 阅读全文
摘要:
原文地址: 作者:格物 [TOC] [基本操作] [数据库操作] [表的操作] [数据操作] [字符集编码] [数据类型(列类型)] [列属性(列约束)] mysql / 列属性(列约束) / 1. PRIMARY 主键 能唯一标识记录的字段,可以作为主键。 一个表只能有一个主键。 主键具有唯一性。 阅读全文
摘要:
LinkedList概述 LinkedList 实现List接口,底层是双向链表,非线程安全。LinkedList还可以被当作堆栈、队列或双端队列进行操作。在JDK1.7/8 之后取消了循环,修改为双向链表。 LinkedList 实现 List 接口,能对它进行队列操作。 LinkedList 实 阅读全文
摘要:
从上图可以看出,Java集合主要分两大类: Collection 和 Map Collection 1.List List是有序的,它的实现类主要有以下3个: ArrayList 底层基于动态数组,允许对元素进行快速随机访问,不适合插入和删除。 Vector(线程安全) 与ArrayList相似,也 阅读全文
摘要:
本文转载 作者: "liuxiaopeng" 博客地址: 一、JVM 内存结构 根据 JVM 规范,JVM 内存共分为虚拟机栈、堆、方法区、程序计数器、本地方法栈五个部分。 1、虚拟机栈 :每个线程有一个私有的栈,随着线程的创建而创建。栈里面存着的是一种叫“栈帧”的东西,每个方法会创建一个栈帧,栈帧 阅读全文
摘要:
ArrayList概述 ArrayList继承了AbstractList,实现了List接口,底层基于动态数组,容量大小可以动态变化,ArrayList中可以添加null元素,另外,ArrayList是非线程安全的 ArrayList实现List, RandomAccess, Cloneable, 阅读全文
摘要:
本文转载自: [TOC] 作为程序员,要有“刨根问底”的精神。知其然,更要知其所以然。这篇文章希望能抽丝剥茧,还原背后的原理。 什么是“3次握手,4次挥手” TCP是一种面向连接的单播协议,在发送数据前,通信双方必须在彼此间建立一条连接。所谓的“连接”,其实是客户端和服务器的内存里保存的一份关于对方 阅读全文
摘要:
看图说话 Object有以下几个方法 getClass() final类型,主要是用来获得运行时的类型 hashCode() 返回该对象的哈希码值,方法是为了提高哈希表(例如 java.util.Hashtable 提供的哈希表)的性能。该方法常用于hash查找,重写equals方法一般都要重写ha 阅读全文
摘要:
Java修饰符大小 public protected default private final方法不等同于private方法 虽然类中的private方法都隐式地指定为final,但是二者并不是等同的。private是访问权限修饰符,用于控制外界对类内部成员的访问,private方法只能在类的内部 阅读全文
摘要:
前言 今天在使用Mybatis时遇到一个问题,主要出错原因在于Mybatis的@Param注解,如果我不在参数前面加上 @Param 注解,数据库操作就会报错,如下: @Param作用 @Param 注解的作用是给参数命名,参数命名后就能够根据名字得到参数值,正确的将参数传到sql语句中 @Para 阅读全文