- 博客(14)
- 收藏
- 关注
原创 如何优雅的使用切面和注解实现权限验证
背景权限验证在我们系统中是一个与业务逻辑无关但是又与业务息息相关的一个功能。如何优雅的在项目中实现权限验证就是本文重点介绍的内容。设想我们开发了一款为中小型企业定制的会员系统。这款系统可以为企业A、企业B等多种企业提供服务。数据库中的表结构往往是这样的(以下只是一个demo,实际情况中字段一定会更多、更复杂):idmemberCardCodeuserNamecard_statu...
2020-02-10 16:53:33
758
2
原创 leetcode第21题:合并两个有序链表
题目描述将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4思路使用2个指针分别遍历每个链表,向后移动val值较小的指针。当某一个指针为null后,直接让链表指向另一个指针即可。代码public List...
2020-02-10 16:49:06
156
原创 数据库中的悲观锁和乐观锁
现在我们简单聊一下数据库中的悲观锁和乐观锁。悲观锁悲观锁正如其名称,比较悲观。总会认为:每当修改数据时,会有其他线程也会同时修改该数据。所以针对这种情况悲观锁的做法是:读取数据之后就加锁(eg: select...for update),这样别的线程读取该数据的时候就需要等待当前线程释放锁,获得到锁的线程才能获得该数据的读写权限。从而保证了并发修改数据错误的问题。但是由于阻塞原因,所以导致吞...
2019-06-10 18:43:17
367
翻译 leetcode第10题:正则表达式匹配
题目描述请实现一个函数用来匹配包括’.‘和’‘的正则表达式。模式中的字符’.‘表示任意一个字符,而’'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"abaca"匹配,但是与"aa.a"和"ab*a"均不匹配思路本题主要使用递归思路,分为以下几种情况讨论:模式串长度为0,只能匹配长度为0的字符串模式...
2019-06-03 15:07:02
379
原创 method.invoke()抛出InvocationTargetException异常
文章目录背景代码自定义异常业务代码异常日志解决方案背景在做单元测试时候,在一个私有方法中抛出了自定义异常。使用method.invoke()之后,使用try{} catch (自定义异常){}进行捕获,竟然没有捕获到,最终定位到原因是:如果方法中直接抛出异常,通过反射进行调用时,会抛出InvocationTargetException异常代码自定义异常public class MyExc...
2019-06-03 13:11:36
5349
原创 数据库不采用隔离级别问题验证
验证时候采用的是MySQL数据库,建表sql语句(含数据)SET NAMES utf8mb4;SET FOREIGN_KEY_CHECKS = 0;-- ------------------------------ Table structure for reader-- ----------------------------DROP TABLE IF EXISTS `re...
2018-08-29 13:22:06
226
转载 数据库隔离级别
参考:https://www.cnblogs.com/fjdingsd/p/5273008.html数据库事务的四大特性ACID原子性(Atomicity)原子性是指事务中的操作要么全部成功,要么失败回滚。一致性(Consistency)一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态。拿转账来说,假设用户...
2018-08-29 13:19:40
188
原创 HashMap源码解读
目录参数解释HashMap扩容机制参数解释 /** * The default initial capacity - MUST be a power of two. * 解释:为了节省空间和让元素均匀分布,所以初始化容量,需要为2的乘方。 */ static final int DEFAULT_INITIAL_CAPACITY = 1 &l...
2018-08-24 18:55:25
207
原创 java传参问题
参考链接:https://www.cnblogs.com/linkstar/p/5951141.htmlpublic class Example { String testString = new String("good"); //1 char[] testCharArray = {'a','b','c'}; //2 public static void main(S...
2018-04-22 17:05:19
285
原创 Leetcode第15题:三数值和
参考的文章,转载请注明出处:https://www.cnblogs.com/ganganloveu/p/3832180.html代码以及注释如下所示:import java.util.*;/** * 先升序排序,然后用第一重for循环确定第一个数字。 然后在第二重循环里,第二、第三个数字分别从两端往中间扫。 如果三个数的sum等于0,得到一组解。 如果三个数的sum小于0,说明需要...
2018-04-19 16:05:14
363
原创 Leetcode第17题:电话号码的字母组合
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].说明:尽管上面的答案是按字典序排列的
2018-04-18 11:39:51
837
原创 Leetcode第83题:删除排序链表中的重复元素
给定一个排序链表,删除所有重复的元素使得每个元素只留下一个。 案例:给定 1->1->2,返回 1->2给定 1->1->2->3->3,返回 1->2->3解题思路:使用2个指针,一个p,一个q; q = p.next;q一直遍历直到q=null或者q.val()!=p.val();就将p的next指向qpublic ListNode del...
2018-04-17 20:17:10
2247
原创 LeetCode第5题:最长回文子串
题目描述:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 长度最长为1000。示例:输入: "babad"输出: "bab"注意: "aba"也是有效答案 示例:输入: "cbbd"输出: "bb"方法1:暴力破解,遍历所有的子串,求子串的复杂度是O(n2),判断回文是O(n),所以整体时间复杂度是O(n3)。在Leetcode超时,所以不能使用。 privat...
2018-04-04 15:01:37
280
转载 JVM为什么有1个Eden区和2个Survivor区
本文转载自:http://blog.youkuaiyun.com/antony9118/article/details/51425581 如需转载自请注明出处,尊重博主的劳动成果。Eden和Survivor的比例是8:1. 首先说如果没有Survivor区会出现什么情况:此时每触发一次Minor GC,就会把Eden区的对象复制到老年代,这样当老年代满了之后会触发Major Gc(通常伴随着Mi...
2018-03-20 20:42:36
4102
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人