- 博客(73)
- 收藏
- 关注
原创 「MySQL」InnoDB中的页
以查询数据为例,数据库在查询n条数据时,往往会将多余n条的数据从磁盘中拿到内存中以提升查询速度。这些拿到内存中的数据就被存放到数据页中。页的基本概念InnoDB中页(page)是存储的基本结构,也是InnoDB管理的最小单位,与数据库相关的内容都存储在page结构中。page分为几个类型:数据页(B-Tree Node)、Undo页(Undo Log Page)、系...
2020-10-30 09:16:32
415
原创 「面试」Go中Slice的Copy问题
这是copy的一个坑,如果要做slice复制,需要使用copy(dst, src)函数但是copy实际复制的元素个数是从两个slice中取最小值,即min(len(dst), len(src)),如果len(dst)=0则没有办法完成复制。func main() { src := []int{1, 2, 3} dst := make([]int, 0)...
2020-10-27 18:25:16
1023
原创 「面试」Go中Slice的扩容问题
slice的底层是数组,其内部包含三个属性,分别是:ptr,len,capptr是指向底层数组的指针len是slice的长度cap是底层数组的容量当slice长度不足以放下新元素时,就会将当前数组中的数据复制到一个容量更大的新数组中。在自动扩容时,在数组容量小于1024个元素时,每次扩容的数组容量是原来数组的2倍。当数组容量大于1024个元素时,每次扩容的数组...
2020-10-27 14:33:46
514
1
原创 「面试」Go中的defer调用
请写出执行结果:func main() { a := 1 b := 2 defer calc(a, calc(a, b)) a = 0 defer calc(a, calc(a, b))}func calc(x, y int) int { fmt.Println(x, y, x+y) return x + y...
2020-10-27 12:28:15
185
原创 MacOS 时光机器备份加速命令
打开终端,输入以下命令:sudo sysctl debug.lowpri_throttle_enabled=0这时你就会发现时光机器的备份速度变快很多很多了!!基本能达到网络和硬盘读写的应有的速度了。等它完成了首次的备份之后,你可以再执行下面的命令,恢复到原本限流的状态,以保证日后使用电脑时不被时光机器备份占去太多的资源导致变卡。sudo sysctl debug....
2020-10-20 02:45:39
400
原创 「面试」平衡二叉树
平衡二叉树是一个空树或者它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。平衡二叉树很好的解决了二叉树退化成链表的问题,把插入,查找,删除的时间复杂度最好情况和最坏情况都维持在O(logN)。但是频繁旋转会使插入和删除牺牲掉O(logN)左右的时间,不过相对二叉查找树来说,时间上稳定了很多。 ...
2020-10-14 13:05:20
112
原创 「面试」原码、反码、补码
原码、反码、补码的关系特别的,在原码中0有两种表示方式:[+0]原=0000000,[-0]原=1000000 在反码表示中,0也有两种表示形式:[+0]反=0000000,[-0]反=11111111 在补码表示中,0有唯一的编码:[+0]补=0000000,[-0]补=0000000 ## 移码 因为个人移码理解有点困难,so单独解释一下: 移码表示法是在...
2020-10-14 09:24:21
201
原创 「面试」Mysql中索引实现原理
B站讲解视频:https://b23.tv/SC2FfH数据结构演示网站:https://www.cs.usfca.edu/~galles/visualization/Algorithms.html什么是索引索引是帮助MySQL高效获取数据的排好序的数据结构索引的目的索引数据结构的目的,就是用更少的查询次数获得数据,表现到树的结构上就是尽可能的减小树的高度...
2020-10-14 02:34:53
135
原创 唤醒MacBook之后出现“没有连接好的键盘”键盘和触控板短暂失灵
百度之后得知原因,当网络情况比较差的时候卡顿特别明显,软件打开也延迟很久,甚至出现唤醒后键盘直接失联,需要重启才能使用。断网情况进休眠唤醒不会卡顿。猜测是和网络有关,抓包发现每次打开软件或者唤醒时都会访问这个苹果的域名。屏蔽可以解决。终端输入命令:echo "127.0.0.1 ocsp.apple.com" | sudo tee -a /etc/hosts输入密码之...
2020-10-10 06:43:21
3418
2
原创 「Spring」Spring AOP
AOP的基本概念Aspect(切面):通常是一个类,里面可以定义切入点和通知。通常是抽取出来的一些代码组成,比如在事务处理时,会将事务处理的代码抽取成方法(通知方法)。Advice(通知):通知就是指上述抽取的方法Pointcut(切入点):需要执行通知的位置,在程序中主要体现为书写切入点表达式Weaving(织入):是将通知代码写入切点位置的动作Jo...
2020-09-23 01:41:49
60
原创 「Spring」IoC(控制反转)=DI(依赖注入)
控制反转(控制转移):反转这两个字用的不是很形象,个人感觉使用控制转移更能体现IoC的作用控制:谁控制?以前使用new方式自己控制现在使用context容器(IoC容器)控制控制谁?控制对象的生成方式控制对象的依赖关系反转:+ 之前控制对象的生成与关系是自己new+ 现在全部交给spring IoC控制 ...
2020-09-22 08:30:02
75
原创 「jQuery」jQuery选择器
基本选择器选择器名称语法作用描述元素选择器$("p")在页面中选取所有 <p> 元素:#id 选择器$("#test")jQuery #id 选择器通过 HTML 元素的 id 属性选取指定的元素。.class 选择器$(".test")jQuery 类选择器可以通过指定的 class 查找元素。更多实例...
2020-09-14 18:40:07
102
原创 「面试」var、let、const的区别
var和let的区别:函数作用域 & 块级作用域var只有全局作用域和函数作用域概念,没有块级作用域的概念。但是会把{}内也假称为块作用域。let只有块级作用域的概念 ,由 { } 包括起来,if语句和for语句里面的{ }也属于块级作用域。如图:变量提升 & 暂时性死区var 存在变量提升,而 let,const(后面会提及)声明的变量却不...
2020-09-14 14:22:07
150
原创 「面试」把数组中的每个元素替换为与第一个元素相除的结果
问题描述:给定一个数组,把数组中的每个元素替换为与第一个元素相除的结果。代码如下:public void demo(int[] arrays){ if (arrays[0]==0){ return; } for (int i=arrays.length-1;i>=0;i--){ arrays[i]=arr...
2020-09-14 04:38:58
166
原创 「Redis」MacOS使用homebrew安装Redis6.0
安装redis想要使用工具就需要先获得工具.在安装了homebrew的情况下在终端执行命令 :brew install redis安装最新版本的reids,安装成功之后会出现如下所示的提示:redis基本命令启动redis:brew services start redis连接redis:redis-cli -h 127.0.0.1 -p 6379关闭red...
2020-09-11 11:32:46
387
原创 「Java面试」单例模式的优点&代码示范
优点:保证在程序运行过程中,当前类只有一个实例节省内存保证程序运行过程中避免多个实例所造成的逻辑错误代码示范:public class JDBCUtil { //注意上锁 public static JDBCUtil getJdbcUtil(){ if(jdbcUtil == null){ ...
2020-09-04 21:49:26
73
原创 「毕设日志」项目简介
为什么要选择Go微服务网关?亿级流量的网站架构中,网关是一个核心。网关作为一个接入层,承载了流量转发、负载均衡、服务限流、熔断降级等功能要成为一个后端开发者网关的重要性不言而喻,懂得设计网关才能知道架构的精妙所在,才能深入的了解微服务的架构Go借助本身高并发的优势,本身更适合企业级高效开发网关网关应该具备那些功能支持多种协议代理:tcp/http/webs...
2020-09-04 21:40:57
120
原创 「Java面试」为什么static方法中只能调用static方法
原因如下:静态方法可以通过“类名.方法”的方式调用,正如main方法的调用方式。若静态方法中包含了非静态方法,如下代码的f(),由于f()的类对象可能未被实例化,为了避免这种情况,于是静态方法只能调用静态方法。就是想用非静态,也可以,解决2的问题,直接this.f()也是不行,将方法的对象实例化。import java.io.*;import java...
2020-09-04 20:03:58
1997
1
原创 「Java面试」ArrayList和LinkedList的区别
数据结构不同ArrayList是Array(动态数组)的数据结构。LinkedList是Link(链表)的数据结构。资源消耗、执行效率效率不同ArrayList和LinkedList在性能上各有优缺点,都有各自所适用的地方对ArrayList和LinkedList而言,在列表末尾增加一个元素所花的开销都是固定的。但如果在内部数组中...
2020-09-01 16:08:01
141
原创 「Java基础面试题」Servlet的生命周期
Servlet运行在Servlet容器中,其生命周期由容器来管理。Servlet生命周期通过javax.servlet.Servlet接口中的init()、service()和destroy()方法来表示。Servlet 生命周期可被定义为从创建直到毁灭的整个过程。以下是 Servlet 遵循的过程:Servlet 通过调用init ()方法...
2020-08-27 23:26:10
134
原创 332. 重新安排行程
给定一个机票的字符串二维数组 [from, to],子数组中的两个成员分别表示飞机出发和降落的机场地点,对该行程进行重新规划排序。所有这些机票都属于一个从 JFK(肯尼迪国际机场)出发的先生,所以该行程必须从 JFK 开始。说明:如果存在多种有效的行程,你可以按字符自然排序返回最小的行程组合。例如,行程 ["JFK", "LGA"] 与 ["JFK", ...
2020-08-27 21:56:58
73
原创 IDEA设置代码提示对大小写不敏感
setting->Editor->General->Code Completion取消勾选Match case2020.2中文版演示:
2020-08-27 09:48:24
442
原创 Servlet3.0、4.0的新特性
概述3.0新特性:异步处理的支持:支持异步处理之后Servlet线程将不会因为等待业务处理完成而产生阻塞。支持异步处理之后,Servlet线程可以将耗时的操作委派给另一个线程进行操作,自己则在不生成响应的情况下返回容器。当面对业务处理耗时较长的情况时,这将大大降低对服务器资源的占用,并提高并发处理的速度。新增的注解支持:3.0版本增加了若干注解,用于简化Serv...
2020-08-26 07:10:10
1158
原创 zsh终端改造计划
昨天降级重装了系统,很不幸数据全部丢失了,这个血淋淋的教训警醒了我要重视数据的备份。不过我这个人向来都是乐观豁达。正所谓“塞翁失马焉知非福”,旧的不去新的不来,我就借着这个折腾电脑环境的机会整点儿活儿。整整终端zsh插件的安装。补课!zsh是什么?zsh是一种shell,但并不是系统默认的shell,如果连shell都不知道请出门左转去百度或者查菜鸟教程...
2020-07-05 06:21:46
156
原创 「IDEA」自动引入参数、变量、重命名快捷键
自动引入接收值变量:option+command+v自动引入参数:option+command+p重构,重命名:shift+f6
2020-06-26 22:17:19
999
原创 面试题 02.01. 移除重复节点
编写代码,移除未排序链表中的重复节点。保留最开始出现的节点。示例:输入:[1, 2, 3, 3, 2, 1]输出:[1, 2, 3]输入:[1, 1, 1, 1, 2]输出:[1, 2]提示:链表长度在[0, 20000]范围内。链表元素在[0, 20000]范围内。代码:有点简单/** * Defi...
2020-06-26 16:57:57
53
原创 面试题 16.18. 模式匹配
你有两个字符串,即pattern和value。 pattern字符串由字母"a"和"b"组成,用于描述字符串中的模式。例如,字符串"catcatgocatgo"匹配模式"aabab"(其中"cat"是"a","go"是"b"),该字符串也匹配像"a"、"ab"和"b"这样的模式。但需注意"a"和"b"不能同时表示相同的字符串。编写一个方法判断value字符串是否匹配pa...
2020-06-22 10:44:58
60
原创 剑指 Offer 48. 最长不含重复字符的子字符串
请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。实例:输入: "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。输入: "pwwkew"输出: 3解释: 因为无重复字符的...
2020-06-21 21:00:40
131
原创 Go语言中的slice
slice的底层是数组,是对数组的viewGo语言中的变量类型大多都是值类型,而slice是引用类型。官方文档中描述slice是对数组的一种view(视图)下面我门看slice的一个特殊例子:arr := […]int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}s1 := arr[2:6]s2 := s1[3:5]那么...
2020-06-21 14:03:18
242
原创 Go语言中的complex(复数)
简介Go语言作为一门通用型语言,很罕见的吧complex作为了内建函数。可见其试图涉及的领域是很广泛的。在Go语言中complex有两种类型,complex32和complex64。complex64中实部和虚部是32位的,在complex128中实部和虚部是64位的。复数回顾这里我裂开了我们写一个函数尝试...
2020-06-20 21:36:15
5381
原创 10. 正则表达式匹配(需要好好看,得细品)
给你一个字符串s和一个字符规律p,请你来实现一个支持 '.'和'*'的正则表达式匹配。'.' 匹配任意单个字符'*' 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖整个字符串s的,而不是部分字符串。说明:s可能为空,且只包含从a-z的小写字母。p可能为空,且只包含从a-z的小写字母,以及字符.和*。示...
2020-06-20 20:26:56
65
原创 Go语言中的指针
Go语言中的指针相对简单,所谓的简单是因为Go语言的指针并不能进行运算,比如说C语言中,获取一个指针之后可以进行加法计算。Go语言中指针可以指向a,也可以指向b但是并不能像C语言一样,通过加1来指向另一个变量。Go语言的参数传递是值传递还是引用传递?Go语言只有值传递一种方式也就是参数在传递时,是以拷贝的形式传递的,修改传递的参数并不影响原来的参...
2020-06-20 02:18:23
112
原创 650. 只有两个键的键盘
最初在一个记事本上只有一个字符 'A'。你每次可以对这个记事本进行两种操作:Copy All (复制全部) : 你可以复制这个记事本中的所有字符(部分的复制是不允许的)。Paste (粘贴) : 你可以粘贴你上一次复制的字符。给定一个数字n。你需要使用最少的操作次数,在记事本中打印出恰好n个 'A'。输出能够打印出n个 'A' 的最少操作次数。...
2020-06-19 00:01:05
135
原创 1028. 从先序遍历还原二叉树
我们从二叉树的根节点 root开始进行深度优先搜索。在遍历中的每个节点处,我们输出D条短划线(其中D是该节点的深度),然后输出该节点的值。(如果节点的深度为 D,则其直接子节点的深度为 D + 1。根节点的深度为 0)。如果节点只有一个子节点,那么保证该子节点为左子节点。给出遍历输出S,还原树并返回其根节点root。示例 :...
2020-06-18 10:34:17
63
原创 1014. 最佳观光组合
给定正整数数组A,A[i]表示第 i 个观光景点的评分,并且两个景点i 和j之间的距离为j - i。一对景点(i < j)组成的观光组合的得分为(A[i] + A[j] + i- j):景点的评分之和减去它们两者之间的距离。返回一对观光景点能取得的最高分。示例:输入:[8,1,5,2,6]输出:11解释:i = 0...
2020-06-17 18:49:26
104
原创 2. 两数相加
给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -&...
2020-06-16 04:16:58
61
原创 18. 四数之和
给定一个包含n 个整数的数组nums和一个目标值target,判断nums中是否存在四个元素 a,b,c和 d,使得a + b + c + d的值与target相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。示例:给定数组 nums = [1, 0, -1, 0, -2, 2],和 target...
2020-06-15 22:52:45
50
原创 14. 最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。示例:输入: ["flower","flow","flight"]输出: "fl"输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。说明:所有输入只包含小写字母a-z代码:就硬解...
2020-06-15 21:35:34
63
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人