- 博客(25)
- 收藏
- 关注
原创 leetcode-easy-13. 罗马数字转整数精彩题解
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1 。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。通常情
2022-03-17 14:12:07
122
原创 Java根据自定义注解对接口权限控制
Java根据自定义注解对接口权限控制一、前言最近公司要求对项目的权限控制颗粒度到接口层面,原计划按照swagger注解扫描所有controller层url,并按层级维护树级结构资源,然后持久层到数据库表。由于swagger会扫出所有接口切有一些无用url,最终决定自定义注解进行进行配置及扫描下面将注解以及表结构放如下:二、表结构与代码实例create table res( id bigint not null
2022-03-12 16:01:19
2370
原创 排序算法学习-插入、希尔、归并
希尔排序其实是插入排序的优化,为了优化时间复杂度所进行的分断处理,在中小型数据可以使用希尔排序package com.zhouyou.sort;public class InsertSoort { public static void main(String[] args) { int[] data = {8,6,4,9,0,1,22}; // 希尔排序只是在插入最外层多一层循环,进行分段处理 for (int n = data.length.
2020-12-01 16:56:06
164
3
原创 数据结构与算法-基础数据结构:栈结构学习与练习
一、概述栈(stack):是线性表的一种,限制仅在线性表的一端进行插入和删除操作。其中允许插入和删除的一端称为栈顶(top),不允许插入和删除的一端称为栈底(bottom)。二、 顺序存储栈的基本操作以及算法实现基本操作:初始化、判断是否为空、求栈深、读取栈顶元素、出栈/入栈、栈置空等。抽象出栈的基本操作:先声明一个接口package com.zhouyou.stack;public interface MyStack<Item> { MyStack<Item&
2020-11-11 10:39:42
128
原创 数据结构与算法-基础数据结构:链表学习
package com.zhouyou.list;public class MyLinkedList { private ListNode head; private int size = 0; public void insertHead(int data){ //插入链表的头部 data就是插入的数据 ListNode node = new ListNode(data); //如果原来就有数据呢? node.
2020-11-10 17:23:27
129
1
原创 leetcode-递归学习:斐波那契数列
在学习多线程刷题的过程中使用CountDownLatch进行标志按序执行,其中因为在 执行countDown方法在run方法前面导致 结果有时候为213 百思不得其解,猜测是runnable在调用run方法的时候会调用cpu进行上下文切换,开始竞争资源,在此之前还未进行真正的线程安全问题。以此记录,如有错误还望指正。static class Foo { private CountDownLatch one; private CountDownLatch two; ..
2020-11-10 11:00:39
161
1
原创 数据结构与算法-基础数据结构:队列实现
在学习队列的实现过程中,跟着教程自己手写了队列的实现,理解队列的先进先出原理。以及略微复杂的循环队列形成的一个闭环,略微吃力,还需努力,详细说明在注释package com.zhouyou.queue;// 普通队列的实现public class ArrayQueue { private int head; // 头 private int tail; // 尾 private int[] date; // 头 private int size; // chang.
2020-11-09 18:10:13
122
原创 数据结构与算法-基础数据结构:数组练习
数据结构与算法-数组练习 给你一个包含全国人民的年龄的数据文本 约14亿 现在需要统计有多少人 不能使用现有的器,比如map 考察使用数组达成目的package com.zhouyou;import java.io.*;import java.util.Random;public class data { public static void main(String[] args) throws Exception { /**
2020-10-16 18:11:34
333
原创 Mysql -MVCC多版本并发控制机制
MVCC多版本并发控制机制什么是MVCCMVCC的作用MVCC还涉及到RR、RC等相关问题什么是MVCCMVCC,全称Multi-Version Concurrency Control,即多版本并发控制。MVCC是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问,在编程语言中实现事务内存。MVCC的作用Mysql在可重复读隔离级别下如何保证事务较高的隔离性,同样的sql查询语句在一个事务里多次执行查询结果相同,就算其它事务对数据有修改也不会影响当前事务sql语句的查询结果。这
2020-10-14 11:11:57
322
原创 学习设计模式之工厂模式
抽象工厂模式优点十分明显,缺陷也十分明显,每次增加产品族时,所有超级工厂下的类都要新增实现贴上代码:package com.zhouyou.factory.abstract1;public interface ProductFactory { PhoneProduct phoneProduct(); RouteProduct routeProduct(...
2020-04-16 23:39:15
113
原创 深入理解单例模式
彻底理解单例模式单例模式是设计模式中最常见的一种,也是大家最熟悉的一种,可谓是信手沾来,最近在学习中学习到了以往未曾考虑到的东西,就此记录,以免忘却。饿汉式懒汉式以及引发的问题思考及解决单例模式是设计模式中最常见的一种,也是大家最熟悉的一种,可谓是信手沾来,最近在学习中学习到了以往未曾考虑到的东西,就此记录,以免忘却。饿汉式话吧多说,直接上代码package com.zhouyou;/...
2020-04-15 23:48:49
144
原创 SpringBoot整合Shiro框架,遇到的反射以及密码加盐问题踩坑
SpringBoot整合Shiro框架,遇到的反射以及密码加盐问题踩坑记录一下1.反射获取对象时,报NullPointerException空指针异常2.shiro登录校验密码以及加盐处理:记录一下1.反射获取对象时,报NullPointerException空指针异常在使用反射获取时,使用newInstance 方法获取对象时,报空指针,百度诸多方法未寻得一正确方法,后来在各种尝试便览下发...
2020-04-09 14:26:54
241
原创 RabbitMQ队列及幂等概念
消息如何保障100%的投递成功?BAT/TMD 互联网大厂的解决方案:1.消息落库,对消息状态进行打标在发送消息的时候,需要将消息持久化到数据库中,并给这个消息设置一个状态(未发送、发送中、到达)。当消息状态发生了变化,需要对消息做一个变更。针对没有到达的消息做一个轮训操作,重新发送。对轮训次数也需要做一个限制3-5次。确保消息能够成功的发送.消息的延迟投递,做二次确认,回调检...
2019-09-06 17:51:12
141
原创 javalist进行内存分页显示数据到页面
由于项目某个页面从多方来源展示,无法做到查询数据库并进行分页,且数据量不大,只好用内存分页,奈何天资愚钝,网上找了半天加以改良成适合我的,才总算做好了分页,但是目前的坎又变成了筛选,暂不加以记录先贴上分页模型public class Page { private Integer currentPage;//当前页 private int pageSize;...
2019-04-19 13:02:28
1515
转载 java8 快速实现List转map 、分组、过滤等操作
利用java8新特性,可以用简洁高效的代码来实现一些数据处理。定义1个Apple对象:public class Apple {private Integer id;private String name;private BigDecimal money;private Integer num;public Apple(Integer id, String name, BigDecim...
2019-04-18 23:42:08
122
原创 关于页面输入字符串、转义 java.util.regex.PatternSyntaxException Dangling meta character ‘*’ near index 0等异常
近期甲方验收项目,各种手段测试层出不穷,用%&%&%&等特殊字符串在所有输入的地方进行验证,结果就会使页面崩了或者抛出字符串异常,由于正则一直百度,并且所有页面都需要修复感觉很恶心,诸多测试后终于找到适合我且可用的,贴上代码记录*自定义工具类对关键部位进行检测public static String PASSWORD_REGEX = "[\\S]{8,}"; publ...
2019-04-17 10:26:33
359
原创 Java连接MongoDB管道查询慢 记录解决过程
项目数据列表上万条后用聚合查询aggregat已经无法达到快速查询的效果,管道操作因为unwind和group也会过滤掉索引,连表查询对索引也会失效,经验不足的我苦思许久都找不到解决办法,贴一段代码如下:private List<AggregationOperation> getBaseAggregateOperation() { List<Aggregatio...
2019-04-12 16:59:43
1597
原创 记一次java空指针异常:java.lang.NullPointException引发的问题
记一次java空指针异常:java.lang.NullPointException引发的问题改bug的日子中,突然项目崩了,本菜鸡什么都没动,感到十分懵逼,然后debug调试调到天荒地老时,发现到一个地方就开始抛空指针,如下图由于本菜鸡想的不多,思维不发散,于是对比数据库字段一个个比较,在null的地方都加了判断,还是无用,最后断点显示对象是空的,于是乎对对象进行了判断,才终于从归于好,在此...
2019-03-20 13:31:26
648
原创 SpringMvc、Mybatis工作流程图
1.SpringMvc工作流程图2.常用SpringMVC 注解:@RequestBody:接收http请求的json数据,并转换为java对象@ResponseBody:将controller方法返回对象转换为json响应给客户@RequestMapping:请求url映射ps: springmvc.xml 中通过开启 mvc:annotation-driven实现注解处理器和适配器...
2019-01-18 21:42:08
867
原创 Java爬虫框架Webmagic
webmagic是一个开源的Java爬虫框架,目标是简化爬虫的开发流程,让开发者专注于逻辑功能的开发。webmagic的核心非常简单,但是覆盖爬虫的整个流程,也是很好的学习爬虫开发的材料。webmagic的主要特色:完全模块化的设计,强大的可扩展性。核心简单但是涵盖爬虫的全部流程,灵活而强大,也是学习爬虫入门的好材料。提供丰富的抽取页面API。无配置,但是可通过POJO+注解形式实...
2019-01-16 16:59:59
804
原创 Java面试总结记录
**面试总结**项目:基础:项目: * 分布式事务的解决办法: * 数据库优化之索引 * 数据库切片: * sorl基础:1. 常见的设计模式有哪些:单例模式,工厂模式,装饰者模式等; * 单例模式 * 饿汉式: * public class Singleton{ * // 直接创建对象 * public static Singleton instanc...
2018-12-26 16:23:26
116
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人