
java
horseber
飞是小李飞刀的飞,刀是小李飞刀的刀
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
线上CPU飙升,问题定位
1、定位到cpu最高PID top 2、将线程PID转换为 16进制 为后面查找 jstack 日志做准备 #查看进程内最耗费CPU的线程 top -Hp pid #该进程id是10进制的,需要转为16进制 printf “%x” PID 注意(1)可以直接查找jstack数据 jstack PID | grep 54ee (2)也可以通过以下步骤导出日志文件 3、导...原创 2019-12-13 14:07:38 · 286 阅读 · 0 评论 -
Java异常
1、异常体系 2、常见异常: java.lang.IllegalAccessError:违法访问错误。当一个应用试图访问、修改某个类的域(Field)或者调用其方法,但是又违反域或方法的可见性声明,则抛出该异常。 java.lang.InstantiationError:实例化错误。当一个应用试图通过Java的new操作符构造一个抽象类或者接口时抛出该异常. java.lang.Ou...原创 2019-09-26 21:38:10 · 211 阅读 · 0 评论 -
Java数据结构:链表
1、链表定义: 链表通过指针将不连续的内存块串起来,构成的一种数据结构。单向链表、双向链表,双端链表、单向循环、双向循环、跳跃链表等原理也都是基于指针将不连续的内存快串起来。只是指针指向复杂度不一样,提供的各种的API而已。 /** * 单链表的表示方式: */ class Node { Object element; //节点数据信息:数据域 Node next; //下...原创 2019-08-22 12:51:44 · 145 阅读 · 0 评论 -
Java数据结构:数组
1、数组定义: 数组是java语言中最基本的数据存储结构。数组是一块连续的内存空间,用于存储相同类型的数据。基本上掌握的数组的这个定义里包含的特点。也就掌握的了数组 (1)连续的内存空间:因为连续,导致内存空间利用率差。若声明一个数组,大小为10m的连续的一块空间 byte[] arr=new byte[1024*10] 。即使这时候内存空间大于10m,但腾不出一块连续内存空间(存在内存碎片)...原创 2019-08-17 07:26:24 · 302 阅读 · 0 评论 -
Java数据结构:队列(2)
1、双端队列(Deque) deque 特殊之处在于添加和删除项是非限制性的。可以从任一端添加和删除数据。这种混合线性结构提供了单个数据结构中的栈和队列的所有能力。 2、循环队列 用数组来实现队列的时候,利用头尾指针避免了出队时数据的搬移,只是再在 tail==数组长度时,会有数据搬移操作,但数据搬移操作还是会影响到性能。解决方案就是循环队列。 指定队列固定大小,通过头尾指针控制元素...原创 2019-08-22 07:08:45 · 102 阅读 · 0 评论 -
Java数据结构:队列(1)
1、队列 栈是一种先进后出线性数据结构,数据的插入和删除只能在一端操作。 队列是一种先进先出线性数据结构,队尾一端插入数据,队头一端删除数据。 2、单向队列的实现: 与基于数组的栈不同的是,基于数组实现的队列在出队操作时,相当于删除数组下标为 0 的数据,要搬移整个队列中的数据。 /** * description: 基于数组实现队列 * date: 2019/8/21 ...原创 2019-08-21 17:45:06 · 186 阅读 · 0 评论 -
Java数据结构:栈
1、栈 栈是一种先进后出线性数据结构,数据的插入和删除只能在一端操作。 2、基于数组实现栈(顺序栈) 只要抓住先进后出的特点,剩下的就是基于数据的操作。 基于链表实现的栈(链式栈)与顺序栈同理,就是无非控制链表节点先进后出。链式栈的大小不受限,但要存储 next 指针,内存消耗相对较多。 /** * description: 基于数组实现栈 * date: 2019/8/21 *...原创 2019-08-21 11:51:04 · 154 阅读 · 0 评论 -
Java数据结构:散列表
1、散列函数 将任意长度的二进制值串映射为固定长度的二进制值串,这个映射的规则就是哈希算法。如MD5,就是一种被广泛使用的密码散列函数。 MD5(12)=C20AD4D76FE97759AA27A0C99BFF6710 MD5(123)=202CB962AC59075B964B07152D234B70 2、散列表 散列表(Hash table,也叫哈希表),就是通过散列函数将关键码...原创 2019-08-20 21:46:01 · 584 阅读 · 0 评论 -
MyBatis源码解析(一):MyBatis使用示例
MyBatis源码解析系列参考:http://www.mybatis.org/mybatis-3/zh/index.html和源码调试,加上画图理解 首先在掌握一门技术前,先得知道它是是什么,怎么用。之后再掌握底层原理 1、使用传统JDBC编程: public static void test() { Connection connection = null; Prepar...原创 2019-08-24 16:39:05 · 286 阅读 · 0 评论 -
Java数据结构:跳跃链表
1、跳跃链表 用某种数据结构来维护一组有序的数据的列表,尽可能在插入、删除、查找等操作上能够尽可能的快速。 数组:使用数组存储的话,采用二分法可以在 O(logn) 的时间里找到指定的元素,在进行插入和删除则时间复杂度为 O(n) 链表:使用链表存储的话,就插入、删除动作而言,所需的时间复杂度为 O(1) ,加上查找所需的时间复杂度为O(n),故插入、删除所需的总的时间复杂度为O(n)。 ...原创 2019-08-23 18:02:43 · 346 阅读 · 0 评论