- 博客(30)
- 收藏
- 关注
原创 学习-java中的锁
指在操作数据时非常乐观,默认认为不会并发操作数据,所以是默认不上锁的,只会在执行更新时才会判断别人是否修改数据,如果别人修改了数据就放弃更新的操作。因为默认不上锁的机制,乐观锁性能要更好,所以在冲突较少以及DB的的操作时优先考虑乐观锁。
2023-07-17 16:53:15 113
原创 面试题-mysql相关
首先,一个表中只能有一个主键索引 primary key ,非空且唯一普通索引相对而言只是用来增加查询效率,所以没有这么多限制。
2023-07-05 20:27:00 94
原创 面试题-Hashmap相关
HashMap基于哈希表的Map接口实现,是以key-value存储形式存在,即主要用来存放键值对。HashMap的实现是不同步的,这意味着他不是线程安全的,它的key,value都可以为nullJDK1.8之前HashMap由数组+链表组成。数组是HshMap的主体,链表则是主要为了解决哈希冲突(两个对象调用的hashCode方法计算的哈希值一致导致计算的数组索引值相同(哈希寻址算法[hash&length-1]))而存在的(“拉链法”解决冲突)
2023-07-05 16:03:40 93
原创 面试题-Redis
Redis的缓存雪崩指的是大量请求无法命中Redis的缓存数据,所以请求都发送到了数据库。正常情况下是客户端 -> request -> Redis (存在缓存)客户端 xRedis(无数据) -> 数据库数据库无法同时处理大量请求,所以可能会导致数据库所在服务器宕机类似于雪崩,但是这里特指热点数据,热点数据过期的话请求会直接打在服务器上。
2023-07-02 13:23:38 83
原创 基础算法-二分查找
在生活中,如果需要打电话给 j 某人,如果从电话簿的开始进行查找,那样将耗费大量的时间,所以,一般情况是直接翻页到中间部分进行查找。又例如玩一个游戏,朋友想一个数字,你进行猜测,朋友告诉你这个数字大于小于或是等于你猜的数字,如果你从1开始猜,那么最后猜对往往可能需要耗费比较多的次数。但如果从中间开始猜,例如50,得出相应的比较关系后,又以此类推,猜25或是75,最后就会以一个比较高的效率猜中这一个数字。相应的,如果从头开始查找,或者是从尾部开始查找,最坏的结果是需要查找n次(刚好需要查找的是第n个)。
2023-06-13 11:13:22 48
原创 基础算法:选择排序
选择排序(Selection-sort)是一种简单直观的排序算法。它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。表现最稳定的排序算法之一,因为无论什么数据进去都是O(n2)的时间复杂度,所以用到它的时候,数据规模越小越好。public static void main(String[] args) { int[] nums = {3, 4,
2022-05-18 14:41:49 121
原创 基础算法:冒泡排序学习
冒泡排序属于排序算法中的比较类排序中的交换排序冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。public static void main(String[] args) { int[] nums = {3, 5, 6, 1, 8, 2, 4}; for (int
2022-05-18 14:04:43 164
原创 基础算法:打家劫舍(动态规划问题)
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。计算能够偷到的最多的金额。条件:给定一个元素为非负整数的数组先上代码:public static void main(String[] args) { int[] ints = {9, 3, 4, 9,11}; int rob = rob(ints); Syst
2022-05-18 12:36:01 260
原创 基础算法:打印水仙花数
“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 “水仙花数 “,因为153=1的三次方+5的三次方+3的三次 public static void main(String[] args) { for (int i = 100;i<1000;i++){ //分别获取三位数的百位 b 十位 s 个位 g int b = i/100; int s = i%100/10;
2022-05-17 14:50:55 81
原创 基础算法:求101-200之间的素数
判断101-200之间有多少个素数,并输出所有素数。素数又叫质数,除了1和本身之外不能被其他自然数整除方法1: public static void main(String[] args) { for (int i = 101;i<=200;i++){ for (int j = 2;j<=i/2;j++){ if (i%j==0){ break;
2022-05-17 11:33:56 743
原创 基础算法:斐波那契函数学习
经典斐波那契兔子问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?首先可以知道数据为:1,1,2,3,5,8,13,21...从以上数据可以得知,第三个月的数据等于前两月数据之和,前两个月兔子数量为1也就是f(n) = f(n-1)+f(n-2) (n>=3 && n为正整数)递归方法:public class Rabbit { public static..
2022-05-16 16:06:25 333 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人