Keeling1720
码龄3年
  • 282,788
    被访问
  • 371
    原创
  • 17,304
    排名
  • 377
    粉丝
关注
提问 私信
  • 加入CSDN时间: 2019-03-07
博客简介:

越努力越幸运的博客

查看详细资料
  • 6
    领奖
    总分 2,153 当月 123
个人成就
  • 获得222次点赞
  • 内容获得176次评论
  • 获得902次收藏
创作历程
  • 14篇
    2022年
  • 270篇
    2021年
  • 30篇
    2020年
  • 68篇
    2019年
成就勋章
TA的专栏
  • 假装在写算法
    39篇
  • JVM
    5篇
  • Linux
    4篇
  • 腾讯云
    2篇
  • Redis
    23篇
  • Nginx
    7篇
  • java基础
    6篇
  • vue
    11篇
  • mybatis-plus
    7篇
  • springboot
    32篇
  • maven
    2篇
  • JavaWeb
    41篇
  • MyBatis
    10篇
  • SpringMVC
    12篇
  • Spring
    6篇
  • JavaScript
    32篇
  • node.js
    13篇
  • 小程序开发
    13篇
  • 软件下载和配置
    1篇
  • HTML5+CSS
    41篇
  • 日常坑自己
    2篇
  • MongoDB
    17篇
  • NoSQL
    17篇
  • Excel
  • Android学习笔记
    1篇
  • 计算机网络
    7篇
  • python网络数据采集笔记
  • SQL笔记
    32篇
  • OpenCV
    2篇
  • darknet
    1篇
  • ros笔记
    17篇
  • Qt笔记
    15篇
兴趣领域 设置
  • 大数据
    mysql
  • 后端
    架构
  • 服务器
    linux
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Mysql求取超过经理收入的员工信息

题目:现有Employee表如下:员工和经理都有自己的Id,而员工特有一个ManagerId对应的是经理的Id。先要编写一段mysql代码查询员工收入超过他们经理的员工的姓名。例如上表我们应该输出的结果如下:解题思路:这里有个比较需要注意的点就是,要用两张Employee表来进行查询。我们给第一张Employee表取名为A,第二张取名为B。通过查询每个员工的经理信息(A.ManagerId = B.Id),并进行对比操作(A.Salary > B.Salary)。源码如下:select
原创
发布博客 2022.02.11 ·
449 阅读 ·
0 点赞 ·
0 评论

Mysql求第N高的薪水

Mysql求第N高的薪水先来个简单的:假如有表如下:我们来一个求最高的薪水,那么代码其实应该一下子就能写出来:select salaryfrom EmployeeORDER BY salary descLIMIT 0,1那如果是求第二高的呢?select distinct salaryfrom EmployeeORDER BY salary descLIMIT 1,1这里有个点需要注意一下就是,假如前两个最高的值都为100,那么,逻辑上我们并不能将第二个100看成第二高,而是
原创
发布博客 2022.02.10 ·
641 阅读 ·
0 点赞 ·
0 评论

系统的直接内存

文章目录直接内存定义直接内存的基本使用内存溢出直接内存的释放及其原理直接内存定义直接内存(Direct Memory):直接内存是系统的直接内存,常见于NIO操作时,用于数据缓冲区。分配回收成本较高,但读写性能高,不受JVM内存回收管理。下面,我们说一下啊为什么使用直接内存读写的性能会比较高。请看下图:这里我们知道,我们的Java是运行在我们的虚拟机中的,通过虚拟机命令再去间接调用系统的内核函数,即我们上面看到的用户态跟内核态。(可以简单想象成,Java代码运行后调用本地方法区的代码,然后本地方
原创
发布博客 2022.01.28 ·
1100 阅读 ·
0 点赞 ·
0 评论

StringTable的性能调优

文章目录StringTable的性能调优1、通过-XX:StringTableSize=桶个数调整2、考虑是否将字符串对象入池StringTable的性能调优1、通过-XX:StringTableSize=桶个数调整我们前面说过StringTable是靠我们的HashTable来实现的。即,当我们的空间足够大的时候,我们的数据就会比较分散,查询的效率也会因此降低,反之,当我们的空间比较小的时候,我们的数据就会比较集中,查询的效率也会因此提高。当然了,StringTable 的空间大小并不是越小越好,太
原创
发布博客 2022.01.26 ·
168 阅读 ·
0 点赞 ·
0 评论

JVM的内存结构(下)——堆和方法区

文章目录JVM的内存结构4、堆4.1、定义4.2、内存溢出4.3、内存诊断5、方法区5.1、定义5.2、组成5.3、内存溢出5.4、运行时常量池5.5、StringTable(串池)JVM的内存结构4、堆4.1、定义堆(Heap):通过 new 关键字创建出来的对象都会使用堆内存。特点:1、线程共享,堆中对象都需要考虑线程安全问题2、有垃圾回收机制4.2、内存溢出废话不多说,代码来一波。先来一个堆内存溢出的例子:import java.util.ArrayList;import jav
原创
发布博客 2022.01.21 ·
810 阅读 ·
0 点赞 ·
0 评论

JVM的内存结构(上)——程序计数器、虚拟机栈、本地方法栈

文章目录JVM的内存结构1、程序计数器(PC Register)2、虚拟机栈(JVM Stacks)2.1、定义2.2、栈内存溢出2.3、线程运行诊断3、本地方法栈(Native Method Stacks)JVM的内存结构1、程序计数器(PC Register)作用:记住下一条jvm指令的执行地址如下图:我们打的每一条java代码,其实都是在底层执行JVM的指令。每条指令都有其对应的地址,前面说过了,解释器的作用就是逐条执行我们的代码(JVM指令),那么,解释器怎么知道下一条要执行的指令是哪条呢?
原创
发布博客 2022.01.21 ·
906 阅读 ·
0 点赞 ·
0 评论

JVM简介

文章目录JVM简介1、什么是JVM2、JVM的组成部分JVM简介1、什么是JVMJVM:Java Virtual Machine(java虚拟机),是java的运行环境。(java二进制字节码的运行环境)使用JVM的好处是:1、跨平台2、自动内存管理与垃圾回收机制3、多态那么,jvm、 jre 和 jdk 的区别是啥呢?请看下图:普通用户只是运行java程序的话,只需要装jre即可。开发人员则需要安装jdk。要想长远发展与更好地开发,我们就得学好我们的JVM,理解底层的实现原理。这里
原创
发布博客 2022.01.21 ·
137 阅读 ·
0 点赞 ·
0 评论

将SpringBoot项目部署到腾讯云

文章目录将SpringBoot项目部署到腾讯云1、下载MySql2、导入sql文件3、下载JDK4、将本地程序打包成jar5、腾讯云部署jar将SpringBoot项目部署到腾讯云注意:1、如果已经下载好MySql和JDK,可以直接跳过1、3步骤。但是不要忘记步骤2哦。2、如果已经有Mysql但是想要换版本号,切记不要直接下载,要先把旧版本的Mysql删除干净再重新下载。1、下载MySql这里,我们将mysql下载到我们的/usr/local/目录下。cd /usr/localmkdir
原创
发布博客 2022.01.21 ·
2403 阅读 ·
2 点赞 ·
5 评论

Mysql将Windows数据库转移到Linux

这里我们借助Navicat工具进行演示:使用工具Navicat连接上数据库之后,右键选择我们想要导出的数据库,选择Dump SQL File…选择一个路径导出sql文件。(我把他导出到了桌面,比较好找)导出成功后,我们可以在桌面看到一个叫heartbay.sql的文件,通过XShell直接拖拉到我们的云服务器(这里我放的位置是/root/heartbay/ 目录。然后我们创建一个同名的数据库文件,比如我的叫heartbay。mysql -u root -p#输入密码create databa
原创
发布博客 2022.01.21 ·
776 阅读 ·
0 点赞 ·
0 评论

Linux修改mysql密码

Linux下载mysql后,会给一个初试账号和密码。初始账号默认为root,初试密码是随机生成的,我们可以看一下:cat /var/log/mysqld.log | grep password这里我的初始密码是:wnw=PjFA.2b.(最后这个点也是密码的一部分)我们登录我们的mysql。mysql -u root -p #会提示输入密码#输入我们的密码(wnw=PjFA.2b.)然后我们就可以修改我们的初始密码了。(新密码必须包含大小写字母、数字和特殊符号,缺一不可)ALT
原创
发布博客 2022.01.21 ·
554 阅读 ·
0 点赞 ·
0 评论

Linux下载Mysql

Linux下载Mysql5.x或者8.0详细教程注意:如果已经有Mysql但是想要换版本号,切记不要直接下载,要先把旧版本的Mysql删除干净再重新下载。(本文并未提供删除的步骤,请自行百度)废话少说,我们直接给出详细步骤:这里,我们将mysql下载到/usr/local/目录下。cd /usr/localmkdir mysqlcd mysqlwget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm然
原创
发布博客 2022.01.21 ·
1594 阅读 ·
1 点赞 ·
1 评论

Linux修改Mysql默认端口3306

Linux修改Mysql默认端口3306直接修改我们的/etc目录下的 my.cnf 文件即可。vim /etc/my.cnf然后添加一栏port=[你想要设置的端口号] 即可。(这里把端口号设置为3506)port=3506datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sock然后,保存退出,重启我们的mysql,让配置文件生效即可。systemctl restart mysqld验证是否已经修改了端口号:mysql -
原创
发布博客 2022.01.15 ·
368 阅读 ·
0 点赞 ·
0 评论

MySQL触发器的简单使用教程(代码详细教程以及Nvicat界面操作教程)

文章目录什么是触发器怎么实现什么是触发器触发器是与表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性。什么时候需要用到我们的触发器?答:简单说就是当一张表的记录发生增删改操作的前后,另一张表需要进行相应的增删改操作的时候,我们就需要用到触发器。比如,我有一个鸡汤表,他有一项被收藏数的统计属性叫做collect,同时我有另一张表soup_collect,他用来存放用户收藏的鸡汤的id(soup_id) 和 收藏用户的id信息
原创
发布博客 2022.01.10 ·
357 阅读 ·
0 点赞 ·
0 评论

关于我使用@RequestBody注解遇到的那些坑

关于我使用@RequestBody注解遇到的那些坑1、使用@RequestBody注解的话,不用使用@GetMapping接收请求。2、如果@RequestBody注解接收的是一个字符串,那么这个字符串会自带两个双引号,在使用的时候,我们必须要把双引号去掉。比如:@PostMapping("/admin/wall/username")public Result getWallInfoByUsername(@RequestBody String username){ return Result
原创
发布博客 2022.01.06 ·
393 阅读 ·
0 点赞 ·
1 评论

Vue拦截器报错Uncaught (in promise) TypeError: Cannot read properties of undefined (reading ‘code‘)

如果出现Vue拦截器报错Uncaught (in promise) TypeError: Cannot read properties of undefined (reading ‘code’)。那么,很可能是因为你修改了你的拦截器却没有重启你的前端服务器的原因。重启一下就可以啦。
原创
发布博客 2021.12.22 ·
19591 阅读 ·
1 点赞 ·
0 评论

解决Vue控制台报错:NavigationDuplicated: Avoided redundant navigation to current location

它的提示是 避免到当前位置的冗余导航。 简单来说就是重复触发了同一个路由。解决方法如下:在router文件夹下的index.js文件中添加这几行代码即可:const originalPush = Router.prototype.push//解决报错信息:NavigationDuplicated: Avoided redundant navigation to current locationRouter.prototype.push = function push(location) { r
原创
发布博客 2021.12.11 ·
738 阅读 ·
0 点赞 ·
0 评论

js实现睡眠方法(sleep)

js实现睡眠方法(sleep)如果你不需要用到原函数的this那么这么用。(需要用到this请往下看)//这种用法在doSomething处使用this的话,指向的是匿名函数//3000表示睡眠3s后执行doSomethingsetTimeout(function(){ //doSomething(这里写时间到之后需要去做的事情)}, 3000);这种用法的好处是,你的this还是原函数的this。function sleep (time) { return new Promise((
原创
发布博客 2021.12.08 ·
1132 阅读 ·
1 点赞 ·
0 评论

Redis解决分布式锁

文章目录Redis解决分布式锁什么是分布式锁上锁的解决方案Redis解决分布式锁上锁实战Redis解决分布式锁什么是分布式锁随着业务发展的需要,原先单机部署的系统现在已经演化成了分布式集群系统。即,原先我们用一个服务器就啥也扔进去了,啥也不考虑,反正就一台服务器,啥都在里面。但现在,我们更多的可能是使用Nginx做反向代理,将访问负载均衡到多条服务器中去。但是!正因如此,我们的分布式的系统多线程和多进程分布在了不同的机器上,此时对某台服务器上锁,将使原先单击部署情况下的并发控制锁策略失效,说到这里,大
原创
发布博客 2021.12.04 ·
901 阅读 ·
0 点赞 ·
0 评论

Redis解决缓存雪崩问题

文章目录Redis解决缓存雪崩问题什么是缓存雪崩怎么解决Redis解决缓存雪崩问题什么是缓存雪崩缓存雪崩:在极少时间内,查询大量key的批量过期,导致不停访问数据库,加大服务器的压力,最终服务器奔溃的情况。(他跟缓存击穿的区别是,他是大量key的批量过期;而缓存击穿是热门key过期后被访问量瞬时增大)怎么解决1、构建多级缓存架构:nginx缓存+redis缓存+其他缓存(ehcache等)2、使用锁或队列:用加锁或者队列的方式来保证不会有大量的线程对数据库一次性进行读写,从而避免失效时大量的并
原创
发布博客 2021.12.04 ·
838 阅读 ·
0 点赞 ·
0 评论

Redis解决缓存击穿问题

文章目录Redis解决缓存击穿问题什么是缓存击穿解决方案Redis解决缓存击穿问题什么是缓存击穿缓存击穿:数据库的压力瞬时增大,且redis中并无大量的key过期,redis正常运行的情况下,数据库奔溃了。造成原因:redis的某个key过期了,但却有大量的访问恰好需要用到这个key。解决方案某些key可能在某些时间点被超高并发地访问,是一种非常“热点”的数据。这个时候,需要考虑 缓存被“击穿”的问题。解决方案:1、预先设置热门数据:在redis高峰访问之前,把一些热门数据提前存入到red
原创
发布博客 2021.12.03 ·
801 阅读 ·
0 点赞 ·
0 评论
加载更多