
java
小楼昨ye又东风
这个作者很懒,什么都没留下…
展开
-
创建多线程几种方式(java)
基本概念程序:一段静态的代码;为了完成特定任务,用某种语言编写的一组指令的集合,进程:正在运行的一个程序,是一个动态的过程(生命周期),进程作为资源分配的单位,系统在运行时会给每个进程分配不同的内存区域。线程:一个程序内部的一条执行路径。线程作为调度和执行的单位,每个线程拥有独立的运行栈和程序计数器。JDK中线程的几种状态新建:当一个Thread类或者其子类的对象被声明并创建时,新生的线程对象处于新建状态就绪:处于新建状态的线程被start()后,将进入线程队列等待CPU时间片,此时具备了运行原创 2020-05-10 23:14:08 · 214 阅读 · 0 评论 -
哈希函数实现原理(二)重写equals的规范
自定义对象重写equals的一些规范自定义的对象作为key值,最好同时重写hashCode和equals方法原因可查看哈希函数实现原理(一)规范 :自反性:对于非空的对象o, o.equals(o)必须返回true;对称性:对于非空的对象a,b,如果a.equals(b) 返回true,那么b.equals(a)也必须返回true;传递性:对于非空的对象a,b,c,如果a.equal...原创 2020-04-22 21:31:47 · 150 阅读 · 0 评论 -
哈希函数实现原理(一)
认识一下31这个神奇的数,31是一个奇素数(即是奇数又是素数)31 * i 可以写成(i << 5)- i (JVM可以把31 * i 优化成 (i << 5) - i)素数和其他数相乘的结果比其他方式更容易产生唯一性,减少哈希冲突31是经过观测分布结果后的选择哈希表哈希表类似数组一样,根据索引去存放值,添加、搜索、删除的都可以达到O(1)的级别,索引的计...原创 2020-04-20 15:55:27 · 1361 阅读 · 0 评论 -
(leetcode)55跳跃游戏
题目描述给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。案例示例 1:输入: [2,3,1,1,4]输出: true解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。示例 2:输入: [3,2,1,0,4]输出: false解...原创 2020-04-17 17:47:51 · 105 阅读 · 0 评论 -
二叉平衡搜索树(仅思路)
二叉平衡搜索树(AVL树)平衡因子:某节点的左右子树的高度差AVL树特点每个节点的平衡因子只可能是1、0、-1每个节点的左右子树高度不超过1搜索、添加、删除的时间复杂度为O(logn)一切从简,下面的例子中节点“6”,“7”, “8”,可能包含左右子树由于添加和删除造成的失衡情况LL型-(右旋转)旋转操作:让“8”这个节点成为7的右子节点,如果“7”这个节点本身有右子...原创 2020-04-12 17:32:13 · 114 阅读 · 0 评论 -
二叉搜索树(java版)
二叉搜索树(Binaru Search Tree)性质二叉搜索树是二叉树的一种,应用非常广泛,简称BST任意一个节点的值都大于其左子数所有节点的值任意一个节点的值都小于其右子树所有节点的值它的左右子树也是一个二叉搜索树需求:可以存储任何元素自定义类型,需要指定比较方式不能为null新建一个BinarySearchTree.java文件定义节点private stat...原创 2020-04-11 18:09:32 · 160 阅读 · 0 评论