ENTJ
ENTJ
全部文章
Java
JVM(3)
leetcode 排序(1)
leetcode回溯(2)
mysql(1)
web(1)
剑指offer题解(1)
数据结构(14)
未归档(1)
归档
标签
去牛客网
登录
/
注册
ENTJ的博客
全部文章
/ Java
(共17篇)
线程池介绍
一、为什么要用线程池 1、使用线程池之前 一开始接触多线程的时候,我们知道有三种方式可以创建多个线程,一种方式是继承Thread类本身;另外一种方式是实现Runnable接口;第三种方式是实现Callable接口并利用Future; 线程无返回值的时候,一般通过实现Runnable接口...
2019-12-12
0
567
volatile关键字解析
volatile关键字能够保证对其修饰的变量进行 读取 或 写入 操作时是原子操作,且保证对其修饰的变量进行写入操作是具有先行发生原则的(即对其进行写入操作能够使得其它对该变量的读取操作读取到的变量值都是最新的),但是volatile并不能保证其它操作也是原子操作,仅仅是保证读取 写入操作而已。注意...
2019-10-31
0
496
递归 回溯
递归 回溯 总结:树的题目很多都可以需要通过递归来解决,而很多问题虽然直观上看不是一个树的问题,但是考虑一下其本质是一个树形问题,可以转化为一课树,然后通过递归解决,关键在于观察得到递归关系;回溯法是一种暴力解法的一个主要实现手段,通过剪枝可以让回溯法提升一些性能,当循环遍历不要暴力解决时,通过回...
2019-10-15
0
690
二叉树的非递归遍历总结
二叉树的非递归遍历总结 /** * * *非递归遍历 * * */ public class BinaryTree{ //先序遍历,且为根左右 public void preOrder(Node root){ if(root == null) return; Stack<...
2019-10-05
0
500
leetcode_二叉树_递归
二叉树 递归 总结:二叉树具有天然的递归结构,因为二叉树的定义本身就是个递归地定义过程,而递归我们需要把握住三点,第一是递归函数<mark>及其传参</mark>的含义(就像数组的边界定义,链表的所有引用的含义一样重要);第二是递归的终止条件;第三是递归过程(递归过程可能涉...
2019-10-05
0
688
leetcode_链表
链表 总结:链表的题目一定要把链表画出来,多去画一画,想一想,不会很难,但是要十分注意细节,很容易出错。 链表不像数组,数组会结合很多技巧和算法,链表的题只需要常规的去一步一步的思考,考虑清楚边界,头结点和尾结点的处理,考虑清楚下一个节点到底是哪一个,一步一步的即可。 链表中考虑清楚边...
2019-10-05
0
609
liuyubobobo_查找问题
查找问题 总结:其对查找问题的范围相对宽泛,很多找出、找到等等的问题均认为是查找问题,而查找问题常用的两种数据结构就是set 和 map。 set用于查找有无的问题,不会用于查找出现的次数,因此set中的元素是不重复的。 map用于查找对应关系、查找出现的次数,是一些键值对。 ...
2019-10-05
0
3881
liuyubobobo_数组_基于数组的排序、二分搜索、双指针、对撞指针、滑动窗口
数组 总结: 1. 283 移动零 双指针。 方法:题目要求原地算法,使用两个指针从头遍历,其中i指针用于遍历数组中的所有元素,另外k指针指向当前可以放置非零元素的第一个位置,i指针遍历到一个非零元素,就将此值与k指向的当前元素交换,然后k自增,i继续遍历,由于k实际上规定了[0, ...
2019-10-05
0
645
HashMap源码阅读及阅读笔记
HashMap源码阅读 总结:把握住很重要的一点,HashMap内部通过数组 + 链表 或者 数组 + 红黑树来存储数据对,但实际上理想的状态是只用数组存储,源码以理想状态作为基础,当出现非理想状态(冲突时)才去考虑如何弥补。 1. HashMap内部通过许多存储桶存储数据结构,所有的存储桶由一...
2019-10-05
1
574
ArrayList源码及阅读笔记
ArrayList源码及阅读笔记 总结:ArrayList是非线程安全的,内部通过数组保存数据,源码中复用到的方法都进行了方法抽离复用,ArrayList中数组默认初始化大小是10,数组中当前已经全部存储上元素后,以后每次添加元素不管是一个还是同时添加多个元素,内部数组都只会扩容至刚好容纳下新加入...
2019-10-04
0
474
首页
上一页
1
2
下一页
末页