自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 字符串排列

字符串排列class Solution { List<String> res = new LinkedList<>(); char[] c; public String[] permutation(String s) { c = s.toCharArray(); dfs(0); return res.toArray(new String[res.size()]); } void dfs(int

2021-02-28 08:13:42 79

原创 x的平方根(二分查找实现)

x的平方根(二分查找实现)class Solution { public int mySqrt(int x) { int l = 0, r = x, ans = -1; while (l <= r) { int mid = (l + r)/ 2; if ((long) mid * mid <= x) { ans = mid; l = mid +

2021-02-28 00:10:06 106

原创 数组中未出现的最小正整数

数组中未出现的最小正整数import java.util.*;public class Solution { /** * return the min number * @param arr int整型一维数组 the array * @return int整型 */ public int minNumberdisappered (int[] arr) { // write code here int n = a

2021-02-27 23:45:43 82

原创 归并排序

归并排序public class Main { public static void main(String[] args) { int[] arr = {11,44,23,67,88,65,34,48,9,12}; int[] tmp = new int[arr.length]; //新建一个临时数组存放 mergeSort(arr,0,arr.length-1,tmp); for(int i=0;i<arr.length;i++){ System.out.pri

2021-02-27 23:25:54 81

原创 合并K个升序链表

合并K个升序链表class Solution { public ListNode mergeKLists(ListNode[] lists) { return merge(lists, 0, lists.length - 1); } public ListNode merge(ListNode[] lists, int l, int r) { if (l == r) { return lists[l]; }

2021-02-27 23:24:44 77

原创 LFU

LFUpackage com.special;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import com.node.LruNode;import java.util.Collections;public class LFU { public int capcity; public Map<Integer, Integer> map = new HashMap&lt

2021-02-27 20:55:40 99

原创 合并两个无序链表为一个有序链表

合并两个无序链表为一个有序链表排序链表package com.LianBiao;import com.node.LinkNode;public class SortLianBiao { public static void main(String[] args) { LinkNode node = construct(); node = sortLianBiaoMethod(node); printList(node); } //插入排序 public static Link

2021-02-27 19:33:27 1467

原创 消息队列整理

一、消息队列1.mq的选择a. rabbitmq和kafka都支持高可用,持久化,但是kafka吞吐量性能更高一些,一般用于日志采集和流式计算,支持10万级别的吞吐量,rocketmq和rabbitmq支持万级。2.rabbitmqa.rabbitmq如何保证高可用?rabbitmq支持三种模式搭建,一是单机模式,生产环境不常用。二是普通集群模式,这种情况创建队列只会在一个节点上,其他的rabbitmq实例会同步这个queue的元数据(队里所在的位置),如果消费者连接队列所在的mq实例宕机了,则服

2021-02-27 00:01:36 153

原创 计算机网络

计算机网络TCP三次握手1.为什么要三次握手两次不行吗?主要是避免客户端发送请求如果得不到服务器端相应会重发请求,服务器段建立链接,此时如果失效请求又到达服务器段,服务器重新建立好链接,TCP链接进入established状态,那么服务器的资源就会被浪费。三次握手建立链接,服务器发送syn的作用是:因为客户端发送的 syn 可能过了好久才到达服务端,而此时客户端超时重传的 SYN 已 经到达服务端,那么后来的 SYN 就是无效的,如果不发第二个 syn 查询客户端是否有效的 话,服务端就会监听这

2021-02-24 23:36:02 245

原创 Redis基础知识

Redis基础知识Redis主从复制https://zhuanlan.zhihu.com/p/151740247,这个网址讲的很好。全量复制Redis通过psync命令进行全量复制的过程如下:(1)从节点判断无法进行部分复制,向主节点发送全量复制的请求;或从节点发送部分复制的请求,但主节点判断无法进行部分复制;具体判断过程需要在讲述了部分复制原理后再介绍。(2)主节点收到全量复制的命令后,执行bgsave,在后台生成RDB文件,并使用一个缓冲区(称为复制缓冲区)记录从现在开始执行的所有写命令(

2021-02-22 16:16:56 133

原创 Java并发编程

Java并发编程

2021-02-20 23:23:09 179

原创 Java单例模式

Java单例模式饿汉模式//饿汉模式public class Single { private static Single instance = new Single(); private Single(){ } private static Single getInstance(){ return instance; }}懒汉模式//懒汉模式public class SingleV2 { private static Sing

2021-02-19 13:56:39 77

原创 Java基础整理

Java集合ConcurrentHashMapjdk1.7采用的是segment方法,初始化容量为16,每次插入entry时,需要先hash定位segment,在segment的table里定位索引,在插入数据,加锁力度是segment。jdk1.8采用node+cas+synchronized方法,实现并发线程安全,4.如果没有hash冲突,直接通过CAS将数据放置到tab中,如果发生冲突了,则通过synchronized对node上锁。 /** Implementation for

2021-02-19 11:44:21 168

转载 SpringBean的生命周期

SpringBean的生命周期https://www.jianshu.com/p/1dec08d290c1其中BeanPostProcessor的初始化有些没看懂。注意(理解初始化和实例化不是一回事,初始化值得不是调用累的构造方法,实例化才是通过反射调用类的构造方法需要分开)。基本顺序如下:1.调用实例化处理器的前置方法。2.实例化类对象。3.调用实例化处理器的后置方法。4.进行属性赋值。5. 调用BeanFactoryAware,BeanNameAware,BeanClassLoaderA

2021-02-18 11:14:36 86

原创 SpringMVC工作流程

SpringMVC启动过程1、用户发送请求至前端控制器DispatcherServlet2、DispatcherServlet收到请求调用HandlerMapping处理器映射器查找Handler。3、处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。4、DispatcherServlet通过HandlerAdapter处理器适配器调用处理器5、HandlerAdapter调用处理器Handler6、Handle

2021-02-17 21:08:00 113

原创 镜像二叉树

镜像二叉树题目:注意不是对称二叉树,是镜像二叉树 public TreeNode mirrorTree(TreeNode root) { if(root==null){ return root; } mirrorTree(root.left); mirrorTree(root.right); TreeNode temp = root.left; root.left = root.rig

2021-02-15 16:07:09 112

原创 剪绳子

剪绳子贪心算法: https://leetcode-cn.com/problems/jian-sheng-zi-ii-lcof/solution/javatan-xin-si-lu-jiang-jie-by-henrylee4/这篇有详细解释public int cuttingRope(int n) { if(n == 2) { return 1; } if(n == 3){ return 2;

2021-02-15 14:33:02 77

原创 从头到尾打印链表

从头到尾打印链表方法:递归法public int[] reversePrint(ListNode head) { ArrayList<Integer> array = new ArrayList<Integer>(); diGui(head, array); int[] result = new int[array.size()]; for(int i=0;i<result.length;i++){

2021-02-14 14:11:59 65

原创 数组中的重复数字

数组中的重复数字思路:原地置换public int findRepeatNumber(int[] nums) { int temp; for(int i=0;i<nums.length;i++){ //继续判断 while (nums[i]!=i){ //说明重复了 if(nums[i]==nums[nums[i]]){

2021-02-14 13:58:45 64

原创 岛屿个数

题目:求岛屿数量dfs标记位grid[r][[c] = 0; 告诉已经走过,是否需要重置标志位,需要根据dfs是否需要走回头路来判断。void dfs(char[][] grid, int r, int c) { int nr = grid.length; int nc = grid[0].length; if (r < 0 || c < 0 || r >= nr || c >= nc || grid[r][c] == '0')

2021-02-14 13:56:47 79

原创 最大正方形

最大正方形题目:求一个二维矩阵中都为1构成的正方形的最大面积。public int maximalSquare(char[][] matrix) { int maxSide = 0; if (matrix == null || matrix.length == 0 || matrix[0].length == 0) { return maxSide; } int rows = matrix.length, colum

2021-02-13 15:36:32 66

原创 最长无重复子串长度

题目:最长无重复子串长度思路:利用滑动窗口方法public int lengthOfLongestSubstring(String s) { if (s.length()==0) return 0; HashMap<Character, Integer> map = new HashMap<Character, Integer>(); int max = 0; int left = 0; for(in

2021-02-12 21:52:15 99 1

原创 子数组的最大累加和

子数组的最大累加和public static int subArrayMaxSum(int[] array) { int maxsum=Integer.MIN_VALUE, sum=0; for(int i=0;i<array.length;i++) { //sum小于0不在相加直接赋值为,但前索引值。 if(sum<0) { sum = array[i]; }else { sum = sum+array[i]; } maxsum =

2021-02-12 21:49:33 79

原创 用两个栈实现队列

题目:用两个栈做队列,一个入队,一个出队,出队时,先判断有没有数据,没有数据要先将,入队元素取出,一个个推入栈内。public class Solution { Stack<Integer> stack1 = new Stack<Integer>(); Stack<Integer> stack2 = new Stack<Integer>(); public void push(int node) { stack1.p

2021-02-12 15:53:22 49

原创 环形链表

环形链表思路: 利用快慢指针,快慢指针走的时间相等,可列出公式(X+Y)= (2Y+X+Z)/2, X=Z。所以可利用头节点和快慢指针碰撞节点,一起向后移动,相等时,则得到环的入口节点。文章目录环形链表前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pand

2021-02-10 22:07:22 199 1

原创 Mysql基础知识

no-force表示事务在committed之后可以不立即持久化到磁盘, 这样可以缓存很多的更新批量持久化到磁盘,这样可以降低磁盘操作次数(提升顺序写),但是如果committed之后发生crash,那么此时已经committed的事务数据将会丢失(因为还没有持久化到磁盘),因此系统需要记录redo log,在系统重启时候进行前滚(roll-forward)操作。它的关键点就是先写日志,再写磁盘,redo log 是InnoDB 引擎特有的,从开头写到末尾又回开头循环写,有crash-safe能力。....

2021-02-10 09:57:31 269 1

原创 Springboot启动过程

Springboot启动过程1.调用SpringApplication的Run方法2.初始化SpringApplication时,实例化,上线文初始化器,和监听器jar包的spring.factories下的善想问找到jar包下的ApplicationContextInitializer实现类和ApplicationListener实现类,并实例化。3.初始化后开始运行run方法public ConfigurableApplicationContext run(String... args)

2021-02-01 14:11:11 290

原创 SpringBoot注解简单理解

@configuration@component区别https://www.cnblogs.com/fnlingnzb-learner/p/10762905.html@Configuration 注解本质上还是 @Component,因此 context:component-scan/ 或者 @ComponentScan 都能处理@Configuration 注解的类。https://www.cnblogs.com/fnlingnzb-learner/p/10762905.htmlhttps:/

2021-02-01 14:09:43 70

空空如也

空空如也

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

TA关注的人

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