自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 单例设计模式

模式定义保证一个类只有一个实例,并且提供一个全局访问点场景重量级的对象,不需要多个实例,如线程池,数据库连接池。结构提供了一个私有的属性提供了一个私有的构造函数提供了一个全局访问点具体实现懒汉模式延迟加载,只有在真正使用的时候,才开始实例化。类似于懒加载线程安全问题double check 加锁优化编译器,CPU有可能对指令进行重排序,导致使用到尚未初始化的实例,可以通过添加volatile关键字进行修饰,对于volatile修饰的字段,可以防止指令重排例子单线程publ

2020-05-29 23:54:40 218 1

原创 个人记录的零碎知识点

1、PUT和POSTPUT和POS都有更改指定URI的语义.但PUT被定义为idempotent的方法,POST则不是.idempotent的方法:如果一个方法重复执行多次,产生的效果是一样的,那就是idempotent的。也就是说:PUT请求:如果两个请求相同,后一个请求会把第一个请求覆盖掉。(所以PUT用来改资源)Post请求:后一个请求不会把第一个请求覆盖掉。(所以Post用来增资源)2、get和post1、GET参数通过URL传递,POST放在Request body中。2、GET请求

2020-05-29 18:13:34 226

原创 链表中倒数第k个节点

输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/lian-biao-zhong-dao-shu-di-kge-jie-dian-lcof示例:给定一个链表: 1->2->3->4->5, 和

2020-05-26 10:29:57 177

原创 二叉树中和为某一值的路径

输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ / \ 7 2 5 1来源:力扣(LeetCode)链接:https://leetcode

2020-05-25 16:11:39 151

原创 数组中的第K个最大元素

在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例 2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4说明:你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/kth-largest-element-in-a

2020-05-25 15:36:36 121

原创 操作系统相关知识

什么是操作系统操作系统是运行在计算机上最重要的一种软件,它管理计算机的资源和进程以及所有的硬件和软件。它为计算机硬件和软件提供了一种中间层。通常情况下,计算机上会运行着许多应用程序,它们都需要对内存和CPU进行交互,操作系统的目的就是为了保证这些访问和交互能够准确无误的进行。操作系统的主要目的是什么管理计算机资源提供一种图形界面,它提供了用户和计算机之间的桥梁为其他软件提供服务,操作系统与软件进行交互,以便为其分配进行所需的任何必要资源什么是线程,线程和进程的区别进程是正在运行的程序的实例,

2020-05-23 11:37:46 232

原创 ReentrantLock底层相关原理笔记

synchronized 重量级的锁 会去调用操作系统的函数(1.6) JVM级别(1.7)阻塞操作 就是 让出CPUwait(完成线程通信)和notifyall关键字一起使用轻量级锁:底层调用Java代码(jdk)重量级锁:底层调用os的函数(1.6之前)整个AQS队列中的队头 Thread永远为null(空)持有锁的线程不在这个队列当中。交替执行:速度快 没有堵塞 没有队列的产生 jdk级别单个线程–交替执行它其实和队列无关–jdk级别解决同步问题ReentrantLock 和

2020-05-18 14:44:06 691

原创 560. 和为K的子数组

给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。示例 1 :输入:nums = [1,1,1], k = 2输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。说明 :数组的长度为 [1, 20,000]。数组中元素的范围是 [-1000, 1000] ,且整数 k 的范围是 [-1e7, 1e7]。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/subarray-sum-equals-kcl

2020-05-15 23:20:11 150

原创 JMM与volatile关键字

Java线程内存模型跟CPU缓存模型类似,是基于CPU缓存模型来建立的,Java的线程内存模型是标准化的,屏蔽了底层不同计算机的区别。JMM数据原子操作read(读取):从主内存读取数据load(载入):将主内存读取到的数据写入工作内存中user(使用):从工作内存读取数据来计算assign(赋值):将计算好的值重新赋值到工作内存中store(存储):将工作内存数据写入主内存write(写入):将store过去的变量值赋值给主内存中的变量lock(锁定):将主内存变量加锁,标识为线程独占

2020-05-15 21:40:28 200

原创 1091. 二进制矩阵中的最短路径

在一个 N × N 的方形网格中,每个单元格有两种状态:空(0)或者阻塞(1)。一条从左上角到右下角、长度为 k 的畅通路径,由满足下述条件的单元格 C_1, C_2, …, C_k 组成:相邻单元格 C_i 和 C_{i+1} 在八个方向之一上连通(此时,C_i 和 C_{i+1} 不同且共享边或角)C_1 位于 (0, 0)(即,值为 grid[0][0])C_k 位于 (N-1, N-1)(即,值为 grid[N-1][N-1])如果 C_i 位于 (r, c),则 grid[r][c] 为

2020-05-10 15:02:49 164

原创 有效的数独

判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。上图是一个部分填充的有效的数独。数独部分空格内已填入了数字,空白格用 ‘.’ 表示。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/valid-sudoku示例 1:输入:[ ["5","3",".",".",

2020-05-09 15:36:42 127

原创 N皇后

n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。上图为 8 皇后问题的一种解法。给定一个整数 n,返回 n 皇后不同的解决方案的数量。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/n-queens-ii示例:输入: 4输出: 2解释: 4 皇后问题存在如下两个不同的解法。[ [".Q..", // 解法 1 "...Q", "Q...", "..Q."], ["..

2020-05-09 15:34:48 122

原创 矩阵中的路径

静态变量递归的时候不回溯请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。例如,在下面的3×4的矩阵中包含一条字符串“bfce”的路径(路径中的字母用加粗标出)。[[“a”,“b”,“c”,“e”],[“s”,“f”,“c”,“s”],[“a”,“d”,“e”,“e”]]但矩阵中不包含字符串“abfb”的路径,因为字符串的第一个字符b占

2020-05-08 22:47:32 115

转载 200. 岛屿数量

给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/number-of-islands示例 1:输入:111101101011...

2020-05-08 16:50:31 156

原创 synchronized底层原理解析

Synchronizedpublic class TestSync { static L l=new L(); static ReentrantLock reentrantLock=new ReentrantLock(); public static void main(String[] args) { lockTest(); } pub...

2020-05-06 21:06:54 164

原创 spring部分源码分析--------bean

bean实例化过程的大概流程假设 有个x类 通过javac编译成一个class文件 然后 通过classloader加载到jvm虚拟机中运行 main 方法的时候 会初始 spring环境和上下文 在上下文中 解析 主类发现 这个类需要扫描 某些包下的所有类 比如说 扫描到x 扫描到之后 spring 不是立马把它new出来它 扫描到之后 通过循环 用 BeanDefintio...

2020-05-05 11:56:04 141

原创 MySQL常用语句

DDL操作数据库 和 表操作数据库创建:create database 数据库名称;* 删除:drop database 数据库名称;* 修改:ALTER DATABASE 数据库名 CHARACTER SET 要修改的字符集名称* 查询:show databases; – 查询所有数据库的名称show create database 数据库名称; – 查询创建数据库语句语法:创...

2020-05-04 14:00:21 226

原创 JVM底层原理与性能调优

JVM底层栈又叫线程栈 是用来放局部变量的 以下面的这个类为例math就是个局部变量 a b c也是 放在栈内存空间中public class Test { public static final int a=100; public static User user=new User(); public int math(){ int a...

2020-05-01 01:11:59 508

空空如也

空空如也

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

TA关注的人

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