- 博客(30)
- 收藏
- 关注
原创 JVM程序CPU爆表问题排查 - 线程篇
文章目录@[toc]使用 JVM Jsatck 命令定位使服务器 CPU 爆炸的类 & 方法。首先给出一段示例代码:使用 top 命令查看服务器资源占用情况使用 Jvm jps 命令确认占用CPU过高的程序使用 Jvm jstack 命令打印出 dump 堆栈信息进入 top 使用 shift + h 查看占用 CPU 较高的线程号使用打印出的 dump 信息查看线程信息。总结使用 JVM Jsatck 命令定位使服务器 CPU 爆炸的类 & 方法。CentOS 7 服务下首先给出
2021-01-17 19:32:38 722
原创 MySQL 字段操作(表已建立)
MySQL 字段操作(表已建立)alter table [表名] [操作类型] [列名] [字段类型(长度)] [约束条件];操作类型add (添加)modify (修改)drop 删除字段类型drop 操作可不传add、drop 必传约束条件not null (不为NULL - 非必选项)default ‘默认值’ (默认值 - 非必选项)comment ‘字段注释’ (字段注释 - 非必选项)个人博客...
2020-11-16 18:30:01 183
原创 GOF设计模式之单例模式 - 懒汉式
Java 单例模式单例模式保证了 系统内存中该类只存在一个对象,节省了系统资源,对于一些需要频繁创建销毁的对象,使用单例模式可以提高系统性能。如:工具类、常用到的大对象单例模式的几种写法懒汉式饿汉式(本篇文章介绍)使用静态内部类实现单例模式使用枚举来实现单例双重校验锁饿汉式如字面描述「饿汉式」就意味在很 饿 不需要我们手动创建, 同时饿汉式也是最简单、用的最多的方式。好处: 是提前创建无需我们手动创建 & 考虑线程安全问题坏处: 提前创建造成空间
2020-11-14 18:34:41 185
原创 GOF23设计模式之单例模式 - 懒汉式
Java 单例模式单例模式保证了 系统内存中该类只存在一个对象,节省了系统资源,对于一些需要频繁创建销毁的对象,使用单例模式可以提高系统性能。如:工具类、常用到的大对象单例模式的几种写法懒汉式(本篇文章介绍)饿汉式使用静态内部类实现单例模式使用枚举来实现单例双重校验锁懒汉式如字面描述「懒汉式」就意味在很懒,对象只有在使用的时候才会创建非线程安全public class Singleton{ // 创建一个本类的局部变量 private st
2020-11-14 18:18:31 187
原创 SQL 字段添加自增报错
SQL 字段添加自增报错[23000][1062] ALTER TABLE causes auto_increment resequencing, resulting in duplicate entry ‘1’ for key ‘PRIMARY’.通过报错信息可以看出来, 添加自增的字段的「最小值」必须大于等于 1。我们可以手动先将小于 1 的值修改为大于 1 。然后添加自增完成后在手动恢复原来值。如:当我们添加自增就会报错。可以先修改 ID 值在添加自增后,在修改回原来值就OK了。
2020-11-02 23:44:37 989
原创 Maven 项目获取 resources 下的文件
记录一个坑,公司中有个业务需求要获取 resources 下的配置文件中的配信息。正常编码时通过String filePath = XXX.class.getClassLoader().getResource("xxx.xx").getPath(); File f = new File(filePath)是可以正常获取到文件的但是打成 jar 包后就获取不到了。原因是打成 jar 后资源在 jar(jar本身也是一种压缩文件格式)文件内中。Java 没法直接获取到 jar 中的文件。必须通过流.
2020-05-08 22:19:02 509
原创 JS -- Vuex 的基本使用
添加 vuex 的依赖cd /你的 vue 项目# 在项目下安装 vuexnpm install --save vuexvue 中配置 vuex打开 main.jsimport Vue from 'vue'import App from './App.vue'// 引入 vueximport Vuex from 'vuex'// 加载 vuex 到项目中Vue.use(V...
2020-02-19 19:14:28 216
原创 Vue 的高级特性 provide/inject
Vue 是模块化的开发框架,各个组件存在与不同的父节点下(如下图)。provide/inject 主要解决组件中通信的问题,如下图 E 和 I 之间要通信。必须通过 C、A、D 三个中间节点。我创建了 7 个节点结构如下:其中将 A 节点中的 color 设置为共享变量。<script> export default { name: "node...
2020-02-19 14:57:13 280
原创 Vue 中父子组件的双向绑定
vue 提供了父子组件间的双向绑定的指令。我这里演示的只是学习使用。使用插槽方式。子组件代码如下<template> <div> <input v-model="msg"><br> {{ msg }} <!-- 接收来自父组件的插槽,并返回给子组件的 msg 值 --> ...
2020-02-18 16:56:12 600
原创 Vue 安装 vue-cli 脚手架 & 创建 vue 项目
安装 node.jsWindowswindows vue vue-cli 安装macos前往 node.js 官网下载 MacOS 版然后无脑下一步。安装完成后验证一下。node -v # 验证 nodejs 版本npm -v # 验证 npm 版本切换 npm 为淘宝源。// 切换到淘宝镜像npm config set registry https://regis...
2020-02-17 14:56:15 113
原创 明明白白 Java 位运算
提醒首先你要明确一点,所谓的位运算。是相对与二进制而言。如:3 ^ 2。就是 11 和 10 之间的计算。^ 位运算符public class Hello{ public static void String(String str[]){ System.out.println(2 ^ 3); }}// 输出 1 解释:前面我们提过位运算是针对二进制而言的。以下是 2、...
2020-02-12 12:10:24 104
原创 Springboot2 整合 Redis
添加 redis 依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>...
2020-02-09 00:06:12 163
原创 一篇文章 Redis 从 0 到 1
目录文章目录目录Redis 简介 & 安装简介安装Redis 的启动、停止和连接Redis 配置Redis 的单线程+多路IO复用三种 IO 概念Redis 中的五种数据类型 & 基本操作StringHashList(列表)SetZSetRedis 的基本指令Redis 事务Multi、Exec、discard。Redis 事务的三条指令。Redis 事务中的错误Redis 监视...
2020-02-09 00:00:22 1877
原创 JVM GC 常用指令以及,GC 常用工具
-XX:+PrintGC 输出 GC 日志-XX:+PrintGCDetails 输出 GC 的详细日志-XX:+PrintGCTimeStamps 输出 GC 的时间戳(以基准时间的形式)-XX:+PrintGCDateStamps 输出 GC 的时间戳(以日期的形式,如 2013-05-04T21:53:59.234+0800)-XX:+PrintHeapAtGC 在进行 GC 的前后...
2020-02-04 18:35:44 302
原创 简单理解正向代理和反向代理
正向代理:我知他不知反向代理:他知我不知有三台计算机 A、B、CA:客户端B:代理服务器C:服务端。正向代理我是客户端 A 要访问 Google(在 C 上) 但是因为种种原因无法访问。但是我知道 B 可以访问到。然后我发送请求拜托 B :“麻烦帮忙访问一下,访问成功后把消息在转发给我。” B 很痛快的帮了这个忙。这个时候 Google( C 服务端) 只知道是 B 访问了他,并...
2020-02-01 14:49:28 199
原创 Centos7 firewall基本操作
1. firewall服务的启动停止启动服务: systemctl start firewalld.service关闭服务: systemctl stop firewalld.service运行状态: systemctl status firewalld.service禁止开启启动:systemctl disable firewalld.service开机启动:systemctl en...
2020-02-01 14:47:00 136
原创 (一)Nginx 自定义安装
前期准备创建 nginx 安装目录。 mkdir /annie/nginx/ # 个人习惯。目录路径可以自定义安装配置 nginx 时的必须模块yum -y install pcre-develyum install -y zlib-devel1. 下载 nginxwget http://nginx.org/download/nginx-1.16.1.tar.gz # 下...
2019-12-27 17:01:55 226
原创 Springboot2 整合mail 发送邮件
引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId></dependency>编写 application.properties 文件#邮...
2019-12-18 10:13:34 260
原创 Docker 基本操作及安装 Tomcat
Docker 注册中心 Docker 官网的 Images 网站。下载 Tomcatdocker pull tomcat查看已安装的 imagesdocker images运行 Tomcatdocker run -p 8000:8080 tomcat查看当前处于运行状态的容器docker ps停止容器运行docker stop Contai...
2019-12-11 15:58:50 128
原创 Git SSH 连接 GitHub(二)查看日志,版本切换,分支管理
文中演示的所有操作都在 Windows 下。前提你要定位到你的项目目录下,保证含有 .git 文件夹查看日志(输入法英文状态下按 q 退出查看日志)git log 显示默认(默认主分支)分支日志的详情信息git log --pretty=oneline 显示默认分组的简要信息git log --all 查看全部分支全部信息git log -nX x 代表一个数字。可以随意替换例...
2019-10-29 15:14:53 429
原创 Git SSH 连接 GitHub(一)安装git,创建项目,clone 项目,删除文件,增加文件
文中演示的所有操作都在 CentOS 7 下。安装 git# 安装命令yum -y install git# 查看 Git 版本git --version通过 ssh 链接 GitHub先使用命令 ll -a 查看用户名目录下是否有 .ssh 文件夹存在。(如果有就删除)Linux根目录就是 ~ 或者 /root# 设置你的用户名,这个名字是你提交代码会显示的名字...
2019-10-28 15:59:46 339 1
原创 SpringBoot2 整合mybatis-puls & 代码生成器
修改 pom.xml 文件,加入新的依赖 <!-- MyBatis-Plus 生成代码插件--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> ...
2019-10-23 17:10:41 124
原创 深度理解 i++ 和 ++i
我们都知道 i++ 与 ++i 都是自增操作。大多数也知道两种 “先加” 和 “后加的区别”。例如下方代码:public class Hello{ public static void main(String[] args) { int i = 0; System.out.println(i++); int j = 0; System.out.println(++j); ...
2019-10-23 17:09:47 230
原创 JVM 字节码操作 ASM 框架简单讲解
什么是 ASM ?ASM 是一款直接操作字节码(即 class 文件)的框架,可以都已生成好的字节码进行改动或者生成。类似框架有 javassist 相对 ASM 简单许多。谁在用 ASM ?大名鼎鼎的 FastJSON & CGLIB说在前面官网 API 文档网上关于 ASM 都是一些零散的资料,框架本事并不是很难。但是要彻底学习需要一段时间。建议理解就好。日常工作...
2019-10-23 17:08:17 398
原创 JavaAgent技术之添加注解
什么是JavaAgent(Java探针)?你可以理解为Java版AOP。只不过这个AOP项目启动时运行一次JavaAgent 只在项目启动时运行一次并且是java文件编译成class文件后才运行。所以不会影响到class文件。JavaAgent 是寄生项目。即需要依赖一个正常项目才能运行我这里演示使用 IDE 为 IDEA ,项目为maven普通项目结构,可以很方便的帮助我们创建一个 J...
2019-09-01 11:15:29 1033
原创 使用Spring实现权限控制&&动态为注解赋值
首先这不是一个介绍或者使用SpringSecurity的博客。他是使用自定义注解和拦截器实现的权限管理(只供学习不可用于生产环境)技术栈:SpringBoot 2.1.6MySQL5.7大体思路:使用拦截器拦截请求,在拦截器中使用 HandlerMethod 类获取当前请求方法上的自定义权限注解。判断是否有此访问权限。动态改变注解值(实际生产环境中不同角色拥有的权限不可能一直不...
2019-09-01 11:11:25 1115
原创 Java ServerSocket 实现聊天室功能(简易版)
大体实现功能可以选择房间,可以与房间中的用户进行实时的交流说在前面的话:serverSocket.accept() 会形成阻塞scanner.hasNextLine() 和 scanner.nextLine() 也会形成阻塞windows 下需要打开telnet服务。请自行百度实现思路:用户连接上服务器后选择房间号,进入房间。进入房间后会向房间中所有的用户打印出用户进入房间的提醒...
2019-09-01 11:10:04 809
原创 SpringBoot拦截器读取流后不能再读取(详解)
在SpringBoot的拦截器中通过流 ( request.getInputStream() ) 的方式读取body中传来的数据会导致controller接收不到值。这个问题其实就是一个流读取的问题,众所周知在Java中input流只能读取一次,主要原因是通标记的方法来判断流是否读取完毕(读取位 -1就是流读取完毕)解决这个问题我能想到两种方式通过修改标记的方式 ( inputstream...
2019-09-01 11:08:12 2878 5
原创 Secureity5 整合 editor.md 上传图片报错:X-Frame-Options
Secureity5 整合 editor.md 在上传图片时总是报错Load denied by X-Frame-Options: http://127.0.0.1:9002/uploadeFile?guid=1550410830006 does not permit framing.SecurityError: Permission denied to access property "do...
2019-09-01 11:05:15 494
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人