自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 蜂蜜功效及泡法

土蜂蜜的十大功效功效一:消除疲劳,增强体力。功效二:健脑益智,提高记忆力。功效三:口腔、消化道、肠道疾病作用。功效四:具有天然抗菌防腐作用,增强免疫力。功效五:延年益寿,健身强志,减缓衰老,促进长寿。功效六:改善肠胃功能,治疗便秘,减少宿便,清热解毒。功效七:养肝护肝,改善肝脏功能,对慢性肝炎有调理作用。功效八:调节、改善神经系统,促进睡眠,对失眠多梦有效。功效九:改善儿童生长发育,促进消化吸收,防止营养不良。功效十:美容养颜、润肤、防皱去斑,补血养气,改善贫血。

2021-07-23 23:02:34 531 1

原创 JUC 粗汇总

JUC是什么juc是java.util.concurrent包的缩写。JUC包括什么那么我们简要ga

2021-06-17 21:40:43 260 1

原创 Java 8 流式编程介绍

流从迭代到流流的概念原先在处理集合里面的数据的时候,通常大家会采取这样的形式。比如对集合中的字符串长度大于10的进行个数的统计。我们通常会这么写for (String s : list){ if (s.length()>10){ sum++; } }但是如果用流式编程的话,我们可以这么写。long sum = list.stream().filter(item -> it

2021-02-17 14:02:49 575 1

原创 Java 泛型深入理解。

泛型什么是泛型:也许有会说是广泛的参数类型,但是泛型的本质其实是:参数化类型。泛型的特点是泛,经常用于一些传入的参数,或者是存储参数不确定的场景。泛型的前身泛型是java1.5之后出现的内容。在泛型出现之前,我们很多时候都是利用强制转换来实现泛型的。这样虽然在功能层面上会满足需求。但是又一个巨大的安全问题就是类型安全。因为没有泛型的时候,你写的类型转换它不会帮你去看的,如果这时候你把一个Object转换成一个你其实不想要的类型的时候的,代码是不会出现问题的。泛型的好处1.泛型可以减少强制

2021-01-17 19:26:02 314 1

原创 KMP详解

KMP 算法详解背景:一开始的时候我们比较一个字符串是不是另一个字符串的子串的时候,最原始的做法就是用子串一个一个去比较。比较到不相等的位置的时候,母字符串后退一步,子字符串重新开始。这样子做会出现一个不必要的比较。解决方式:KMP,KMP能够解决上面所出现的问题。我们回去计算一个next数组的值,其目的在于解决当两个字符不匹配的时候,子串应该从哪里开始继续和母字符串作比较。首先介绍一下next的计算方式:规则:当前位置的值,等于之前子串里面最大重复子串的大小+1。void get_next

2020-12-20 13:13:06 128 1

原创 力扣 数据库 1435. 制作会话柱状图

表:Sessions+---------------------+---------+| Column Name | Type |+---------------------+---------+| session_id | int || duration | int |+---------------------+---------+session_id 是该表主键duration 是用户访问应用的时间, 以秒...

2020-12-03 21:29:15 159

原创 关于 Mybatis 字符串转Date已经怎么再xml中使用

先说一下我前台是用的json,把时间变成字符串String在转Date的时候其实会变成这样的格式:Wed Nov 25 15:57:30 CST 2020。但是不影响,直接拿到xml里面去比较。欧克的

2020-11-25 16:57:53 572

原创 力扣数据库中等

这道题坑在:薪水相同时候应该是同排名的。所以要用group by 聚合相同的一下create function getNthHighestSalary(N int) returns intbegin set n:=n-1 return( select Salary from Employee group by Salary order by Salary desc limit n,1 )..

2020-11-16 23:25:29 74

原创 力扣数据库

先从简单开始思路:对Email列进行count函数计算,依赖于group by(按照不同得邮箱进行分组。这样得话就可以得到一个这样得数据:每个邮箱对应得条数。这样只要求出每个条数>1得邮箱就是我们想要得。)解答:select Email from( select Email count(Email) as numfrom Persongroup by Email) as EmailNumwhere num>1;思路:其实就是求Customers表里面没有在O

2020-11-14 20:11:25 266

原创 Mysql 复习步骤

今天计划启程,慢慢记录第一步先复习mysql的基础语法

2020-10-24 23:20:02 104

原创 ThreadPoolExecutor 拒绝策略

JDK内置4种线程池拒绝策略拒绝策略接口定义我们来看一下拒绝接口的代码public interface RejectedExecutionHandler { void rejectedExecution(Runnable r, ThreadPoolExecutor executor);}CallerRunsPolicy(调用者运行策略) public static class CallerRunsPolicy implements RejectedExecutionHand

2020-08-27 13:57:58 319

原创 分享技巧

首先介绍一个东西,要从听者的角度出发,要把听者当着什么都不会的人去讲。拿线程池举例子: 1.介绍线程池,不能一开始就讲线程池是什么东西,解决了什么问题。首先,你要从基础开始讲:线程池的由来,他是从多线程演变过来了。那就要稍微解释一下多线程是什么东西,作用于哪一个领域。应用场景是什么,然后就是说一下多线程的一个缺点是什么,从而出现了信的解决方案:线程池。 2.然后这个时候就可以开始讲线程池是个是什么东西,在多线程的基础上面多了哪一些好处。介绍清楚线程池之后。就要开始说线程池的实现方式,怎么...

2020-08-27 10:49:22 120

原创 单例模式

单例模式的概念在运行期间,保证某个类只创建一个实例,保证一个类仅有一个实例,并提供一个访问它的全局访问点。下面就来讲讲Java中的N种实现单例模式的写法。饿汉模式public class Singleton { private static Singleton instance = new Singleton(); private Singleton() { } //提供一个全局访问的节点 public static Singleton getIn

2020-08-23 15:05:19 105

原创 线程池andSpringBoot是如何实现异步任务(@Async)

什么是线程池:我觉得线程池就是一容器,是创建多个线程并且管理的容器。(线程池是一个容器,可以创建和管理线程,并且分批任务)为什么要用线程池:以前在我们Java里面要去创建线程,需要new Thread()。这样去开启一个新的线程,那如果要创建很多线程的话,那是不是要一直new Thread。这明显是很不科学的一件事情。举一个例子:在我们项目里面,如果全部是用New Thread的方式去创建线程的,那么在1线程创建好的时候,又创建线程2,一次类推,这样会导致,假设后面的任务执行完了,但是前面的线程

2020-08-22 22:41:18 257

原创 Spring: IOC/DI/AOP

Spring IOC 先说一下springioc是什么东西;首先,Spring的IOC是被叫做控制反转,他并不是一种技术,而是一种设计模式。再Java开发过程中Ioc意味着将你设计好的对象交给容器控制,而不是再类里面直接控制。那好,既然SpringIoc被叫做控制反转,那么是谁控制谁,还有反转是什么回事谁控制谁?控制什么?:传统的方式,我们是在类的内部通过new去创建一个对象的,而Ioc是专门会有一个容器去创建这些对象的。那么从这里我们可以得出:是Ioc容器控制了对象。控制了什么:主要控制的..

2020-08-13 15:08:17 129

原创 编码规范

网上的编码规范基本都是阿里的。所以我也是记录阿里的笔记1.美元符号或者是下划线,不能作为变量的开始或者是结束2.代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式3.类名使用UpperCamelCase风格,必须遵从驼峰形式(某些情况诸如领域模型相关的命名除外);方法名、参数名、成员变量、局部变量都统一使用lowerCamelCase风格,必须遵从驼峰形式(类和后面的区别在于第一子字母是大写还是小写)4.常量命名全部大写,单词间用下划线隔开5.包名统一使用小写,点分隔符

2020-08-13 11:33:44 208

原创 Junit测试和mock

Junit 是什么:Junit是用来编写可复用测试集的简单框架,是Xunit的子集,Xunit是一套基于测试驱动开发的测试框架。Junit是白盒测试,一般由开发人员完成,因为开发人员最清楚软件是怎么完成功能的和完成什么样的功能。Junit的好处: 1.Junit可以是测试和业务代码分开 2.针对某一个模块的测试代码,经过小小的改动,可以直接使用于另一块的代码测试 3.容易集成到测试人员的构建过程中 4.代码开源,可以经行二次扩展使用Junit: 首先要...

2020-08-13 10:21:00 1708

原创 Java 常用集合

blockingqueue(先介绍blockingqueue,为什么呢?因为这个不擅长先了解一下)首先:这个是什么东西 blockingqueue是一个阻塞队列,是一个collection中的一个接口,目的在于解决,多线程之间如何高效的传输数据这个问题。特点:当从这个队列中取元素时,它支持这样的操作:如果队列为空,那它就等待队列不为空时,再执行取操作。当向这个队列中存元素时,它支持这样的操作:如果队列已满,那它就等待队列可用,再向队列中存放元素。(生产者-消费者)下面方法...

2020-08-10 23:47:21 141

原创 OSS 上传及下载文件and多线程上传下载文件

首先要使用OSS必须再阿里云上面注册账号,并且开通OSS对象存储服务创建自己的Bucket 然后再去创建你自己的AccessKey 管理接下来就是代码了(OSS JAVA SDK帮助文档也可以看到)// Endpoint以杭州为例,其它Region请按实际情况填写。String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";// 阿里云主账号Acc...

2020-07-29 09:08:40 1187 1

原创 SQL调优(性能调优,性能监控,mysql慢日志,orcal执行计划PLSQL)

Sql 调优首先在学习的过程中,我会先了解一个这个东西是做什么用的,为什么要用。做什么:随着系统的数据量逐年增加,并发量也成倍增长,很多时候下,一个项目数据库的数据数量是成千上百万条数据,如果对数据库查询做的是全表扫描,那么首先在时间上面就很不合算,同时在读写操作的过程中又会造成资源的浪费。这就会造成一下几个问题的出现:1.查询性能低,2.执行时间过长,3.等待时间过长。在我们课设中数据量小很难感受出来,但是这不代表SQL调优的不必要性。所以SQL调优就是为了解决这些问题(感觉不止这些,一.

2020-07-28 17:55:09 290

原创 剑指 Offer 60. n个骰子的点数

把n个骰子扔在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能的值出现的概率。你需要用一个浮点数数组返回答案,其中第 i 个元素代表这 n 个骰子所能掷出的点数集合中第 i 小的那个的概率。示例 1:输入: 1输出: [0.16667,0.16667,0.16667,0.16667,0.16667,0.16667]示例2:输入: 2输出: [0.02778,0.05556,0.08333,0.11111,0.13889,0.16667,0.13889,0....

2020-07-08 09:10:19 83

原创 剑指 Offer 48. 最长不含重复字符的子字符串

请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。示例1:输入: "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是"wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,"pwke"是...

2020-07-07 22:40:12 64

原创 剑指 Offer 31. 栈的压入、弹出序列

输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列,但 {4,3,5,1,2} 就不可能是该压栈序列的弹出序列。示例 1:输入:pushed = [1,2,3,4,5], popped = [4,5,3,2,1]输出:true解释:我们可以按以下顺序执行:push(1), push(2), push(3), pu.

2020-07-05 16:40:48 64

原创 二叉树遍历 前序,中序,后序

首先我举例一个二叉树,在这个二叉树上面做解释。这里借用一下别人的图片前序:先遍历根节点,在遍历左节点,在遍历右节点。如上图,首先找整个树的根节点,那就是A,其次找整个节点的左节点也就是B,找到B之后,发现B其实也是其他节点的根节点。所以按照前序的规则,遍历B节点的左节点也就是D。继续就是G,最后遍历D节点的右节点是H。这时候左子树已经遍历完了,这时候就要往右子树走,进入右子树之后,找到右子树的最开始根节点也就是C,然后按照前面对左子树的解释依次遍历就是E,I,F。我们要记住要先遍历完一个子树才能

2020-06-18 16:51:49 185

原创 力扣 209. 长度最小的子数组

给定一个含有n个正整数的数组和一个正整数s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组,并返回其长度。如果不存在符合条件的连续子数组,返回 0。示例:输入: s = 7, nums = [2,3,1,2,4,3]输出: 2解释: 子数组[4,3]是该条件下的长度最小的连续子数组。进阶:如果你已经完成了O(n) 时间复杂度的解法, 请尝试O(n log n) 时间复杂度的解法。来源:力扣(LeetCode)链接:https://leetcode-cn.com/...

2020-06-08 17:33:13 126

原创 力扣 670. 最大交换

670. 最大交换难度中等77收藏分享切换为英文关注反馈给定一个非负整数,你至多可以交换一次数字中的任意两位。返回你能得到的最大值。示例 1 :输入: 2736输出: 7236解释: 交换数字2和数字7。示例 2 :输入: 9973输出: 9973解释: 不需要交换。注意:给定数字的范围是[0, 108]数字长度不超过10位,直接暴力。然后我得想法是有点像双指针,一个指针只想最开始向后面遍历,另个指针从最尾巴开始向前面遍历,在第二个指针遍历得过程中找..

2020-06-08 16:21:06 178

原创 力扣 714. 买卖股票的最佳时机含手续费

714. 买卖股票的最佳时机含手续费难度中等179收藏分享切换为英文关注反馈给定一个整数数组prices,其中第i个元素代表了第i天的股票价格 ;非负整数fee代表了交易股票的手续费用。你可以无限次地完成交易,但是你每笔交易都需要付手续费。如果你已经购买了一个股票,在卖出它之前你就不能再继续购买股票了。返回获得利润的最大值。注意:这里的一笔交易指买入持有并卖出股票的整个过程,每笔交易你只需要为支付一次手续费。示例 1:输入: prices = [1, 3, 2, ...

2020-06-06 21:19:41 185

原创 力扣 1144. 递减元素使数组呈锯齿状

1144. 递减元素使数组呈锯齿状难度中等16收藏分享切换为英文关注反馈给你一个整数数组nums,每次操作会从中选择一个元素并将该元素的值减少1。如果符合下列情况之一,则数组A就是锯齿数组:每个偶数索引对应的元素都大于相邻的元素,即A[0] > A[1] < A[2] > A[3] < A[4] > ... 或者,每个奇数索引对应的元素都大于相邻的元素,即A[0] < A[1] > A[2] < A[3] > A[4...

2020-06-05 21:42:20 186

原创 力扣 井字游戏

面试题 16.04. 井字游戏难度中等6收藏分享切换为英文关注反馈设计一个算法,判断玩家是否赢了井字游戏。输入是一个 N x N 的数组棋盘,由字符" ","X"和"O"组成,其中字符" "代表一个空位。以下是井字游戏的规则:玩家轮流将字符放入空位(" ")中。 第一个玩家总是放字符"O",且第二个玩家总是放字符"X"。 "X"和"O"只允许放置在空位中,不允许对已放有字符的位置进行填充。 当有N个相同(且非空)的字符填充任何行、列或对角线时,游戏结束,对应该字符的玩家获胜。 当所有

2020-06-05 20:49:28 3259 2

原创 力扣 1016. 子串能表示从 1 到 N 数字的二进制串

1016. 子串能表示从 1 到 N 数字的二进制串难度中等19收藏分享切换为英文关注反馈给定一个二进制字符串S(一个仅由若干'0' 和 '1' 构成的字符串)和一个正整数N,如果对于从1到N的每个整数X,其二进制表示都是S的子串,就返回true,否则返回false。示例 1:输入:S = "0110", N = 3输出:true示例 2:输入:S = "0110", N = 4输出:false提示:1 <= S.leng...

2020-05-25 14:55:31 157

原创 力扣 539. 最小时间差

539. 最小时间差难度中等45收藏分享切换为英文关注反馈给定一个 24 小时制(小时:分钟)的时间列表,找出列表中任意两个时间的最小时间差并以分钟数表示。示例 1:输入: ["23:59","00:00"]输出: 1备注:列表中时间数在 2~20000 之间。 每个时间取值在 00:00~23:59 之间。思路很简单:每个字符串得分钟数算一下,拍一下序列。在两者之间减一下,求最小。同时记住时间是循环得,所以随后一个何第一个也要比较一下。class Solution

2020-05-24 18:34:53 155 1

原创 JVM 内存区域 and 垃圾回收机制

JVM 内存结构:区域:五块区域:堆,栈,方法区,本地方法栈,程序计数器 各区域作用: 堆:所有程序共享的。存放内容:所有对象的实例。绝大多数杯创建的对象都会放在堆结构里面。垃圾回收器在堆 栈:每个线程独有的,作用是:程序每次调用一个方法之后,栈就会这个方法创建一个栈帧,用于保护当前的状态,并将这个栈帧压栈。当方法执行完之后,久把这个栈出栈。调用一个方法死循环会出现栈溢出。 本地方法栈:也是每个线程独有的,主要用于JVM的Native方法。 方法区:线程共享的,作用 是用来存放类的信

2020-05-17 22:58:39 122

原创 力扣 面试题 04.04. 检查平衡性

面试题 04.04. 检查平衡性难度简单10收藏分享切换为英文关注反馈实现一个函数,检查二叉树是否平衡。在这个问题中,平衡树的定义如下:任意一个节点,其两棵子树的高度差不超过 1。示例 1:给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7返回 true 。示例 2:给定二叉树 [1,2,2,3,3,null,null,4,4] 1 / \ 2 2 /

2020-05-17 17:36:32 139

原创 力扣 162. 寻找峰值

162. 寻找峰值难度中等194收藏分享切换为英文关注反馈峰值元素是指其值大于左右相邻值的元素。给定一个输入数组nums,其中nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。你可以假设nums[-1] = nums[n] = -∞。示例 1:输入: nums = [1,2,3,1]输出: 2解释: 3 是峰值元素,你的函数应该返回其索引 2。示例2:输入: nums = [...

2020-05-17 16:58:19 109

原创 力扣 658. 找到 K 个最接近的元素

658. 找到 K 个最接近的元素难度中等84收藏分享切换为英文关注反馈给定一个排序好的数组,两个整数k和x,从数组中找到最靠近x(两数之差最小)的k个数。返回的结果必须要是按升序排好的。如果有两个数与x的差值一样,优先选择数值较小的那个数。示例1:输入: [1,2,3,4,5], k=4, x=3输出: [1,2,3,4]示例 2:输入: [1,2,3,4,5], k=4, x=-1输出: [1,2,3,4]解法:首先数组事有序的,如果x...

2020-05-17 16:25:25 181

原创 力扣 1283. 使结果不超过阈值的最小除数

1283. 使结果不超过阈值的最小除数难度中等17收藏分享切换为英文关注反馈给你一个整数数组nums和一个正整数threshold,你需要选择一个正整数作为除数,然后将数组里每个数都除以它,并对除法结果求和。请你找出能够使上述结果小于等于阈值threshold的除数中最小的那个。每个数除以除数后都向上取整,比方说 7/3 = 3 , 10/2 = 5 。题目保证一定有解。示例 1:输入:nums = [1,2,5,9], threshold = 6输出...

2020-05-16 14:52:26 122

原创 力扣 1011. 在 D 天内送达包裹的能力

1011. 在 D 天内送达包裹的能力难度中等71收藏分享切换为英文关注反馈传送带上的包裹必须在 D 天内从一个港口运送到另一个港口。传送带上的第i个包裹的重量为weights[i]。每一天,我们都会按给出重量的顺序往传送带上装载包裹。我们装载的重量不会超过船的最大运载重量。返回能在D天内将传送带上的所有包裹送达的船的最低运载能力。示例 1:输入:weights = [1,2,3,4,5,6,7,8,9,10], D = 5输出:15解释:船舶最低载重 15 ...

2020-05-16 14:00:24 210

原创 力扣 61. 旋转链表

61. 旋转链表难度中等252收藏分享切换为英文关注反馈给定一个链表,旋转链表,将链表每个节点向右移动k个位置,其中k是非负数。示例1:输入: 1->2->3->4->5->NULL, k = 2输出: 4->5->1->2->3->NULL解释:向右旋转 1 步: 5->1->2->3->4->NULL向右旋转 2 步: 4->5->1->2->3->...

2020-05-15 21:27:41 118

原创 力扣 57. 插入区间

57. 插入区间难度困难134收藏分享切换为英文关注反馈给出一个无重叠的 ,按照区间起始端点排序的区间列表。在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。示例1:输入: intervals = [[1,3],[6,9]], newInterval = [2,5]输出: [[1,5],[6,9]]示例2:输入: intervals = [[1,2],[3,5],[6,7],[8,10],[12,16]], newInt..

2020-05-15 18:19:49 134

原创 力扣 48. 旋转图像

48. 旋转图像难度中等441收藏分享切换为英文关注反馈给定一个n×n的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。示例 1:给定 matrix = [ [1,2,3], [4,5,6], [7,8,9]],原地旋转输入矩阵,使其变为:[ [7,4,1], [8,5,2], [9,6,3]]示例 2:给定 matrix ...

2020-05-14 21:35:52 179

空空如也

空空如也

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

TA关注的人

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