自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(109)
  • 收藏
  • 关注

原创 高龄白菜java学习第115天(MySql数据库高级(6))

第四章:MySql锁机制 锁的分类:共享锁、排他锁 锁的粒度越大,冲突概率越高 SHOW OPEN TABLES FROM 库名:查看某个库中的表锁 UNLOCK TABLES 读锁的加锁方可以读加锁的表,不能改,同时也不能读别的表,是为了防止未解锁就去对别的表进行操作,最后忘了解锁这个事 分析表锁定 SHOW STATUS LIKE ‘table%’ 行锁的前提是有索引和事务 间隙锁 如何锁定一行 行锁的优化建议 ...

2021-12-12 23:55:56 660 1

原创 高龄白菜java学习第114天(MySql数据库高级(5))

第三章:查询截取分析 优化1:小表驱动大表 exist语法:将主查询的数据放到子查询中做条件验证,判断数据是否可以保留 in的时候先执行内查询(括号),exist的时候先执行外查询 优化2:Order By关键字优化 单路排序 优化3:group by关键字优化 慢查询日志 show global status like ‘%Slow_queries%’ 可以显示慢sql条数,可用作健康度的检查 cat一下slow.log(数据量少的时候) MySql提供了日志分析工具mysq

2021-12-11 22:37:18 397

原创 高龄白菜java学习第113天(MySql数据库高级(4))

索引失效 最左原则 4和5:范围右边不生效&多用覆盖索引 6: 8: 如果想要%%的like能够使用索引,可以设置覆盖索引(查询字段与索引字段保持一致) 注:主键默认会有索引 ​ 最左原则指的是where后面的筛选条件 9:会进行隐式类型转换,违背了3 10: 小结: 全值匹配我最爱,最左前缀要遵守; 带头大哥不能死,中间兄弟不能断; 索引列上少计算,范围之后全失效; Like百分写最右,覆盖索引不写星; 不等空值还有or,索引失效要少用; 面试题分析: sql的查询优化器会优化语句

2021-12-09 22:51:03 436

原创 高龄白菜java学习第112天(MySql数据库高级(3))

(4)type:重点 从最好到最差依次是: system>const>eq_ref>ref>range>index>all eq_ref:双表:前一个表的唯一索引只能在后表中找到唯一记录 (5)key、possible_keys(可以用来做索引失效的校验) 查询的字段就在索引中(顺序和个数都匹配),此时展示的情况就是possible_keys为空但key中有值 (6)key_len: key_len只计算where条件用到的索引长度,单列索引计算整个索引长度,多

2021-12-08 22:47:00 568

原创 高龄白菜java学习第111天(MySql数据库高级(2))

mysql索引结构:B树索引、Hash索引、full-text索引、R-Tree索引 对3的说明: 二、性能分析(***) explain 作用: explain+SQL语句之后获得的表的表头信息: 字段解释 (1)id: 情况一: 情况二: 情况三: (2)select_type:数据读取操作的操作类型 (3)table:显示这一行的数据是关于哪张表的 ...

2021-12-07 22:26:39 135

原创 高龄白菜java学习第110天(MySql数据库高级(1))

第一章:概述 frm文件存放表结构 myd文件存放表数据 myi文件存放表索引 存储引擎,类似策略模式 连接层、服务层、引擎层、存储层 插件式的存储引擎架构将查询处理、其他的系统任务、数据的存储提取相分离 MyISAM和InnoDB两种引擎的对比 第二章 性能优化 性能下降的可能原因 1、sql语句写的不好 2、索引失效 3、关联查询join了太多表 4、服务器调优及各个参数配置 七种join类型 由于mysql中不支持全外连,可以使用union汇总+去重查询结果实现相同目的 索引是一种数据结构:

2021-12-06 21:45:15 261

原创 高龄白菜java学习第109天(java数据结构和算法(27))

九、弗洛伊德算法 代码实现: package Algorithm.Floyd; public class Floyd { public static void main(String[] args) { char[] vertex = {'A', 'B', 'C', 'D', 'E', 'F', 'G'}; int[][] matrix = new int[vertex.length][vertex.length]; final int N =

2021-12-01 22:51:34 762 1

原创 高龄白菜java学习第108天(java数据结构和算法(26))

八、迪杰斯特拉算法 ![在这里插入图片描述](https://img-blog.csdnimg.cn/a3c28eb2970d44428dbe55d361cc7860.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6LSl54Gr572X5rGJ5p6c,size_20,color_FFFFFF,t_70,g_se,x_16) 注:代码中有两个部分会更新dis【】,分别是直连距离和通过其他顶点

2021-11-30 23:08:28 432

原创 高龄白菜java学习第107天(java数据结构和算法(25))

七、克鲁斯卡尔算法 逻辑: 获取排序后边的集合,保证优先添加权值最小的边,通过回路判断(终点是否一致)决定是否将边加入最终结果集 代码实现: package Algorithm.Kruskal; import java.lang.reflect.Array; import java.util.Arrays; //克鲁斯卡尔算法 public class KK { int edgeNum;//边的数量 char[] vertex;//顶点数组 int[][] matrix

2021-11-29 23:06:33 451

原创 高龄白菜java学习第106天(java数据结构和算法(24))

六、普利姆算法 代码实现: package Algorithm.Prim; import java.util.Arrays; public class Prim { public static void main(String[] args) { MGraph graph = new MGraph(7); MinTree minTree = new MinTree(); char[] data ={'A','B','C','D','E',

2021-11-28 23:22:13 882

原创 高龄白菜java学习第105天(java数据结构和算法(23))

四、KMP算法 kmp算法的学习主要参考了sofu6博主的帖子,链接如下: KMP算法详解 五、贪心算法 思路分析 1、取一轮中包含覆盖地区最多的key 2、在下一轮把已覆盖的地区从地区集合中去掉,直到地区集合为空 代码实现: package Algorithm.GreedyAlgorithm; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.Map; p

2021-11-27 21:30:57 448

原创 高龄白菜java学习第104天(java数据结构和算法(22))

第八章:十大算法 一、二分查找(非递归) 注:使用二分查找的前提是一个有序数组 package Algorithm; //二分查找的非递归实现 public class BinarySearchNoRecursion { public static void main(String[] args) { int[] arr = {3,7,11,46}; int index = binarySearch(arr, 11); System.out.pri

2021-11-25 22:00:56 2642 3

原创 高龄白菜java学习第103天(java数据结构和算法(21))

第七章:图 #### 一、图的创建 思路分析 1、用一个String数组保存顶点 2、用一个二维数组保存邻接矩阵 3、通过方法实现顶点之间边的添加和计数 package Graph; import java.util.ArrayList; import java.util.Arrays; //图 public class Graph { private ArrayList<String> vertexList;//存储顶点 private int[][] edg

2021-11-23 22:44:45 523

原创 高龄白菜java学习第102天(java数据结构和算法(20))

十、多路查找树 B树就是一种多路树 插入的具体步骤: (1) (2) (3) B树,B+树,B*树

2021-11-22 23:30:54 240

原创 高龄白菜java学习第101天(java数据结构和算法(19))

九、平衡二叉树 左旋转 右旋转 双旋转 上图直接右旋转,最后仍不然是平衡二叉树 双旋转的第一旋,目的就是把二叉树转换成"外侧"高度>"内侧"高度的标准格式,方便后续的旋转操作 package Tree.AVL; public class demo { public static void main(String[] args) { // int[] arr = {4, 3, 6, 5, 7, 8};//右子树高 // int[] arr = {10,

2021-11-21 21:44:20 1886 2

原创 高龄白菜java学习第一百天(java数据结构和算法(18)链表部分复习)

出现的问题 1、单链表的反转。需要保存的是当前节点的next节点,而不是当前节点,否则用.属性名的方式修改next域之后,原链表仍然会断掉 2、从尾到头打印链表这个题目中不能在for循环当中作栈的pop操作,因为stack的size是会发生变化的 3、双链表自我删除时,temp.next.pre==temp.pre需要加判断来避免要删除的是最后一个节点 ### 4、环形链表的构建时,For循环的条件取值需要注意,保障临时指针,在首节点first的取值之前(i==1),是不参与构建的 5、约瑟夫问题之

2021-11-20 16:36:28 486

原创 高龄白菜java学习第九十八、九天(java数据结构和算法(17))

文件的压缩和解压(其余部分复用上面) //将一个文件压缩 /** * @param srcFile 要压缩的文件的全路径 * @param dstFile 压缩后要保存在哪里的全路径 */ public static void zipFile(String srcFile, String dstFile) throws IOException { FileInputStream is = null; FileOut

2021-11-19 22:55:05 932 1

原创 高龄白菜java学习第九十七天(java数据结构和算法(16))

1、赫夫曼编码 2、使用赫夫曼编码生成编码数据 3、将编码数据解压回原文 压缩思路分析 解压思路分析 1、把压缩后得到的byte转换为二进制字符串 2、把字符串按照指定的编码进行解码(把赫夫曼编码表进行一次调换,因为要反向查询) 3、创建一个集合存放byte 4、通过newString方法把原字符串对应的byte数组转回字符串 package Tree.HuffManTree.HuffManCode; import java.util.*; import static java.lang.In

2021-11-17 23:42:37 947

原创 高龄白菜java学习第九十六天(java数据结构和算法(15))

七、赫夫曼树 代码实现 package Tree.HuffManTree; import java.util.ArrayList; import java.util.Collections; public class HuffManDemo { public static void main(String[] args) { int[] arr = {13,7,8,3,29,6,1}; Node root = createHuffManTree(arr)

2021-11-16 23:10:20 674

原创 高龄白菜java学习第九十四、五天(java数据结构和算法(14))

四、顺序存储二叉树 代码实现 package Tree.BinaryTree; //顺序存储二叉树 public class ArrBinaryTree { public static void main(String[] args) { int[] arr = {1, 2, 3, 4, 5, 6, 7}; ArrTree tree = new ArrTree(arr); tree.preOrder(); System.out.pr

2021-11-14 22:27:25 755

原创 高龄白菜java学习第九十二、三天(java数据结构和算法(13))

第六章:树 一、二叉树 思路分析 节点提供具体实现方法,树实现接口调用 二、查找指定节点 思路分析 三、二叉树删除节点 课后作业: 代码实现 package Tree.BinaryTree; public class Demo01 { public static void main(String[] args) { //创建一棵二叉树 BinaryTree binaryTree = new BinaryTree(); //创建需要

2021-11-12 23:19:15 791 1

原创 高龄白菜java学习第九十一天(java数据结构和算法(12))

四、斐波那契查找(黄金分割法) 思路分析 即:数组长度不足时补足,然后用特殊mid值做递归 代码实现 package Search.fib2; import java.util.Arrays; public class FibonacciSearch2 { public static int maxSize = 20;//确定斐波那契数组的大小 public static void main(String[] args) { int[] arr = {1, 3, 14,

2021-11-11 22:59:35 433

原创 高龄白菜java学习第九十天(java数据结构和算法(11))

第三章:查找算法 在java中,常用的查找有4种 线性查找、二分查找/折半查找、插值查找、斐波那契查找 一、线性查找 package Search; import java.util.Arrays; //线性查找 public class SequenceSearch { public static void main(String[] args) { int[] arr = {2,46,12,77,30}; System.out.println(Arrays.t

2021-11-09 22:51:55 296

原创 高龄白菜java学习第八十九天(java数据结构和算法(10))

快速排序 代码实现 package Sort; import java.util.Arrays; //快速排序 public class QuickSort { public static void main(String[] args) { int[] arr = {-9,78,0,23,-567,70}; quick(arr,0, arr.length-1); System.out.println(Arrays.toString(arr));

2021-11-08 23:03:31 546 1

原创 高龄白菜java学习第八十八天(java数据结构和算法(9))

1

2021-11-07 21:53:50 223

原创 高龄白菜java学习第八十七天(java数据结构和算法(8))

package Recursion; //八皇后问题 public class EightQueen { //定义一共有多少个皇后 static int max = 8; //定义一个存放皇后位置的数组 static int[] arr = new int[max]; static int count=0; public static void main(String[] args) { check(0); } //打.

2021-11-06 23:10:45 5574 7

原创 高龄白菜java学习第八十六天(java数据结构和算法(7))

package Stack.PolandNotation03; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Stack; public class demo03 { public static void main(String[] args) { //完成一个中缀转后缀的功能 //1+((2+3)*4)-5 => .

2021-11-04 22:41:24 140 1

原创 高龄白菜java学习第八十五天(java数据结构和算法(6))

package Stack.PolandNotation; import java.util.ArrayList; import java.util.List; import java.util.Stack; public class demo03 { public static void main(String[] args) { //先定义逆波兰表达式 //(3+4)*5-6 ==> 34+5*6- String suffi...

2021-11-03 23:12:41 201 1

原创 高龄白菜java学习第八十四天(java数据结构和算法(5))

1

2021-11-02 22:40:17 114

原创 高龄白菜java学习第八十三天(java数据结构和算法(4))

2021-11-01 23:23:09 115

原创 高龄白菜java学习第八十二天(java数据结构和算法(3))

1

2021-10-29 23:41:05 103

原创 高龄白菜java学习第八十一天(java数据结构和算法(2))

2021-10-26 23:49:07 127

原创 高龄白菜java学习第八十天(java数据结构和算法(1))

2021-10-25 22:23:57 181 1

原创 高龄白菜JAVA学习第七十九天(Redis(1))

一、NoSql 1、缓解CPU和内存压力 2、缓解IO压力 非关系型数据库,不依赖业务逻辑方式进行存储,以简单的key - value方式存储 二、Redis概述和安装 1、概述 2、安装 3、相关知识 默认16个数据库,默认使用0号库,使用命令select dbid来切换数据库 dbsize 查看当前库key的数量 flushdb 清空当前库 flushall 通杀全部库 Redis单线程+多路io服用技术 当前无返回结果时,CPU继续做其他事情不等待 三、常用操作 1、Redis 键的操作

2021-10-08 22:45:06 155

原创 高龄白菜JAVA学习第七十八天(Git)

一、git使用 git工作机制 工作区暂存区=本地库==========远程库 git常用命令 1、在对应的盘符中右击进入git bash,输入git init后生成.git 2、git add 提交工作区的文件到暂存区,可以用git rm将暂存区中的文件删除 3、git commit -m ”日志信息“ 文件名 提交到本地库 4、git中修改的提示:1行新增,1行删除 5、git reset --hard 版本号 版本穿梭 二、git分支 1、分支切换 2、分支合并 ..

2021-09-25 22:00:50 169 1

原创 高龄白菜JAVA学习第七十七天(Mybatis(10)mybatis运行原理)

1

2021-09-24 07:51:13 108

原创 高龄白菜JAVA学习第七十六天(Mybatis(9)Mybatis-Spring整合)

一、

2021-09-22 22:31:42 106

原创 高龄白菜JAVA学习第七十五天(Mybatis(8)动态sql:内置参数|缓存)

一、内置参数 bind绑定 sql标签 二、缓存

2021-09-17 23:36:54 135

原创 高龄白菜JAVA学习第七十四天(Mybatis(7)鉴别器|动态sql:if/trim/choose/set/foreach)

1

2021-09-15 07:31:23 107

原创 高龄白菜JAVA学习第七十三天(Mybatis(6)resultmap:assocation延迟加载|collection封装规则/分步查询/延迟加载|fetchType)

二、collection定义关联集合封装规则 场景二:查询部门信息的时候将部门对应的员工信息也查询出来 collection的分步查询

2021-09-12 23:40:40 156

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除