自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 gdb调试工具

基础指令:-g:使用该参数编译可以执行文件,得到调试表。gdb ./a.outlist: list 1 列出源码。根据源码指定 行号设置断点。b: b 20 在20行位置设置断点。run/r: 运行程序n/next: 下一条指令(会越过函数)s/step: 下一条指令(会进入函数)p/print:p i 查看变量的值。continue:继续执行断点后续指令。finish:结束当前函数调用。 quit:退出gdb当前调试。其他指令:run:使用run查找段错误

2021-02-06 21:46:40 127

原创 递归遍历目录

使用opendir closedir readdir stat实现一个递归遍历目录的程序输入一个指定目录,默认为当前目录。递归列出目录中的文件,同时显示文件大小。思路分析递归遍历目录:ls-R.c1. 判断命令行参数,获取用户要查询的目录名。 int argc, char *argv[1] argc == 1 --> ./2. 判断用户指定的是否是目录。 stat S_ISDIR(); --> 封装函数 isFile() { }3. 读目录: read_dir() {

2021-02-06 21:43:19 547

原创 linux操作系统学习三

18P-vim的三种工作模式19P-vim基本操作-跳转和删字符i 进入编辑模式,光标前插入字符a 进入编辑模式,光标后插入字符o 进入编辑模式,光标所在行的下一行插入I 进入编辑模式,光标所在行的行首插入A 进入编辑模式,光标所在行的行末插入字符O 进入编辑模式,光标所在行的上一行插入字符s 删除光标所在字符并进入编辑模式S 删除光标所在行并进入编辑模式x 删除光标所在字符,工作模式不变dw 删除光标所在单词,要求光标在首字母上,如果不在首字母,只会删除当前位置到单词末,工作模式不变

2021-01-31 20:11:47 5854

原创 Linux操作系统学习二

09P-find命令2-exec:将find搜索的结果集执行某一指定命令。find /usr/ -name ‘tmp’ -exec ls -ld {} ;-ok: 以交互式的方式 将find搜索的结果集执行某一指定命令10P-grep和xargsgrep命令:找文件内容grep -r ‘copy’ ./ -n-n参数::显示行号ps监控后台进程工作情况,默认只显示当前可以和用户交互的进程ps aux | grep ‘cupsd’ – 检索进程结果集。下图显示和内核相关进程使用grep

2021-01-31 20:09:42 119

原创 Linux操作系统学习一

01P-Linux命令基础习惯-Linux系统编程date 显示系统当前时间cat /etc/shells 查看当前可使用的shellecho $SHELL 查看当前使用的shell主键盘快捷键:上 Ctrl-p 下 Ctrl-n 左 Ctrl-b 右 Ctrl-f Del Ctrl-d delete 光标后面的Home Ctrl-a first letterEnd Ctrl-e endBackspace Ba

2021-01-31 20:04:01 91

原创 linux日志分析工具

日志是非常重要的系统文件,管理员每天的重要工作就是分析和查看服务器的日志,判断服务器的健康状态。但是日志管理又是一项非常枯燥的工作,如果需要管理员手工查看服务器上所有的日志,那实在是一项非常痛苦的工作。有些管理员就会偷懒,省略日志的检测工作,但是这样做非常容易导致服务器出现问题。那么我们有取代的方案吗?有,那就是日志分析工具。这些日志分析工具会详细地查看日志,同时分析这些日志,并且把分析的结果通过邮件的方式发送给 root 用户。这样,我们每天只要查看日志分析工具的邮件,就可以知道服务器的基本情况,而不用

2021-01-24 21:57:05 1047

原创 MySQL 的“utf8”

MySQL 的“utf8”实际上不是真正的 UTF-8。在 MySQL 中,“utf8”编码只支持每个字符最多三个字节,而真正的 UTF-8 是每个字符最多四个字节。在 utf8 编码中,中文是占 3 个字节,其他数字、英文、符号占一个字节。但 emoji 符号占 4 个字节,一些较复杂的文字、繁体字也是 4 个字节。所以导致写入失败,应该改成 utf8mb4。MySQL 的“utf8”是一种“专属的编码”,它能够编码的 Unicode 字符并不多。在这里 Mark 一下: 所有在使用“utf8”

2021-01-18 09:58:02 1871

原创 linux常用查找日志命令

实时观察日志tail -f test.log查询日志尾部最后10行的日志;tail -n 10 test.log查询10行之后的所有日志;tail -n +10 test.log查询日志文件中的头10行日志;head -n 10 test.log查询日志文件除了最后10行的其他所有日志;head -n -10 test.log查询某一段记录附近的日志cat -n test.log |grep “想要查的日志关键词” 得到关键日志的行号cat -n test.log |ta

2021-01-10 21:41:36 117

原创 spring注解

@Resource与@Autowired注解的区别踩坑者入一、写本博文的原因有些童鞋搞不为什么要用@Resource或者@Autowired,咱们一起研究下@Resource默认按照名称方式进行bean匹配,@Autowired默认按照类型方式进行bean匹配@Resource(import javax.annotation.Resource;)是J2EE的注解,@Autowired( import org.springframework.beans.factory.annotation.Autow

2021-01-03 22:10:43 149 3

原创 mysql查询是否存在优化写法

根据某一条件从数据库表中查询 『有』与『没有』,只有两种状态,那为什么在写SQL的时候,还要SELECT count(*) 呢?无论是刚入道的程序员新星,还是精湛沙场多年的程序员老白,都是一如既往的count目前多数人的写法多次REVIEW代码时,发现如现现象:业务代码中,需要根据一个或多个条件,查询是否存在记录,不关心有多少条记录。普遍的SQL及代码写法如下SQL写法:SELECT count(*) FROM table WHERE a = 1 AND b = 2Java写法:int nu

2020-12-27 20:35:09 1011 1

原创 轮询任务

import org.junit.Test;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.util.concurrent.*;public class LocalTest { private static final Logger log = LoggerFactory.getLogger(LocalTest.class); @Test public void test01()

2020-12-20 21:31:03 1580

原创 mysql注意事项

建表规约【强制】: ① 存储引擎必须使用 InnoDB解读: InnoDB 支持事物、行级锁、并发性能更好,CPU 及内存缓存页优化使得资源利用率更高。【强制】:②每张表必须设置一个主键 ID,且这个主键 ID 使用自增主键(在满足需要的情况下尽量短),除非在分库分表环境下解读: 由于 InnoDB 组织数据的方式决定了需要有一个主键,而且若是这个主键 ID 是单调递增的可以有效提高插入的性能,避免过多的页分裂、减少表碎片提高空间的使用率。而在分库分表环境下,则需要统一来分配各个表中的主键值,从而

2020-12-13 21:05:34 121

原创 线上常见问题排查汇总

**一 线上常见问题定位**常见问题 1:CPU 利用率高CPU 使用率是衡量系统繁忙程度的重要指标,一般情况下单纯的 CPU 高并没有问题,它代表系统正在不断的处理我们的任务,但是如果 CPU 过高,导致任务处理不过来,从而引起 load 高,这个是非常危险需要关注的。 CPU 使用率的安全值没有一个标准值,取决于你的系统是计算密集型还是 IO 密集型,一般计算密集型应用 CPU 使用率偏高 load 偏低,IO 密集型相反。问题原因及定位:1 频繁 FullGC/YongGC查看 gc

2020-12-06 20:12:08 764

原创 mysql随机取记录

1.SELECT * FROM table ORDER BY RAND() LIMIT n;(n为抽取的数量)缺点:数据量大时会比较的慢2.SELECT * FROM table WHERE id >= (SELECT FLOOR( MAX(id) * RAND()) FROM table ) ORDER BY id LIMIT 1;优点:比1快缺点:1.id必须要是唯一2.因为是按顺序排的,所以一次只能随机抽取1个3.id必须是连续的且从1开始,否则概率不相等3.SELECT *F

2020-11-25 17:33:35 172

原创 java.lang.NoSuchMethodError错误比较可能的原因

一、根本原因找不到该方法二、可能导致出现的原因1、有这个类,类里没有这个方法2、类冲突、Jar包冲突、Jar包版本冲突3、有这个类(A),类中也有方法,但在B类中引用了A类,并调用A类的方法,后面修改A类,把该A类的方法返回值类型改变(如将方法返回类型由void类型改成String类型),只部署A类,没有重新部署B类,将导致NoSuchMethodError错误。二、解决方案1.删掉这行使用方法的这行代码2.增加这个方法3.删除冲突类、Jar包,更换冲突的Jar包版本。4.把引用到A类的

2020-11-25 15:28:19 404

原创 防重复提交

1.什么是幂等2.产生原因3.解决方案 ①配置注解 ②实例化锁 ③AOP 切面 ④注解使用案例1.什么是幂等简单来说就是结果一致在我们编程中常见幂等select查询天然幂等delete删除也是幂等,删除同一个多次效果一样update直接更新某个值的,幂等update更新累加操作的,非幂等insert非幂等操作,每次新增一条2.产生原因由于重复点击或者网络重发 eg:点击提交按钮两次;点击刷新按钮;使用浏览器后退按钮重复之前的操作,导致重复提交表单;使用浏览器历史记录重复提交表

2020-11-22 20:46:32 429

原创 Redis的内存淘汰

Redis定义了几种策略用来处理这种情况:noeviction(默认策略):对于写请求不再提供服务,直接返回错误(DEL请求和部分特殊请求除外)allkeys-lru:从所有key中使用LRU算法进行淘汰volatile-lru:从设置了过期时间的key中使用LRU算法进行淘汰allkeys-random:从所有key中随机淘汰数据volatile-random:从设置了过期时间的key中随机淘汰volatile-ttl:在设置了过期时间的key中,根据key的过期时间进行淘汰,越早过期的越优先

2020-11-16 09:01:17 93

原创 lombok 警告

文章目录Generating equals/hashCode implementation but without a call to superclass1、lombok 警告,没有注入父类的字段2、解决方式一:直接在子类上声明 @EqualsAndHashCode(callSuper = true)3、解决方式二[推荐]:在项目的src/main/java根目录下创建lombok配置文件1、config.stopBubbling=true2、lombok.equalsAndHashCode.

2020-11-08 20:37:36 264

原创 java redis 配置使用

1.RedisKitpackage com.seryo.util; import java.util.ArrayList;import java.util.Iterator;import java.util.List;import java.util.Random;import java.util.Set;import java.util.SortedSet;import java.util.Timer;import java.util.TimerTask;import java.ut

2020-10-26 09:09:20 157

原创 SwaggerAPI注解详解

注解@Api:作用在类上,用来标注该类具体实现内容。表示标识这个类是swagger的资源 。参数:tags:可以使用tags()允许您为操作设置多个标签的属性,而不是使用该属性。description:可描述描述该类作用。@ApiImplicitParam:作用在方法上,表示单独的请求参数参数:name :参数名。value : 参数的具体意义,作用。required : 参数是否必填。dataType :参数的数据类型。paramType :查询参数类型,这里有几种形式:

2020-10-18 19:58:56 519

原创 阿里云消息队列demo

阿里云消息队列demo//设置超时时间-可自行调整System.setProperty(“sun.net.client.defaultConnectTimeout”, “10000”);System.setProperty(“sun.net.client.defaultReadTimeout”, “10000”);//初始化ascClient需要的几个参数final String product = “Dysmsapi”;//短信API产品名称(短信产品名固定,无需修改)final String

2020-09-27 11:10:58 298

原创 备忘:linux系统查看log日志

第一步:输入命令ls或者ll(ls -l的简写)第二步:cd 文件名第三步: 重复上述步骤找到要查看的log文件第四步:使用查看命令进行查看/查询日志尾部最后100行的日志/tail -n 100 文件名/查询日志文件中的头100行日志/head -n 100 文件名/按照时间段进行查询/(失效????)sed -n ‘/2020-03-24 00:00:00/,/202...

2020-09-20 19:40:10 303

原创 正则表达式

^:用来匹配字符串的开始$:用来匹配字符串的结尾。[]:方括号中的任何字符都可以匹配,例如[0-9a-z其他]可以匹配‘0-9’数字任意一个,小写字母‘a-z’任意一个,‘其’,‘他’。-:连接符用来表示字符串的范围,如上面的[0-9]+:表示匹配次数出现一个或多个。*:表示匹配该字符出现0个或多个,比如[0-9]*表示匹配0个或多个数字。():在圆括号中的内容将被看做一个整体。(ab)匹配ab。{m}:整数m表示花括号前的字符串出现的次数。比如(ab){2}匹配abab,(ab){1,3}表

2020-09-13 21:42:03 407

原创 使用反射获取类信息

package com.mysec.reflex;import java.lang.reflect.Constructor;import java.lang.reflect.Field;import java.lang.reflect.Method;//通过反射获取方法信息public class getMethodUtil { public static void main(String[] args) { String string = "hell";

2020-09-06 19:47:00 129

原创 言简意赅的来谈谈——jmeter

1. jmeter是什么?jmeter是一款基于Java的压力测试工具。2. jmeter初始环境配置(window10)?1.在桌面左下角搜索框搜索“此电脑”2.右键“属性”——》点击“高级系统设置”——》“环境变量”3.设置如下图系统变量变量值为:你的Jmeter所在地址变量值为:%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib/logkit-2.0.

2020-08-30 20:04:23 99

原创 Redis常用命令

一、什么是RedisRedis是一个使用C语言开发的开源的高性能的key-value存储系统,我们可以把它近似理解为Java Map。简单来讲,Redis是一种NOSQL内存数据库,小伙伴们可不要把它理解为NO SQL(不是SQL),它的全称是Not Only SQL(不仅仅是SQL),换个层面来讲,它是一种非关系型的数据库,它是作为关系型数据库的良好补充,它与传统的MySQL,Oracle不同之处在于,它是通过在内存中读写数据,大大提高了读写速度。可以说,Redis是为了解决网站高并发、高可用、高可扩展

2020-08-16 19:59:41 140

原创 BeanUtils的小坑

org.springframework.beans.BeanUtils存在的问题:会将源对象中字段为null的值,覆盖到目标有 值字段。如下代码:public class Test {public static void main(String []args){ Demo demo=new Demo(); demo.a="aaa"; demo.b="bbb"; Demo demo1=new Demo(); demo1.c="ccc"; BeanUti

2020-07-06 14:30:31 197

原创 Maven小结

一、简单的小问题?    解释之前,提1个小问题。    1.1、假如你正在IDE下开发两个Java项目,姑且把它们称为A、B,其中A项目中的一些功能依赖于B项目中的某些类,那么如何维系这种依赖关系的呢?    很简单,这不就是跟我们之前写程序时一样吗,需要用哪个项目中的哪些类,也就是用别人写好了的功能代码,导入jar包即可。所以这里也如此,可以将B项目打成jar包,然后在A项目的Libra...

2019-12-29 21:28:10 115

原创 Swagger使用

a) maven导入Swagger<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.6.1</version></dep...

2019-12-22 15:21:20 210

原创 简单的JAVA加密方法

文章目录一、工具类md5加密工具类base64加密工具类Bcrypt工具类二、加密测试MD5加密测试base64加密测试SHA加密测试BCrypt加密测试一、工具类md5加密工具类base64加密工具类Bcrypt工具类二、加密测试MD5加密测试base64加密测试SHA加密测试BCrypt加密测试...

2019-12-08 20:50:31 259

原创 问题解决:本地mysql无法连接的解决方法

问题描述突然发现本地mysql无法连接,而其它远程数据库可以连接。提示:2003 mysql连接不上本地10061前端时间用的好好的,突然最近就连不上了。问题跟踪查了一下我的电脑 --》管理 --》服务和应用程序 --》服务发现居然没有mysql问题解决按网上进入到mysql的安装路径中的bin目录下重启的方法发现无法安装。可能是我的系统是window10的原因。最后用管理...

2019-12-01 15:43:58 631

原创 isBlack和isEmpty源码分析

org.apache.commons.lang.StringUtils 类提供了 String 的常用操作,最为常用的判空有如下两种 isEmpty(String str) 和 isBlank(String str)。分析我们通过源码来分析区别:public static boolean isEmpty(String str) { return str == null || str...

2019-11-24 19:37:44 511

原创 Lombok工具使用

1)引入相应的maven包:2)添加IDE工具对Lombok的支持:3)Lombok实现原理:4) Lombok注解的使用:还在编写无聊枯燥又难以维护的POJO吗?洁癖者的春天在哪里?请看Lombok!在过往的Java项目中,充斥着太多不友好的代码:POJO的getter/setter/toString;异常处理;I/O流的关闭操作等等,这些样板代码既没有技术含量,又影响着代码的美观,Lombok...

2019-11-08 14:48:11 223

原创 一些可能让mysql快一点的方法

多线程插入(单表)多线程插入(多表)预处理SQL多值插入SQL事务(N条提交一次)多线程插入(单表)数据里做插入操作的时候,整体时间的分配是这样的:链接耗时 (30%)发送query到服务器 (20%)解析query (20%)插入操作 (10% * 词条数目)插入index (10% * Index的数目)关闭链接 (10%)从这里可以看出来,真正耗时的不是操作,而是链...

2019-11-01 17:11:30 201

原创 分布式锁基于数据库

Java中的锁主要包括synchronized锁和JUC包中的锁,这些锁都是针对单个JVM实例上的锁,对于分布式环境如果我们需要加锁就显得无能为力。在单个JVM实例上,锁的竞争者通常是一些不同的线程,而在分布式环境中,锁的竞争者通常是一些不同的线程或者进程。如何实现在分布式环境中对一个对象进行加锁呢?答案就是分布式锁。分布式锁实现方案目前分布式锁的实现方案主要包括三种:基于数据库基于缓存(...

2019-10-20 20:48:01 266

原创 用Stream类操作数据库读取的结果

在实际使用,从数据库中读取的结果大多是以List集合的形式读取。而使用Stream类可以大大提升我们的开发速度。首先简单介绍一下Stream的原理将要处理的元素集合看作一种流, 流在管道中传输, 并且可以在管道的节点上进行处理, 比如筛选, 排序,聚合等。元素流在管道中经过中间操作(intermediate operation)的处理,最后由最终操作(terminal operation)得...

2019-10-12 16:29:49 1055

原创 Maven 核心概念

Maven核心概念POM(Project Object Model)Maven的生命周期Maven 插件Maven 依赖管理POM(Project Object Model)一个项目所有的配置都放置在 POM 文件中:定义项目的类型、名字,管理依赖关系,定制插件的行为等等POM部分标签<project xmlns="http://maven.apache.org/POM/...

2019-09-02 20:21:00 107

原创 java 内部类

java内部类成员内部类局部内部类匿名内部类静态内部类1.成员内部类public class InnerClass { //成员变量 private String data = "外部类数据";//定义成员内部类class Inner{public void test(){//可以访问外部类的private或静态成员变量Sy...

2019-09-01 21:06:44 74

原创 设计模式之行为模式(其一)

设计模式之行为模式设计模式的目的设计模式分类行为模式分类模板模式、策略、命令、责任链设计模式设计模式的目的:设计模式在某些”场景”下,针对某类”问题”的某种通用的”解决方案”场景:项目所在的环境问题:约束条件,项目目标等解决方案:通用、可复用的设计,解决约束达到目标设计模式的分类:创建型模式:对象实例化的模式,创建型模式用于解耦对象的实例化过程。结构型模式:把...

2019-08-25 20:41:52 221

原创 用JDBC建立连接,管理事务

**使用JDBC建立连接**public static void main(String[] args) throws Exception{Class.forName("com.mysql.cj.jdbc.Driver");//加载MySQL驱动try ( Connection connection = DriverManager.getConnection( ...

2019-08-12 18:17:41 234

空空如也

空空如也

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

TA关注的人

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