- 博客(15)
- 收藏
- 关注
原创 基础shell编程
执行一个shell文件# 也可用绝对路径[root@localhost shell]# ./myShell.sh hello,worldshell变量系统变量 $PATH $USER 等echo "PATH=$PATH"echo "user=$USER"用户自定义变量 A=100,readonly 静态变量不能unsetA=100echo "A=$A"unset Aecho "A=$A"#静态变量readonly A=99echo "A=$A"unset
2021-08-17 18:31:39
134
原创 linux实操命令
快捷键拷贝当前行 yy,粘贴 p;拷贝当前行向下的5行 5yy;删除当前行 dd, 删除当前行向下的5行 5dd;文件中查找某个单词,命令行下 /关键字 ,回车查找,输入n查找下一个;设置行号显示,:set nu,关闭行号显示,:set nonu;编辑 /etc/profile 文件,使用快捷键到底文档的最末行[G]和最首行[gg],在正常模式下进行;撤销操作, 正常模式下 u;光标定位到指定行号20,正常模式下,输入20,再shift+g;关机和重启指令shutdown
2021-08-16 21:40:55
1750
原创 定制定时任务 quartz + springboot + mysql
(文末有做好的完整项目)↓↓↓做springboot项目时遇到的需求是:提供给用户前端接口让用户自由地赋予一些需要定时执行任务的触发时间并且能够修改触发时间。传统的@scheduler注解只能在开发时写死触发时间,无法动态修改。所以尝试了新的更灵活的quartz定时,实现需求。在文末的完整项目中,只需要按照com.jjy.quartzjar.job.impl.MyJob类作为模板,即可在没有quartz开发经验的前提下,也可以定制出需要的定时任务。步骤分别是:在com.jjy.quar
2021-08-12 22:01:01
658
原创 环问题 之 快慢指针
应用题目:力扣457什么是快慢指针双指针法的一种,双指针除了有左右双指针外还有快慢双指针。快慢指针是解决检测环问题的经典算法。两个指针从同一个起点出发,快指针跑的更快,慢指针更慢。若是路径上存在环,那么快指针在进入环后会一直在环内打转,等待慢指针也进入后就能存在快指针追上慢指针的情况。若是路径上不存在环,那么快指针永远不会追上慢指针。解题代码示例class Solution { private int[] nums; private int n; public boole
2021-08-07 21:17:10
196
原创 环问题 之 拓扑排序
检测环是否存在能得到拓扑排序的图是没有环的,可以以拓扑排序的原理,检查图中是否有环;关键代码如下: ArrayDeque<Integer> q = new ArrayDeque<>(); for (int i = 0; i < n; i++) { //inDegree数组记录每个节点的入边数量,入度为0进队 if(inDegree[i]==0){ q.add(i); } } List<Integer> res =
2021-08-07 21:13:33
842
原创 list工具类:得到新旧两个list数组的差异 更新list元素
工具类说明:新旧list对比,返回新list相比于旧list新加的元素集合和旧list相比于新list过期的元素集合。/** * @Description: List的工具类 * @Author JiaYun * @Date 2021/7/14 15:53 * @Version V1.0 **/public class ListUtil { /** * @Author JiaYun * @Description 比较两个list的差异 *
2021-07-27 11:06:41
658
原创 java.sql.SQLException: Field ‘id‘ doesn‘t have a default value
报错java.sql.SQLException: Field ‘id’ doesn’t have a default value;用mybatisplus的BaseMapper接口自带的insert方法插入数据时报错;主键上有id的注解: @TableId(value = "id",type = IdType.AUTO) private int id;解决办法:如上图,没有选中自动递增,将数据库设计表的自动递增选中即可;...
2021-07-27 10:59:12
288
原创 Operator ‘==‘ cannot be applied to ‘int‘, ‘null‘
写项目时遇到的小问题:代码如下://我的indexDTO中有id属性:private int id;if(indexDTO.getId()==null)//idea提示:Operator '==' cannot be applied to 'int', 'null'解决办法:Integer id = indexDTO.getId();if(id==null || id==0){ //...}原因是,int 基本数据类型不能为null,Integer 包装后的引用数据类型可以为nul
2021-07-27 10:47:49
9897
2
原创 二叉树中第二小的节点
题目:力扣671除了有官方的dfs解法外,由于该树的定义是递归的,所以还有递归解法;分为三种情况来递归查找;class Solution { public int findSecondMinimumValue(TreeNode root) { // 第一种情况:左右子节点都为空,返回-1 if(root.left==null) return -1; // 左右子节点都不为空 // 找到左右子节点的大节点和小节点
2021-07-27 10:30:53
313
原创 差分数组解算法题
这题可用差分数组来解:力扣1893什么是差分数组?假如有个原数组int[] origin = new int[]{1,2,3,4,5,6,7,8};那么这个range数组的差分数组就是origin数组相邻元素的差组成的数组。int n = origin.length;int[] diff = new int[n];for(int i=0; i<n; i++){ if(i==0) diff[i] = origin[i]; diff[i] = origin[i]-orig
2021-07-23 23:16:47
192
原创 树状数组 lowbit 解力扣
这题可用树状数组来解:力扣1893什么是树状数组定义有点小多,参照这篇文章树状数组 数据结构详解与模板,看前面的介绍即可;树状数组干啥的经过巧妙复杂的数据结构,可以以O(lgN)的复杂度获得动态数组的前缀和(不用这个结构的话,动态更新数组,计算前缀和需要O(n)的复杂度),原因参照定义; //树状数组的实现代码,lowbit,update,query是一定要实现的 //new 一个树状数组 int n = 51; int[] tree = new int[n]; //输出i的2
2021-07-23 23:14:16
174
原创 设计模式 --> 建造者模式
什么时候使用:当一类复杂对象的一些内部组件形式是不变的,而真正的组件却各不相同时,创建这类对象可以用建造者模式。与工厂模式的区别:工厂模式,只创建出来一个产品,不关心这个产品的内部细节,构造时通常传产品的参数;建造者模式,也创建一个产品,但是还要制定好这个产品的内部细节,构造时通常传产品内部的参数;一种复杂的实现:public class BuilderTest2 { public static void main(String[] args) { //new
2021-07-23 15:23:50
127
原创 设计模式 --> 工厂模式
什么时候用:对象的创建过程/实例化准备工作很复杂,需要初始化很多参数、查询数据库等。类本身有好多子类,这些类的创建过程在业务中容易发生改变,或者对类的调用容易发生改变。栗子.自主创建需要的产品对象(小米和苹果),达到增加新产品时无需修改其他具体的工厂和具体类的目的。简单工厂模式这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在简单工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。public class FactoryMe
2021-07-23 15:09:51
130
原创 设计模式 --> 单例模式
单例模式:一个类只会有一个实例。懒汉模式延迟加载,在真正要使用的时候才开始实例化。线程安全问题(synchronized)double check 加锁优化编译器(JIT),cpu有可能对指令进行重新排序,导致赋值了初始化未完成的null实例,可以添加volatile关键字进行修饰。(volatile修饰的字段,可以防止指令重排)//懒汉模式class LazySingleton{ private volatile static LazySingleton instance
2021-07-21 20:29:44
277
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人