- 博客(35)
- 收藏
- 关注
原创 shiro中实现防御CSRF攻击的token解决方案
首先,代码核心逻辑来自https://blog.csdn.net/qq_26848943/article/details/114023239#comments_18211700其次,我对其进行了修改1.shiroConfig类中加入防御代码如下2. filters包下新建CsrfFilter类说明:1.csrfDomains在配置中配置,可参考链接的原文2.在session中设csrfToken来作为token防御csrf攻击的主要防御手段,3.paths集合是...
2021-09-06 21:10:55 1458
原创 windows自定义屏幕大小,分辨率大小,自定义电脑屏幕分辨率
windows 用于自定义屏幕分辨率大小:桌面新建个txt文件:第一个:full_screen.bat (注意后缀改为bat(删除txt))打开后(记事本方式打开)写如下代码:"C:\Program Files\VMware\VMware\ Tools\VMwareResolutionSet.exe" 0 1 , 1990 1000注意代码中的 1900 和 1000 为修改后大小,即1900 * 1000 ,可以根据自己电脑显示器大小来调节两个值,注意中间有个空格哦!!!!...
2021-07-16 20:41:21 4913 1
原创 2021-IDEA中为新项目设置默认maven仓库配置
2021 如上图所示其他版本如下网页所示https://zhidao.baidu.com/question/1054214689516943099.html
2021-07-15 14:32:18 1922
转载 Cannot connect to the Maven process
maven配置的原因修改settings文件的mirrors <mirrors> <!-- mirror | Specifies a repository mirror site to use instead of a given repository. The repository that | this mirror serves has an ID that matches the mirrorOf element of this mirror
2021-07-07 16:45:53 10247 1
原创 java: 无效的标记: -verbose - bootclasspath
java: 无效的标记: -verbose -bootclasspath问题或者java: 无效的标记: -verbose -某某classpath问题起因:从git上扒拉个项目下来,都准备好了环境,数据库,maven库等,发现出现java: 无效的标记: -verbose -bootclasspath 这个问题,以为是编译器的问题,随便写个类都可以便宜,随后排除编译器问题,然后又采用https://blog.csdn.net/qq_37372007/article/details/846487
2021-06-30 20:58:23 1136 1
原创 有序数组的平方——最短代码
给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。示例 1:输入:nums = [-4,-1,0,3,10]输出:[0,1,9,16,100]解释:平方后,数组变为 [16,1,0,9,100]排序后,数组变为 [0,1,9,16,100]示例 2:输入:nums = [-7,-3,2,3,11]输出:[4,9,9,49,121]提示:1 <= nums.length <= 104-104 <= nums
2021-02-22 20:11:47 122
原创 SpringBoot控制台报HttpMessageNotReadableException
SpringBoot控制台报HttpMessageNotReadableException错误如图最终排查原因:前后端提交的数据出现问题:前端提交的是json字符串,后端写的是接收json格式数据,所以出错,即将红线框内的data,改为JSON.stringify(data)。格式化提交给后端即可。...
2021-02-03 22:58:04 1396
原创 木棒拼图
木棒拼图Java版public class 木棒拼图 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (scanner.hasNextLine()){ int n = Integer.parseInt(scanner.nextLine()); int size = 0;//数组的有效长度
2021-01-25 17:14:18 277
原创 简单blog功能的实现
简单的blog功能的实现:代码:https://github.com/Tofaker/blog-login**1.**主要思路和涉及技术
2020-12-23 10:39:08 153
原创 topk问题之oj处理细节
找出n个数里的最小的k个数1.处理输入 :循环输入、分为数组 :***char转为int :int n = Integer.parseInt(split[i]);***2.修改优先队列为大根堆存放k个数,遍历数组存进去k个最小的,然后输出public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (scanner.hasNextLi...
2020-12-01 20:49:53 128
原创 最大公约数的简单算法
辗转相除法最小公倍数是两个数字相乘除以最大公约数public static void main(String[] args){ Scanner scanner = new Scanner(System.in); int a = scanner.nextInt(); int b = scanner.nextInt(); int c = a*b; int tmp; if (a < b){
2020-12-01 20:47:00 95
原创 约瑟夫环节点解法
约瑟夫环节点的解法创建一个环形的节点,存放所有的数据,//代码问题描述:N个人围成一圈,从第一个人开始报数,报到m的人出圈,剩下的人继续从1开始报数,报到m的人出圈;如此往复,直到所有人出圈。(模拟此过程,输出出圈的人的序号)public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); Node
2020-12-01 09:07:56 142
原创 最多可以放的蛋糕数-欧几里得距离
标题:不要二 | 时间限制:1秒 | 内存限制:32768K二货小易有一个W*H的网格盒子,网格的行编号为0H-1,网格的列编号为0W-1。每个格子至多可以放一 块蛋糕,任意两块蛋糕的欧几里得距离不能等于2。对于两个格子坐标(x1,y1),(x2,y2)的欧几里得距离为:( (x1-x2) * (x1-x2) +(y1-y2) * (y1-y2) ) 的算术平方根,小易想知道最多可以放多少块蛋糕在网格盒子里。输入描述:每组数组包含网格长宽W,H,用空格分割.(1 ≤ W、H ≤ 1000)输
2020-11-29 23:42:11 199
原创 设计一个车辆违章系统(简单关系)
设计一个车辆违章系统车辆违章系统,包含用户表,车辆表,违章信息表。违章信息表中包含用户和车辆的违章信息create table if not exists user (username varchar(20) priority key,usercarnum int(20),);create table if not exists car(carnum int priority key,vioinformation vachar(20))create table if not exists
2020-11-18 23:46:21 699
原创 hashset 处理 第一次出现的重复的数字
//第一次出现的重复的数字思路: 循环 hashset存放key,若hashset内有输出key并returnpublic static void main(String[] args) { ArrayList<Integer> list = new ArrayList<>(); Random random = new Random(); for (int i = 0; i < 10_0000; i++) { int num = r
2020-11-17 23:16:18 132
原创 hashmap 统计重复的数字
1.创建ArrayList存放100000个随机数2.建立hashmap存放数字,key重复 value+14.输出map值(重复的key和重复的次数)重点:输出map内的键值对for (Map.Entry<Integer,Integer> entry :map.entrySet())public static void main(String[] args) { HashMap<Integer,Integer> map = new HashMap<>
2020-11-17 23:01:46 870 2
原创 哈希set处理坏键盘事件
旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及实际被输入的文字,请你列出肯定坏掉的那些键。思路:1.转换大小写,2.建立哈希set 用来存放已经输出的,3.遍历输入的 不存在则放入哈希集合2,4.输出哈希集合2public static void main(String[] args) {func(“7_This_is_a_test”,"_hs_s_a_es");}private static void func(String st
2020-11-17 22:46:48 220
原创 内部类在建立二叉树中的使用
使用内部类建立二叉搜索树public class BInarySearchTree {//内部类static class Node{public int data;public Node left;public Node right; public Node(int data) { this.data = data; }}static Node root = null;public static void put(int key){ Node nod
2020-11-16 23:45:12 139
原创 比较器和equals的重写
Comparable也在类的内部重写,重写equals在 类的内部重写 ,在外部调用class Card implements Comparable{public int rank; // 数值public String suit; // 花色public Card(int rank, String suit) {this.rank = rank;this.suit = suit;}/** * 返回值等于0 相等 * 大于0 * 小于0 */@Override //重写com
2020-11-16 23:44:21 140
原创 TopK问题的简单解法
采用比较器 修改优先级队列的比较方式形成k个元素大根堆 每次添加比堆顶元素小的,最后返回大根堆(k个最小值元素)class TOPK {public static void topK(int[] array, int k) {//取前5个最小的元素PriorityQueue maxHeap = new PriorityQueue<>(new Comparator() {@Overridepublic int compare(Integer o1, Integer o2) {r
2020-11-16 23:42:32 72
原创 快速排序的两种常见优化法
优化1:low 到 high之间的数据都小于某个值的时候,采用直接插入排序优化2:三数取中法//快速排序的两种优化public static void quick(int[] array,int low,int high){if (low >= high) return;//1、优化 当 low high 之间的数据个数 小于 某个值的时候 采用直接插入排序if (high-low+1 <= 100){ //优化法 1insertSort2(array,low,h
2020-11-16 23:41:34 112
原创 比较器的使用2
可以传入比较器规则来修改优先队列的排序标准:优先队列放的不是对象(包括了多个属性)写法1:public class TestDemo4 {public static void main(String[] args) {AgeComp ageComp = new AgeComp();PriorityQueue priorityQueue = new PriorityQueue<>(ageComp);priorityQueue.offer(new Animal(“huahua”,12)
2020-11-16 23:40:37 67
原创 比较器的使用小结1
取前k个最小元素:建立大根堆(利用比较器修改优先队列规则)大根堆中,每次放入的元素小于堆顶,则堆弹出堆顶,并加入新元素大根堆最后存储的就是前k个最小元素。public class TopK {public static void topK(int[] array,int k){//取前k个最小的元素PriorityQueue maxHeap = new PriorityQueue<>(new Comparator() {@Overridepublic int compare(In
2020-11-16 23:39:49 177
原创 剩下最后的石头
有一堆石头,每块石头的重量都是正整数。每一回合,从中选出两块 最重的 石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。那么粉碎的可能结果如下:如果 x == y,那么两块石头都会被完全粉碎;如果 x != y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新重量为 y-x。最后,最多只会剩下一块石头。返回此石头的重量。如果没有石头剩下,就返回 0。链接:
2020-11-16 23:38:34 113
原创 比较两个版本号 version1 和 version2
比较两个版本号 version1 和 version2。如果 version1 > version2 返回 1,如果 version1 < version2 返回 -1, 除此之外返回 0。你可以假设版本字符串非空,并且只包含数字和 . 字符。. 字符不代表小数点,而是用于分隔数字序列。例如,2.5 不是“两个半”,也不是“差一半到三”,而是第二版中的第五个小版本。你可以假设版本号的每一
2020-11-16 23:37:24 6933
原创 找到k个最接近x的元素
给定一个排序好的数组,两个整数 k 和 x,从数组中找到最靠近 x(两数之差最小)的 k 个数。返回的结果必须要是按升序排好的。如果有两个数与 x 的差值一样,优先选择数值较小的那个数。链接:https://leetcode-cn.com/problems/find-k-closest-elements思路 : 建立大根堆(修改比较器规则:与x的差值的大根堆)每次放入元素进行比较:与x的差值的结果进行比较小于则 堆poll 堆offer(新元素) 最后大根堆放入的是差值最小的k个元素,再转为小根堆
2020-11-16 23:36:49 404
原创 车队到达问题
N 辆车沿着一条车道驶向位于 target 英里之外的共同目的地。每辆车 i 以恒定的速度 speed[i] (英里/小时),从初始位置 position[i] (英里) 沿车道驶向目的地。一辆车永远不会超过前面的另一辆车,但它可以追上去,并与前车以相同的速度紧接着行驶。此时,我们会忽略这两辆车之间的距离,也就是说,它们被假定处于相同的位置。车队 是一些由行驶在相同位置、具有相同速度的车组成的非空集
2020-11-16 16:51:30 102
原创 股票价格跨跨度
股票价格跨度编写一个 StockSpanner 类,它收集某些股票的每日报价,并返回该股票当日价格的跨度。今天股票价格的跨度被定义为股票价格小于或等于今天价格的最大连续日数(从今天开始往回数,包括今天)。例如,如果未来7天股票的价格是 [100, 80, 60, 70, 60, 75, 85],那么股票跨度将是 [1, 1, 1, 2, 2, 4, 6]。链接:https://leetcode-cn.com/problems/online-stock-span思路: 建立一个单调栈 ,每
2020-11-05 21:23:29 174
原创 左右括号对应
给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。建立一个新栈,遍历字符串的字符,进行比较 核心:遇到( 压入 ) 遇到) 则弹出栈顶数据 进行比较 相同为对称,不同为不对称public static boolean isValid(String s) { Stack<Character> sta
2020-11-04 21:11:50 900
原创 队列实现栈栈
队列实现栈使用队列实现栈的下列操作:push(x) – 元素 x 入栈pop() – 移除栈顶元素top() – 获取栈顶元素empty() – 返回栈是否为空思路:双队列实现:压入建两个空列核心:(相当于翻转)给一个值,压入a,再把b(尾删)的值压入(a头插)交换 a b输出b列 b实际值(存储顺序) 与输入的相反 输入 1 2 3 4 b: 1234压出:队列输出 尾删 输出: 4 3 2 1class MyStack1{private Queue a;p
2020-11-04 21:10:44 55
转载 构造方法与初始化块执行顺序
构造方法与初始化块执行顺序public class demo1 extends B {public demo1() {System.out.println(“子类构造方法”);}static {System.out.println(“子类静态初始化块”);}{System.out.println(“子类初始化块”);}public static void main(String[] args) {System.out.println("—new对象之前为类加载-----");new
2020-11-01 14:58:19 111
原创 String 的split 切分 | 符的用法
String 的split 切分 | 符的用法| 切分符重点左侧 | 右侧 :在切分时以左侧和右侧的值进行切分(会删除值(被赋值的数组内等于null)),若左侧或右侧无字符串,则有使全部切分的作用。一般第一个 | 左侧放置空格,右侧放切 的值, 代表以右侧的值切开而不全部切开(可不看:左侧空格,字符串里没有空格,所以只是以右侧的值进行切分)String str = “java30-split#bit”;String[] ret = str.split(“c|-|#”);//自认为://1
2020-10-27 16:14:43 953
原创 双向链表删除指定key
双向链表删除指定key思路:新建Node cur 为表头,进行遍历,若cur.data=key,则删除,删除分为四种情况:1、只有一个节点,2、删除的是头结点3、删除的是尾结点4、删除的是任意结点核心如上,然后就是外面加一个遍历, 代码如下ps:如果是删除链表所有的key,则去掉倒数第四行(倒数第二个)的return。...
2020-10-23 16:55:43 246
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人