自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java8 终止操作符

Java8的终止操作符是指在Stream流中执行的最后一个操作,它会触发Stream流的执行并返回一个非Stream的结果。

2023-05-16 11:33:06 145

原创 kafka zkServers配置为什么要配多个机器节点而不是一个域名

kafka配置里的zkServers要用多个ip节点而不是一个单独的域名,是利用zk内部的选举机制达到高可用。如果只填一个单独的域名,没办法用zk内部的选举机制,zk域名解析只返回一个ip,所以无法实现高可用。nslookup命令能看到域名解析出来的ip列表。

2023-05-11 22:14:28 233

原创 IDEA 启动提示 Persistent Config duplicated

MAC里面没有JetBrains的文件夹路径。在网上看了另外一篇博客,发现可以在命令行里面看到IDEA启动的详细信息,于是想着看这里能不能找到其他额外信息。看了控制台输出,发现运行的时候能够找到这个目录。但是问题是我的MAC里面没有JetBrains的文件夹路径,导致没办法删除。进入文件夹后就和正常套路一样了,删除重复的插件目录,IDEA再次成功启动。官网给出的解决方案是删除插件对应的文件夹。注意因为中间有空格,需要加引号。

2023-04-26 11:54:46 288

原创 Mysql 常见DML sql 总结

工作常用sql

2022-09-14 21:07:18 260

原创 谨防掉坑 Mysql where条件+order By + limit 导致慢查询

Mysql where条件+order By + limit 导致慢查询testWhileIdle true, idle millis 10075, minIdle 5, poolingCount 4, timeBetweenEvictionRunsMillis 60000, lastValidIdleMillis 10075, driver com.mysql.jdbc.Driver, exceptionSorter com.alibaba.druid.pool.vendor.MySqlExceptio

2022-09-03 18:46:06 2133

原创 二分排序算法整理(Java版)

## 快速排序时间复杂度O(nlogn) 空间复杂度O(logn) 为栈所需辅助空间 不稳定排序思想: 1. 确定轴点。对无序序列首先找到一个轴点,一般选序列的第一个元素。 2. 寻找轴点的正确位置。low指向序列的第一个元素,height指向最后一个元素。先寻找右边第一个比轴点小的元素,如果找不到就height--; 否则把这个比轴点小的值赋给low位置的元素。接着再从左边找第一个比轴点大的元素,找不到就low++;否则就把这个大元素赋值给height位置的元素。直到low>=height

2022-08-28 18:44:05 903

原创 面试官:工作中用过锁么?说说乐观锁和悲观锁的优劣势和使用场景

并发场景下,有序地更新某条记录。乐观锁:乐观锁在操作数据时非常乐观,认为别人不会同时修改数据。因此乐观锁不会上锁,只是在执行更新的时候判断一下在此期间别人是否修改了数据:如果别人修改了数据则放弃操作,否则执行操作。悲观锁:悲观锁在操作数据时比较悲观,认为别人会同时修改数据。因此操作数据时直接把数据锁住,直到操作完成后才会释放锁;上锁期间其他人不能修改数据。乐观锁的实现方式主要有两种:CAS机制和版本号机制CAS:(Compare And Swap)CAS操作包括了3个操作数:操作逻辑如下:如果内存位置V的

2022-08-07 13:10:29 204

原创 Mybatis mapper实践应用

MP乐观锁批量更新

2022-08-06 21:31:52 1372 1

原创 mac重启之后,中/英 键无法快速切换输入法

mac切换输入法快捷键失效

2022-08-06 00:10:46 1107

原创 数据库调优:Mysql索引对group by 排序的影响

通常情况下,rows用来表示在SQL执行过程中会被扫描的行数,该数值越大,意味着需要扫描的行数,相应的耗时更长。但是需要注意的是EXPLAIN中输出的rows只是一个估算值,如果数据分布有偏差,并且您声明查看具有不同分布结果的部分数据可能会偏离 10-100 倍甚至更多。建立索引的字段通常都是作为查询条件的字段(一般作为WHERE子句的条件),却容易忽略查询语句里包含order by的场景。目前单表总量是700W+,某货主下的SKU占比为240W+,在页面查询的时候出现慢查,返回前端超时,导致页面报错。..

2022-08-02 17:18:08 981

原创 后端跨域网络请求问题解决方案

后端跨域网络请求问题解决方案

2022-06-19 23:41:53 195

原创 剑指 Offer 32 - II. 从上到下打印二叉树 II

从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。例如:给定二叉树: [3,9,20,null,null,15,7],返回其层次遍历结果:[[3],[9,20],[15,7]]提示:节点总数

2022-06-05 14:37:07 73

原创 剑指 Offer 32 - I. 从上到下打印二叉树

从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。例如:给定二叉树: [3,9,20,null,null,15,7],返回:[3,9,20,15,7]提示:节点总数

2022-06-05 01:02:51 90

原创 剑指 Offer 50. 第一个只出现一次的字符

在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。示例 1:输入:s = “abaccdeff”输出:‘b’示例 2:输入:s = “”输出:’ ’限制:0

2022-06-05 00:25:54 102

原创 剑指 Offer 04. 二维数组中的查找

在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:现有矩阵 matrix 如下:[[1, 4, 7, 11, 15],[2, 5, 8, 12, 19],[3, 6, 9, 16, 22],[10, 13, 14, 17, 24],[18, 21, 23, 26, 30]]给定 target = 5,返回 true。给定 target

2022-06-04 23:46:00 67

原创 剑指 Offer 53 - II. 0~n-1中缺失的数字

题目一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。示例 1:输入: [0,1,3]输出: 2示例 2:输入: [0,1,2,3,4,5,6,7,9]输出: 8阅题思考需要初始化哪些变量?是否为全局变量?用什么数据类型?作用是什么?二分查找标准模版,定义left = 0,mid = left + (right-left)/2,right = nums.length-1.

2022-05-29 20:56:08 66

原创 剑指 Offer 53 - I. 在排序数组中查找数字 I

题目统计一个数字在排序数组中出现的次数。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: 2示例 2:输入: nums = [5,7,7,8,8,10], target = 6输出: 0阅题思考需要初始化哪些变量?是否为全局变量?用什么数据类型?作用是什么?二分查找标准模版,定义left,mid,right.整体思路描述&哪些事需要封装成一个函数?题目中给的数组有顺序 = 用二分。有一种思路是查找到mid = targer的位置,然

2022-05-29 11:38:59 59

原创 剑指 Offer 03. 数组中重复的数字

题目找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3阅题思考需要初始化哪些变量?是否为全局变量?用什么数据类型?作用是什么?整体思路描述&哪些事需要封装成一个函数?这道题可以按hash来做,key存nums[i],判断value是否大于1.空间复杂度

2022-05-28 12:09:31 55

原创 剑指 Offer 35. 复杂链表的复制

题目请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。示例 1:输入:head = [[7,null],[13,0],[11,4],[10,2],[1,0]]输出:[[7,null],[13,0],[11,4],[10,2],[1,0]]示例 2:输入:head = [[1,1],[2,1]]输出:[[1,1],[2,1]]示例 3:输入:head =

2022-05-28 11:43:12 58

原创 剑指 Offer 05. 替换空格

题目请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = “We are happy.”输出:“We%20are%20happy.”阅题思考需要初始化哪些变量?是否为全局变量?用什么数据类型?作用是什么?整体思路描述&哪些事需要封装成一个函数?不定义额外变量。实现时间复杂度O(n),空间复杂度O(1)1。先遍历扫描一遍原字符串有count个空格,然后将原数组扩容为 “原size+count*2”的size。(“20%”是3个字符,因此1个空格再扩容

2022-05-28 11:32:48 60

原创 剑指 Offer 24. 反转链表

题目定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL阅题思考需要初始化哪些变量?是否为全局变量?用什么数据类型?作用是什么?迭代和递归两种做法。迭代:定义3个局部变量。pre = null,cur = head,next = null;整体思路描述&哪些事需要封装成一个函数?https://vdn3.

2022-05-18 01:01:45 70

原创 剑指 Offer 06. 从尾到头打印链表

题目输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例 1:输入:head = [1,3,2]输出:[2,3,1]阅题思考需要初始化哪些变量?是否为全局变量?用什么数据类型?作用是什么?这题如果使用额外空间的话,就没意思了,定义一个List,遍历链表的同时存进该List,最后api反转变成数组返回就好了。或者用栈思路也很简单。我们尝试下不使用额外空间,只在该链表身上操作,解答本题。整体思路描述&哪些事需要封装成一个函数?先整体扫描一遍得到该链表共有多少个元素

2022-05-17 22:34:04 295

原创 剑指 Offer 30. 包含min函数的栈

剑指 Offer 30. 包含min函数的栈

2022-05-15 12:02:50 82

原创 剑指 Offer 09. 用两个栈实现队列

剑指 Offer 09. 用两个栈实现队列

2022-05-15 10:25:09 65

原创 gradle打Jar包如何包含源码注释

gradle打Jar包如何包含源码注释在gradle引入以下文件,运行可直接生成源码包// 上传sourcetask sourcesJar(type: Jar) { from sourceSets.main.allJava archiveClassifier.set("sources")}artifacts { archives sourcesJar}路径查看:如果需要upload的话,运行upload可直接上传源码注释到私服...

2022-04-02 14:56:51 3787 1

原创 面试官:工作中遇到过主从延迟么?如何解决的?

主从架构带来好处的同时也带来一些问题,比如主从延迟问题。 影响 那么问题来了,数据一定写入成功的情况下,偶现的主从延迟应该如何解决呢? 解决 1.强制读主库 2.读数据时先sleep一下 3.

2022-02-19 14:29:06 2185 1

原创 面试官:你做过哪些Mysql优化?

书写优化一、用PreparedStatementPreparedStatement 一般来说比Statement性能高:一个sql 发给服务器去执行,涉及步骤:语法检查、语义分析, 编译,缓存二、避免外键约束有外键约束会影响插入和删除性能,如果程序能够保证数据的完整性,那在设计数据库时就去掉外键。三、sql语句全大写特别是列名和表名都大写。利用sql命令的缓存功能,更加需要统一大小写,sql语句发给oracle服务器语法检查和编译成为内部指令缓存和执行指令。根据缓存的特点,不要拼凑条件

2022-02-04 19:48:36 3916 4

原创 从原理到应用解释MYSQL和HBASE区别

HBase 是运行在 HDFS 之上的面相列的数据库管理系统。注意 HBase 不是列式存储数据库,每一个列簇就是一个HFiel。有以下特点● 天然分布式,主从架构● NoSQL数据库,不支持事务,不支持sql● 不支持二级索引,仅能通过主键(row key)和主键的 range 来检索数据。● 海量数据存储:支持随机CRUD,亿级数据秒级响应。

2022-01-17 20:20:50 2095

原创 十分钟弄懂Hbase基础概念

row key(行键)必须是全表唯一的,更新row key是覆盖。插入数据需要指定row key。扩展:RowKey是会按字典序排序的,RowKey相近的行总是存储在相近的位置,如果大量读写操作总是集中在某个RowKey范围就会造成Reginon热点,这会导致某部分数据会集中在某台HRegionServer上存储以及查询,而其他的HRegionServer却很空闲。打散RowKey:加盐+哈希、反转固定格式数值

2022-01-16 01:06:14 1384

原创 10分钟学会分析Top命令

今天线上服务器发生了报警【P0】MEM_USED_PERCENT=90.58,内存使用百分比占到了90.58。看到这个报警,大部分彦祖们都会去服务器敲个top命令看看服务器运行情况。今天就来和大家说说,如何使用top命令分析系统性能。通过top命令,我们可以全面了解当前CPU、内存、进程等一系列当前服务器状态。首先,我们直接在Linux服务器上输入top,敲回车后就能动态看到当前服务器运行情况,默认是每隔3S刷新一次,这里我截个图给大家分析,别看数据一大堆,听我分析你就会全明白的。

2022-01-13 20:08:24 506

原创 记录日志详细变更

需求:记录出用户修改的字段,做详细日志记录。思路:创建FeildDiff、BeanDiff实体类,FeildDiff包括字段英文名、字段中文名、旧值、新值、目录五个属性,BeanDiff包括FeildDiff集合一个属性。获取旧对象数据。获取新对象数据。新旧对象属性对比,存进FeildDiff实体类。把每一个属性对比得到的FeildDiff存进BeanDiff。难点:对象里面包含复杂对象,比如属性为Person,List,Map应如何比较?不想比较对象的某些属性,比如updatetim

2021-09-14 21:37:07 455

原创 记一个校验参数注解的坑

@Valid只有和 @RequestBody注解一起使用时才生效,且不能时get请求@Valid和@Validated的区别是前者会嵌套校验,前者是Javax的注解,后者是Spring框架里的注解如果get请求也想用@size这种校验注解,需要在类上加@Validated代码如下所示@RequestMapping("/inboundjavaprocess/portal")@Validatedpublic interface PortalApi { @PostMapping(value

2021-05-27 15:00:36 192

原创 [算法面试题]链表求和

给定两个用链表表示的整数,每个节点包含一个数位。这些数位是反向存放的,也就是个位排在链表首部。编写函数对这两个整数求和,并用链表形式返回结果。示例:输入:(7 -> 1 -> 6) + (5 -> 9 -> 2),即617 + 295输出:2 -> 1 -> 9,即912进阶:思考一下,假设这些数位是正向存放的,又该如何解决呢?示例:输入:(6 -> 1 -> 7) + (2 -> 9 -> 5),即617 + 295输出:9 -

2021-05-06 09:05:48 127

原创 git clone 443解决方案

方法1:可以直接用命令行试,不要使用代理。如git clone ​https://github.com/xxx/yyy,观察是否还是报timeout。 方法2:如果还超时,可以设置超时参数:git config --global http.lowSpeedLimit 0 和 git config --global http.lowSpeedTime 999999。方法3:使用github加速网站 https://gitclone.com ,用命令行: git clone https://http://git

2021-04-12 14:50:55 4034

原创 数字字符串转化成IP地址

链接:https://www.nowcoder.com/questionTerminal/ce73540d47374dbe85b3125f57727e1e来源:牛客网现在有一个只包含数字的字符串,将该字符串转化成IP地址的形式,返回所有可能的情况。例如:给出的字符串为"25525522135",返回[“255.255.22.135”, “255.255.221.35”]. (顺序没有关系)示例1输入“25525522135”输出[“255.255.22.135”,“255.255.221

2021-03-18 17:02:22 1549

原创 二叉树的之字形层序遍历

链接:https://www.nowcoder.com/questionTerminal/47e1687126fa461e8a3aff8632aa5559来源:牛客网给定一个二叉树,返回该二叉树的之字形层序遍历,(第一层从左向右,下一层从右向左,一直这样交替)例如:给定的二叉树是{3,9,20,#,#,15,7},该二叉树之字形层序遍历的结果是[[3],[20,9],[15,7]]示例1输入{1,#,2}输出[[1],[2]]import java.util.*;/*

2021-03-18 17:01:01 510

原创 重构二叉树

输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。题解:import java.util.ArrayList;import java.util.Arrays;import java.util.List;import java.util.Stack;/** * @author Heerh * @version 1.0 * @date 2020/10/1 17:16 */public class Demo { publ

2020-11-07 14:44:00 176

转载 银行换钱最少硬币问题

问题描述:如果我们有面值为1元、3元和5元的硬币若干枚,如何用最少的硬币凑够11元? 将问题进行抽象,最后达到什么程度了,给出任意面值集合V,凑够的面值为m,求所需硬币最少的个数 j. 如果没有任何一种零钱组合能组成总金额,返回-1。举例一:输入V={1, 2, 5},m=11输出3 (5+5+1共三枚硬币)举例二:输入V={2},m=3输出-1(无法兑换)代码实现:public int changeCoin(int[] coins, int amount) { i

2020-09-04 10:15:16 381 1

原创 从一组数字中选出非相邻数字和的最大值

问题描述:给定一组数字,要求从这组数字里找出非 相邻数字和的最大值。举例:输入:4 1 1 9 1输出:13(9+4)输入:1 2 4 1 7 8 3输出:13 (8+4+1)代码实现:public class Demo { //递归实现 public static int rec_opt(int[] arr, int i) { if (i == 0) return arr[0]; else if (i == 1) return arr[0] &gt

2020-09-04 09:29:49 749

原创 给一个链表,输出去掉第k个节点的链表

class ListNode{ public int val; public ListNode next; public ListNode(int val) { this.val = val; }}public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); int k = sca

2020-08-24 16:42:34 167

空空如也

空空如也

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

TA关注的人

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