- 博客(25)
- 收藏
- 关注
原创 HashMap 部分源码解析
HashMap 部分源码解析文章目录HashMap 部分源码解析属性构造函数查询新增删除在JDK 8 之前,HashMap 的底层实现是数组 + 链表。JDK 8 及之后,HashMap 改为了 数组 + 链表 + 红黑树 的实现方式属性 static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16 初始容量...
2020-04-09 20:30:18
213
原创 ArrayList源码分析
注:以下源码基于jdk1.8文章目录继承结构与层次关系构造函数常用方法1. 增add2. 删removeclear3. 查getindexOfclone4. 改5. 迭代hasNextnextremove线程安全继承结构与层次关系拆分一下构造函数无参构造函数 public ArrayList() { this.elementData = DEFAULTCAPA...
2020-02-18 23:52:47
172
原创 【剑指offer】链表中倒数第k个结点
题目链接牛客网题目描述输入一个链表,输出该链表中倒数第k个结点。第一种方法:遍历一遍,获取链表元素个数,然后再遍历一遍,返回结点public class Solution { public ListNode FindKthToTail(ListNode head,int k) { if (head == null) return head...
2020-02-18 23:43:08
127
原创 【剑指offer】变态跳台阶
题目链接牛客网题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。若 n = 1,有1中可能若 n = 2第一次跳 1 级:剩下1级,有 1 种可能第一次跳 1 级:直接到达,有 1 种可能共 2 种。若 n = 3第一次跳 1 级:剩下2级,有 f(2) 种可能第一次跳 2 级:剩下1级,有 f(1)...
2020-02-18 22:00:47
140
原创 【剑指offer】跳台阶
题目链接牛客网题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。记 n 与种数的关系为 f(n)n = 1时,f(1) = 1;n = 2 时,可以选择第一次跳一个台阶,跳两次,也可以一次跳上去。f(2) = 2;n = 3 时,第一次跳一级,有 f(2) 种,第一次跳2级,有 f(1) 种;n = i ...
2020-02-18 21:23:17
245
1
原创 【剑指offer】斐波那契数列
题目链接牛客网题目描述求斐波那契数列的第 n 项,n <= 39(第0 项为 0)。斐波那契数列的 前几项为 1, 1, 2, 3, 5, 8…,可以看出斐波那契数列的通项公式为:f(n) = n, (n < 2)f(n) = f(n - 1) + f(n - 2) ,(n >= 2)递归法 public int Fibonacci(int n) { ...
2020-02-18 20:51:08
91
原创 【剑指offer】矩形覆盖
题目链接牛客网题目描述我们可以用 21 的小矩形横着或者竖着去覆盖更大的矩形。请问用 n 个 21 的小矩形无重叠地覆盖一个 2*n 的大矩形,总共有多少种方法?记n 与覆盖方法的关系为 f(n)当 n = 1时,f(1) = 1;当 n = 2时,第一块横着放有一种,第一块竖着放有一种,所以f(2) = 2;当 n = 3时,第一块横着放,有 f(2)种,第一块竖着放,有f(1)...
2020-02-18 20:45:11
92
原创 【剑指offer】用两个栈实现队列
题目链接牛客网题目描述用两个栈来实现一个队列,完成队列的 Push 和 Pop 操作。栈的特性:先进入的后出来,后进入的先出来(First in last out)队列的特性:先进来的先出去(First in first out)想要利用两个栈实现队列的特性,我们不难想到:一个栈用来 push,时间复杂度为 O(1),pop 的时候将栈中元素全部 pop 到第二个栈中。然后再将第二个...
2020-02-13 14:47:48
120
原创 【剑指offer】重建二叉树
题目链接牛客网题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。pre:12473568in:47215386我们知道,前序遍历的第...
2020-02-13 14:46:27
96
原创 【剑指offer】替换空格
题目链接牛客网题目描述将一个字符串中的空格替换成 “%20”。Input:"A B"Output:"A%20B"从后往前遍历,移动数组元素。public class Solution { public String replaceSpace(StringBuffer str) { int size = str.length(); in...
2020-02-13 14:45:11
88
原创 【剑指offer】二维数组中的查找
题目链接牛客网题目描述给定一个二维数组,其每一行从左到右递增排序,从上到下也是递增排序。给定一个数,判断这个数是否在该二维数组中。Consider the following matrix:[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24], ...
2020-02-12 09:38:20
139
原创 Spring 管理连接池
要想管理连接池,首先得导入数据库相关包,这里就不多说了。我们这里采取配置文件的方式写入配置user=rootpassword=123jdbcUrl=jdbc:mysql://localhost:3306/bjpowernodedriverClass=com.mysql.jdbc.Driver这里有一个坑,那就是注意不要写username,因为 username代表的是当前用户的名称,...
2020-01-06 23:14:16
191
原创 Spring Bean 后置处理器
Bean 后置处理器允许在调用初始化方法前后对 Bean 进行额外的处理。 BeanPostProcessor 接口定义回调方法,我们可以实现该方法来提供自己的实例化逻辑,依赖解析逻辑等。也可以在 Spring 容器通过插入一个或多个 BeanPostProcessor 的实现来完成实例化,配置和初始化一个bean之后实现一些自定义逻辑回调方法。 下面是我们需要用到的 beanpublic...
2020-01-06 22:14:51
135
原创 Spring IOC 复杂类型的注入方式
前面我们已经讲解了简单类型的注入方式,现在让我们来看看复杂类型的注入方式。 首先看看我们需要用到的 beanpublic class Book { private String name; private String author; // getter/setter... // toString()...}public class Car { ...
2020-01-05 21:08:06
161
原创 Spring IOC 简单类型的注入方式
首先我们需要创建一个 beanpublic class Person { private String name; ...
2020-01-05 21:06:56
164
原创 Leetcode Reverse String
class Solution { public void reverseString(char[] s) { int i = 0; int j = s.length - 1; while (i < j) { swap(s, i, j); i++; j--; ...
2019-12-06 17:11:19
101
原创 自定义注解
相关概念An annotation is a form of metadata, that can be added to Java source code. Classes, methods, variables, parameters and packages may be annotated. Annotations have no direct effect on the operat...
2019-12-05 18:20:47
102
原创 8086CPU 给出物理地址的方法
以下内容来自于《汇编语言》(第三版) 8086CPU 有 20 位地址总线,可以传送 20 位地址,达到 1MB 寻址能力。但是 8086CPU 是 16 位结构,在内部一次性处理、传输、暂时存储的地址为 16 位。从 8086CPU的内部结构来看,如果将地址从内部简单地发出,那么它只能送出 16 位地地址,表现出的寻址能力只有 64KB。8086CPU采用一种在内部用两个 16 位地址合成...
2019-11-22 15:39:35
3972
原创 Java接口的初始化
学习学习类初始化的时候看到了下面关于接口的两天结论:在初始化一个类时,并不会初始化它所实现的接口在初始化一个接口时,并不会先初始化它的父接口 因为接口中的变量都是 public static final 的,所以我一直在想,如何才能让接口初始化呢。直到我看到了网上的一个例子:public class InterfaceTest { public static void main(...
2019-11-06 22:03:27
2422
5
原创 CentOs 安装jdk
首先检查系统是否已经安装了jdkjava -version CentOS7系统中自带有OpenJDK,与Java SE的JDK相比,OpenJDK相当于精简版的JDK,要少一部分功能,比如不支持有的服务部署,还有源码的完整性比不上完整版的JDK。所以我们得先干掉它。查找Linux系统中的jdk,如果有,卸载。如果没有任何反应,说明没有rpm -qa | grep javarpm -...
2019-11-06 17:36:41
97
原创 Leetcode (Plus One)
Given a non-empty array of digits representing a non-negative integer, plus one to the integer. The digits are stored such that the most significant digit is at the head of the list, and each elemen...
2019-10-28 22:06:34
123
原创 Leetcode Largest Number At Least Twice of Others
Largest Number At Least Twice of Others In a given integer array nums, there is always exactly one largest element. Find whether the largest element in the array is at least twice as much as every o...
2019-10-28 21:10:45
125
原创 Leetcode Find Pivot Index
Given an array of integers nums, write a method that returns the “pivot” index of this array.We define the pivot index as the index where the sum of the numbers to the left of the index is equal to ...
2019-10-26 19:46:37
138
原创 用数组模拟栈
我们先介绍一下api FixedCapacityStack(int cap) 创建一个容量为cap的空栈 void push(Item item) 添加一个元素 Item pop() 删除最近添加的元素 boolean isEmpty() 栈是否为空 int...
2019-10-21 20:58:56
179
原创 vim的基本使用
1.vim的工作模式命令模式: 是主要使用快捷键的模式。命令模式想要进入输入模式可以使用以下方法插入模式命令作用a在光标所在字符后插入A在光标所在行尾插入i在光标所在字符前插入I在光标所在行行首插入o在光标下插入新行O在光标上插入新行输入模式: 主要用于文本编辑编辑模式::w 保存不退出 :w fil...
2019-10-10 17:19:38
161
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人