- 博客(22)
- 收藏
- 关注
原创 多线程与部分面试题
一、程序、进程、线程 1)什么是程序? 可执行文件例如:QQ.exe 2))什么是进程? 资源分配的基本单元 3)什么是线程? 调度执行的基本单位 4)线程切换(context switch) T1线程被调度执行到指令2时,突然 T2线程调度器选中,T1将会被扔进一个缓冲中,先将T2线程执行,来回切换 直到 所有线程执行完成。 5)单核CPU设定多线程是否有意义? 有 当第一个线程在等待状态时 可以让第二个线程先执行 充分利用CPU 6)线程数是不是越大越好 不是 线程切换是需要消耗
2022-02-15 18:03:38
287
原创 redis基本数据类型 hash类型
一、特点 hash是一个string类型的field和value的映射表,特别适合用于存储对象。如果hash的属性值被删除完,那么hash的key也会被redis删除。hash结构是可以压缩的,相比较N多个字段都单独存储成string类型来说,会比较节省内存。 二、操作 1)HDEL key field [field ...]删除一个或多个哈希字段 summary: Delete one or more hash fields since: 2.0.0 2)HEX...
2021-12-12 16:06:21
910
原创 redis基本数据类型 sorted_set类型
一、特点 Redis 有序集合和集合一样也是 string 类型元素的集合,且不允许重复的成员。 不同的是每个元素都会关联一个 double 类型的分数。redis 正是通过分数来为集合中的成员进行从小到大的排序。 有序集合的成员是唯一的,但分数(score)却可以重复。 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。 集合中最大的成员数为 232- 1 (4294967295, 每个集合可存储40多亿个成员)。...
2021-12-12 15:56:01
434
原创 redis基本类型 set类型
一、特点 存的值唯一,不可重复,无序 二、操作 1)SADD key member [member ...] 向集合中添加一个或多个成员 summary: Add one or more members to a set since: 1.0.0 2)SCARD key 获取集合中成员数量 summary: Get the number of members in a set since: 1.0.0 3)SDIFF key [key ....
2021-12-12 12:47:30
495
原创 redis基本数据类型 list类型
1) BLMOVE source destination LEFT|RIGHT LEFT|RIGHT timeout 列表弹出一个元素,推到另一个列表并返回,或者阻塞直到一个是可用的 LEFT|RIGHT LEFT|RIGHT : 弹出元素位置 summary: Pop an element from a list, push it to another list and return it; or block until one is available since: 6.2.0 2)BLPOP k
2021-12-12 12:17:17
525
原创 Redis String类型
一、对字符串操作 1)APPEND key value 向key中追加一个value APPEND key value summary: Append a value to a key since: 2.0.0 3)GET key 根据key 获取 value值 summary: Get the value of a key since: 1.0.0 4)GETDEL key 获取该key的value 并删除该key summary: Get the value of a key.
2021-12-11 22:14:31
252
原创 单链表实现 简单队列
package linkede; /** 队列 (单链表) * @author codelmh * @data 2021/12/9 */ public class MyQueue<T> { private Node head; // 指向 头结点 private Node tail;//指向尾结点 private Integer size; // 大小 public T peek(){ if (head == null){ .
2021-12-10 14:19:35
102
原创 单链表简单实现
package linkede; /** * (带头)单链表 * * @author codelmh * @data 2021/12/9 */ public class SingleLikedList<T> { private Node head; //记录头结点 private Integer size = 0; // 链表大小 /** * 链表反转 * @param singleLikedList */ publ.
2021-12-10 14:18:39
81
原创 CentOS7 安装redis
1、yum install wget 2、在 redis官网(Redis)找到 redis的下载链接(https://download.redis.io/releases/redis-6.2.6.tar.gz) 然后运行就可以下载 wgethttps://download.redis.io/releases/redis-6.2.6.tar.gz 3、下载完成后是一个压缩包,然后解压 tar xf redis-6.2.6.tar.gz 解压后就可以得到 redis-6.2.6 ...
2021-12-08 15:38:00
1185
原创 寻找局部最小
一、定义 局部最小: arr长度为1时,arr[0]是局部最小。 arr的长度为N(N>1)时, 如果arr[0]<arr[1],那么arr[0]是局部最小; 如果 arr[N-1]<arr[N-2],那么arr[N-1]是局部最小; 如果0<i<N-1,既有arr[i]<arr[i-1],又有arr[i]<arr[i+1],那么arr[i]是局部最小。 二、题目 给定无序数组arr,已...
2021-12-08 10:48:08
116
原创 1. f1() = {1,2,3,4,5} f1提供一个等概率的返回一到五的方法 根据f1写出 1~7之间返回等概率的方法 2. a1() = {0, 1} 不等概率 求返回一个 等概率的方法
一、f1() = {1,2,3,4,5} f1提供一个等概率的返回一到五的方法 根据f1写出 1~7之间返回等概率的方法。 做这个类型的题目: 提供一个等可能范围、 根据提供的等可能范围求其它范围 ① 根据提供的等可能范围求出一个 0 1 等可能 /** * 构造出 f2 等概率返回 0 1 * f1 概率返回 1- 5 所以出现各个数的概率为 20% * 所以 1 - 2 的概率 共: 40% 4 - 5 的概率 共:...
2021-12-07 10:07:00
127
原创 小算法~(一个数组查找 数组索引范围 值的总和 )
package find; /** 返回 数组范围和 * 第一种方法明显在空间上节省不少,但是却多了一步 减的操作 * 第二种方法在空间上多了很多,但是如果在取出数组范围和达到一定量级 * 量变引起质变,第二种就会比第一种好 * @author codelmh * @data 2021/12/5 */ public class FindRangeSum { public static void main(String[] args) { int[] arr = {1,.
2021-12-05 23:13:35
360
原创 java 与(&)、或(|)、异或(^)、按位取反(~)、左移(<<)、右移(>>)
以一个字节 8位做演算 a的2进制 00011100 b的2进制:00110111 int a = 28; int b = 55; a:00011100 b: 00110111 一、按位与(&)运算全1为1 见0为0 a:00011100 b: 00110111 a&b: 00010100 二、按位或(|)运算见1为1 全0为0 a:00011100 b: 001101...
2021-12-05 21:08:12
247
1
原创 反射、基础
一、获取字节码的四种方式 1)通过对象的getClass 方法 // 1. 通过getClass 方法获取 AliPay aliPay = new AliPay(); Class<? extends AliPay> c1 = aliPay.getClass(); 2)通过对象内置的Class方法 // 2. 通过内置的class方法 Class<AliPay> c2 = AliPay.cla.
2021-11-28 19:21:26
163
原创 反射 简单实例
一、案例:支付功能---> 微信、支付宝、云闪付等等 提供一个支付接口 package com.lmh; /**提供支付接口 * @author codelmh * @data 2021/11/24 */ public interface Payment { void payOnline(); } 微信支付实现 支付接口 package com.lmh; /** 微信实现支付接口 * @author codelmh * @data 2021/11/24.
2021-11-24 14:03:58
661
原创 mybatis 批量插入
今天在写mybatis批量加入时,发现插入时间太长了,才几千条数据就要接近一分钟才能完成,所以也去网上找了下解决方案 一、一条一条插入 <insert id="insert" parameterType="com.cntd.entity.Attack"> insert into attack (id,score, container) values ( #{id,jdbcType=INTEGER}, #{score,jdbcType=TINYINT
2021-11-22 14:03:01
392
原创 计数排序(稳定)
一、计数排序 时间复杂度:O(n+k) 空间复杂度:O(n+k) n:数组长度 k:桶长度 稳定性:稳定 二、使用场景 量大范围小,例如:求某公司大量员工年龄、高考分数 等等 三、上代码 package sort; import java.util.Arrays; /**计数排序(小-->大) * @author codelmh * @data 2021/11/21 */ public class CountSort { public static...
2021-11-21 20:10:00
459
原创 插入排序(直接插入、希尔排序)
一、直接插入排序 时间复杂度:O(n²) 空间复杂度:O(1) 稳定性:稳定 直接插入排序就有点像整队一样,已经已经排序的差不多了,但是突然发现你前面有个人的个子明显矮了半截,然后整队的人就会把他往前面插进去,然后刚刚位置前他当前位置以后的所有人都会往后挪一个位置 例如: 由小到大排序 2, 1, 5, 6, 7, 3, 4 ① 2与1比 ,2比1大,交换位置 1, 2, 5, 6, 7, 3, 4 ②2和5 比、5和6比、6和7比,都不用交换位置 1, 2, 5...
2021-11-21 13:03:56
632
原创 归并排序(细~~)
一、归并 归并排序先懂归并那接下来的代码也就更加容易理解了。 假设有一个数组那我们如何进行归并呢?如下数组两边有序的数组才能进行归并 arr= {1, 4, 7, 9, 2, 5, 8} 我们将这个数组看成两个小有序数组,但是不是分开 arrLeft = {1, 4, 7, 9} arrRight = {2, 5, 8} 那么我们将这两个数合并成一个有序数组 ①先创建一个新数组和arr的长度一致,前期准备 //构建一个新数组 和原来的数组长度一致 ...
2021-11-21 08:00:00
85
原创 冒泡排序 (小优化)
时间复杂度:O(n²) 空间复杂度:1 稳定性:稳定 冒泡排序的原理是:从左到右,相邻元素进行比较。每次比较一轮,就会找到序列中最大并且将这个数放到数组的相应位置。 比如对下面这个序列进行从小到大排序: 5, 9, 2, 7, 4, 1, 8, 3, 6 第一轮: 1) 5 和 9比,5 < 9,则它们不交换位置 5, 9, 2, 7, 4, 1, 8, 3, 6 2) 9 和 2 比,9 > 2,则交换位置 5, 2, 9, 7, 4, 1, ...
2021-11-19 10:36:54
775
原创 选择排序(小优化)
package sort; /**选择排序(小 ->大) * @author codelmh * @data 2021/11/18 */ public class SelectSort { public static void main(String[] args) { /** * 思路:选择排序是非常简单的一个排序方式 也是不常用的排序方式 * 缺点:时间复杂度(n²) 而且不稳定 * 将第一个 假设为最小值的.
2021-11-18 20:08:41
305
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人