自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 redis为什么快(未完)

待补充为什么快采用多路复用io阻塞机制数据结构简单运行在内存中redis底层数据结构String——简单动态字符串set——intset/Hashtablelist——quicklisthash——zipmap/dictzset——ziplist(压缩表)/skiplist(跳跃表)redis数据淘汰机制redis持久化RDBAOFredis事务集群模式主从模式哨兵模式集群模式...

2020-06-16 10:48:12 120

原创 JDK动态代理

采用JDK动态代理的目标类需要实现接口目标类和代理类的接口interface Company{ void findWorker();}目标类class HR implements Company{ @Override public void findWorker(){ System.out.println("招人"); }}定义动态代理类需要实现InvocationHandler接口class DynamicProxy implements InvocationHandler

2020-06-16 10:18:56 108

原创 Spring事务隔离级别和传播机制

五种隔离级别在TransactionDefinition接口中定义ISOLATION_DEFAULT使用后端数据库默认的隔离级别ISOLATION_READ_UNCOMMITTED最低的隔离级别,允许读取尚未提交的数据变更,可能会导致脏读,幻读,或不可重复读。ISOLATION_READ_COMMITTED读取已提交的数据,可以解决脏读问题ISOLATION_REPEATABLE_READ对同一字段的多次读取结果都是一致的,除非数据是被事务自身修改,可以解决脏读和不可重复读问题ISOL

2020-06-16 09:53:40 154

原创 线程池中的worker类(未完)

还没认真看,先记下来这是一个要看的点。线程池中的每一个线程都被封装成一个Worker对象,ThreadPool维护的是一组Worker对象。定义//继承AQS,并实现了Runnable接口 private final class Worker extends AbstractQueuedSynchronizer implements Runnable { /** * This class will never be seria

2020-06-15 23:53:56 523

原创 SpringBoot中线程池的使用

待补充线程池的配置Service层controller层

2020-06-15 23:20:38 184

原创 static关键字

可以修饰变量,方法,代码块,内部类,导入包。随着类的加载而加载,静态变量、静态方法是与类关联,可以通过类直接调用类的静态变量和静态方法,不需要创建对象。在类加载的准备阶段,为静态变量分配内存并且设置初始值(此时是默认初始值,0,null之类的)。分配的这部分内存不会随着创建对象个数的增加而改变。概念上,静态变量所使用的内存都应该在方法区中进行分配,JDK8之后类变量和Class变量一起存放在JAVA堆区。在类加载的初始化阶段,初始化静态变量的值。静态变量的初始化可以在声明处进行初始化,也可以在静态代

2020-06-15 22:14:34 60

原创 final关键字

final用于声明属性、方法和类,分别表示属性不可变、方法不可覆盖、类不可被继承final属性不可变指引用不可变,只能指向初始化时指向的对象。因此被final修饰的变量必须被初始化。初始化:定义时初始化final成员变量可以在初始化块中初始化,但不可以在静态初始化块中初始化静态final成员变量可以在静态初始化块中初始化在类的构造器中初始化,但静态final成员变量不可以在构造方法中初始化。final方法当一个方法被声明为final时,该方法不允许任何子类重写该方法,但子类可以

2020-06-15 22:03:56 218

转载 java内部类

内部类:定义在另一个类中的类内部类可以访问所在外部类的数据外部类不可以被protected,private修饰,但内部类可以,这样可以实现对外隐藏java类是单继承的,使用内部类可以实现多继承,每个内部类可以继承一个类,多个内部类就有多继承内部类的分类静态内部类和非静态内部类区别:静态内部类可以有静态成员,非静态内部类不能有静态成员。静态内部类可以访问外部类的静态变量,不可以访问外部类的非静态变量(这个很容易理解,静态变量加载的时间早于非静态变量)静态内部类的创建不依赖于外部类,而

2020-06-15 21:52:03 61

原创 java作用域

成员变量(方法)的四种作用域public对其他所有类都可见protected用于继承关系,其子类及子类的子类可见,同一包下的其他类可见private私有的,只有当前类具有对该成员变量或方法的访问权限default可以被同一包下的类访问...

2020-06-15 21:02:50 84

原创 latex公式长度超过文本长度

论文提交edasThe gutter between columns is 0.155 inches wide (on page 4), but should be at least 0.2 inches

2020-06-15 12:00:41 1469

原创 leetcode605.种花(java)

题目思路:就是最简单的思路如果i = 0,判断右边是否为0如果i = length-1,判断左边是否为0否则,左右都需要判断。这个题解的代码写的很妙啊if(flowerbed[i] == 0 && (i == 0 || flowerbed[i-1]==0) && (i == flowerbed.length-1 || flowerbed[i+1]==0))具体代码class Solution { public boolean canPlaceFl

2020-06-08 10:47:42 157

原创 leetcode621.任务调度器(java)

题目这道题也挺有意思的。如果题目有提到使用大写字母,或者小写字母表示balabala的,都可以考虑用一个new int[26]的数组来存。class Solution { public int leastInterval(char[] tasks, int n) { int[] map = new int[26]; for(char ch : tasks){ map[ch-'A']++; } Arrays

2020-06-07 11:27:09 121

原创 leetcode31.下一个排序

题目思路从后往前遍历数组,直到找到nums[i] < nums[j],i < j, 那么j到end为降序从j往后遍历,遍历到nums[i] < nums[k],nums[i] >= nums[k+1],交换nums[i]和nums[k]将j到end进行升序排序。具体代码class Solution { public void nextPermutation(int[] nums) { if(nums.length <= 1){

2020-06-07 10:23:11 88

原创 leetcode546.移除盒子(java)

题目一看题目以为和戳气球一个套路,然后难哭了,思路之后补吧具体代码class Solution { public int removeBoxes(int[] boxes) { int dp[][][] = new int[100][100][100]; return calculate(boxes,dp,0,boxes.length-1,0); } public int calculate(int[] boxes,int[][][] dp,in

2020-06-06 22:57:21 228

原创 Token与JWT

用Token形式记录登录态Token是将用户信息编码后通过响应报文传给前端,之后每一次请求,请求报文中都会带有这段编码信息,后端通过解码获得用户信息,这个方法也称为JWT(Json Web Token)JWT由三部分组成Header,通常是一个JSON对象{ "alg": "HS256", "typ": "JWT"}alg属性代表进行加密的签名的算法,默认是HS256type属性代表这个令牌的类别Payload,用于存放实际需要传输的数据,JWT官方规定的字段如下:iss:签

2020-06-04 12:19:21 190

转载 单点登录

单点登录:SSO(Single Sign on)多系统应用群中登录一个系统,便可以在其他所有系统中得到授权而无需再次登录,包括单点登录和单点注销两部分登录需要一个独立的认证中心,只有认证中心可以接受用户的登录名密码等安全信息,其他只接受认证中心的间接授权,不提供登录入口过程用户访问系统1,系统1发现用户没有登录,带上地址跳转到认证中心,认证中心发现没有用户的登录信息,跳转到登录页面。用户进行登录,SSO认证中心校验用户信息,创建用户与SSO认证中心的会话,成为全局会话。SSO认证中心带着令牌

2020-06-04 11:00:55 187

转载 RPC

写在前面的废话:之前问学长在公司做什么,学长说写api,调api,不同的服务可能分布在不同的服务器上。而我:写controller类的方法去调用service类的方法……很长时间的交流都不能在一个次元上,现在逐渐有些明白了,希望还有女娲补天的机会,而不是中途夭折。正式开始啦RPC框架(Remote Procedure Call Protocol)—允许像调用本地服务一样调用远程服务。就是要解决服务跨服务器调用的问题,比如一个应用部署在服务器A上,想要调用部署在服务器B的应用提供的函数。通讯。

2020-06-04 10:07:28 102

原创 leetcode134.加油站(java)

题目具体代码class Solution { public int canCompleteCircuit(int[] gas, int[] cost) { int len = gas.length; for(int i = 0;i < len;i++){ if(gas[i] >= cost[i]){ boolean flag = can(gas,cost,i,0);

2020-06-03 12:02:07 144

原创 面试题04.06.后继者(找出二叉树中指定节点的下一个节点)(java)

题目具体代码/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { public TreeNode inorderSuccessor(TreeNode root, Tre

2020-06-03 11:31:01 229

原创 leetcode226.翻转二叉树(java):递归+迭代

题目思路递归交换具体代码/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { public TreeNode invertTree(TreeNode root) {

2020-06-02 22:48:32 114

原创 leetcode662.二叉树最大宽度(java)

题目思路1.二叉树的层序遍历(队列),在往队列中存值的时候,将节点的val值改掉,比如root.val = 1; if root.left != null root.left.val = 2 * root.val; if root.right != null root.right.val = 2*root.val;2.如果队列不为空,则获取队列长度size,即为该层所有节点,记下第一个节点的值v1,和最后一个节点的值v2,该层宽度为v2-v1+1代码/** * Definition for a

2020-06-02 14:57:46 346

原创 leetcode106/105.从中序与后序(/前序)遍历构造二叉树(java):分治

题目代码/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { public TreeNode buildTree(int[] inorder, int[] postord

2020-06-02 11:35:34 86

原创 leetcode1257.最小公共区域(java)

题目思路:这道题和二叉树最近公共祖先类似代码class Solution { public String findSmallestRegion(List<List<String>> regions, String region1, String region2) { Map<String,String> map = new HashMap<>(); for(List<String> list : r

2020-06-02 10:08:02 242

原创 leetcode208.实现前缀树(java)

题目思路1.因为假设输入时小写字母,共有26种可能,用数组保存,能用数组就别用hashmap。其他之后再补。具体代码class Trie { /** Initialize your data structure here. */ class TrieNode{ private TrieNode[] link; private final int R = 26; private boolean isEnd; publi

2020-06-01 23:03:38 131

原创 leetcode212.单词搜索II(java)

题目回溯+深度优先遍历代码一class Solution { List<String> res = new ArrayList<>(); boolean flag = false; public List<String> findWords(char[][] board, String[] words) { int row = board.length; int col = board[0].length;

2020-06-01 22:22:05 157

原创 leetcode79.单词搜索(java):回溯+深度优先遍历

题目思路1.一个重要的点:找到单词后,结束遍历,返回true。这里可以设置一个全局变量flag,如果深度优先遍历找到这个单词后,flag=true,检测到flag为true后,立刻返回true,不再继续遍历。对应测试用例:board中有多个满足word的路径。[["a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a"

2020-06-01 20:16:43 191

原创 leetcode576.判断一个字符串是否包含另一个字符串的全排列(java)

具体代码public class Main{ public static boolean IsContatined(String s1,String s2){ if(s2.length()<s1.length()){ return false; } //因为全是小写字母,共有26种可能,用数组存储比用map存储方便。 int[] nums1 = new int[26]; int[] num

2020-06-01 16:38:12 1212 1

原创 leetcode980.不同路径(java):回溯深度优先遍历

题目具体代码class Solution { int num; public int uniquePathsIII(int[][] grid) { int row = grid.length; int col = grid[0].length; //记录该位置是否走过 boolean[][] used = new boolean[row][col]; //记录需要遍历的位置 int rest

2020-06-01 16:13:39 186

原创 leetcode529.扫雷游戏(java)

题目具体代码class Solution { int[] dx = {-1,-1,-1,0,0,1,1,1}; int[] dy = {-1,0,1,-1,1,-1,0,1}; public char[][] updateBoard(char[][] board, int[] click) { dfs(board,click[0],click[1]); return board; } public void dfs(char[][

2020-06-01 15:29:22 203

空空如也

空空如也

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

TA关注的人

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