自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JAVA中的反射和动态代理

1.反射概念根据类的名称可以获取类所有的信息(名称,权限,属性,方法)2.使用反射的方式1.Class clazz = object.getClass //通过实例的getClass()方法获取类信息 本质调用public final native Class<?> getClass();直接从jvm方法区去拿二进制文件解析2.Class clazz = Object.class //直接获取 同上3.Class clazz = Class....

2020-10-13 16:43:42 1762 2

原创 BIO和NIO区别(附代码)

首先感谢鲁班学院免费贡献的JAVA精品学习课程,让我白嫖学到了东西!!!一.普通socket1.先来了解一下socket编程,来个Client和Serverpublic class Client { public static void main(String[] args) { Socket socket; try { socket= new Socket("127.0.0.1",9001); Scann

2020-08-22 03:43:45 347

原创 进程中线程使用率偏高问题排查

4. jstack -l 15931 导出java进程栈信息,里面包含线程nid=0x445f和所在的类。3. printf "%x\n" 17503 线程PID 10进制转16进制 0x445f。2. top -H -p 15931 查看进程下的线程。1. top命令查看CPU使用率高的进程。第二种: Arthas方式快捷明了。

2024-02-02 16:48:19 606

原创 tcp连接2小时11分断开问题tcpdump抓包分析

当一个连接被关闭或者因为其他原因需要立即关闭时,一方会发送一个RST包到另一方,另一方接收到RST包后,会立即关闭连接,并丢弃所有待处理的数据。TCP协议中,当一个连接的一方要关闭连接时,它会发送一个FIN包到另一方,表示它已经完成了数据发送,不再需要发送更多数据。当一个TCP连接建立时,一个SYN包会被发送到另一方,接收到SYN包的一方会回复一个ACK+SYN包,确认同步,然后连接建立成功。因此,如果在tcpdump日志中看到Flags [S.],表示这是一个连接建立过程中的SYN包。

2023-10-19 15:29:47 369

原创 Java项目线上问题排查

Java线上问题排查工具

2023-02-16 00:27:10 289

原创 Java对象内存空间大小计算

内存对象大小计算,bitset 1亿key大小计算 bitmap一亿大小计算

2022-12-05 18:41:56 4888

原创 多线程交替输出多种方式实现(附代码案例)

Java多线程编程,AtomicInteger 原子类,LockSupport,Condition和Semaphore,以及wait()和notify()使用案例

2022-08-24 03:31:24 1206

原创 Win10踩坑-开机0xc0000225

之前买了一块新的PCIE固态就把旧固态拆了放在一边,今天想把旧固态装回来拷贝点东西于是拆下来新固态,结果装回新固态的时候就蓝屏提示“恢复,你的电脑需要修复“ ,错误代码0xc00002251.解决办法:F9进入其他启动项2.进入后会出现启动引导(我的自己安装的系统)windows 10windows 10(卷3)启动设置默认卷3.每一个盘符都选择一下试试,确定自己的盘符,然后在设为默认设置就好了......

2022-06-25 23:06:37 3148

原创 计算机网络知识

计算机网络常识梳理

2022-05-11 16:46:44 115

原创 关于MySQL 重做日志的探索

1.MySQL 如何做到数据不丢失的? 答:redo log 重做日志1.重做日志是一种基于磁盘的数据结构,用于在崩溃恢复期间纠正由不完整事务写入的数据2.在正常操作期间,重做日志对由 SQL 语句或低级 API 调用产生的更改表数据的请求进行编码。在意外关闭之前未完成更新数据文件的修改会在初始化期间和接受连接之前自动重播3.默认情况下,重做日志在磁盘上由两个名为ib_logfile0和 的文件物理表示ib_logfile1。MySQL 以循环方式写入重做日志文件官方文档:MySQL :

2022-04-02 17:21:33 1409

原创 git merge回退的常用操作

git reset常用操作记录

2022-02-24 17:06:22 28785 1

原创 win10系统下jdk17的下载与安装

jdk17下载安装教程

2022-02-23 11:01:19 2700

原创 关于MySQL Insert语句事务机制的探索

MySQL的InnoDB下的insert语句和事务分析,深入剖析执行来释疑

2021-12-22 23:49:45 3558

原创 MySQL优化篇

一、查询避坑1.使用like关键字且使用了"左模糊"或者"全模糊"导致索引失效例如:SELECT * FROM user WHERE username like '%三%'2. 组合索引(多列索引)不满足最左匹配原则导致索引失效组合索引最多包含16个字段创建组合索引 (a,b,c)CREATE INDEX idx_a_b_c ON user(a,b,c);SELECT * FROM user WHERE b=1 and c=2;最左匹配原则即(a,b)(a,b,c)

2021-08-19 10:27:57 217

原创 GIT常用命令

一、GIT常用命令1.分支操作1.新建本地分支git branch new_task_A //新建分支git checkout new_task_A //转到该分支git checkout -b new_task_A //新建并转到该分支 -b 无则新建git branch --set-upstream-to=origin/master //将当前分支和远程分支关联git branch -m old_name new_name //修改分支名称2.删除分支...

2021-05-25 10:19:19 149

原创 重新梳理RocketMQ

时时回头总结,技术才能有飞跃!1.RocketMQ的几大功能1.应用解耦2.削峰限流3.消息分发4.分布式一致性保证(分布式事务)应用解耦:我使用的一个场景下单完成后 ,支付后的逻辑 库存中心减库存->订单中心加订单->会员中心加积分对应伪代码:if 支付成功do 减库存do 加订单do 加积分这种情况下代码耦合严重如果有新的逻辑加入代码改动较多,如果其中一个异常要全部回滚,对技术来说不友好这时我们将消息投入到MQ中(怎么投怎...

2021-03-09 17:06:04 254

原创 20s内向mysql表中插入100w数据

接到一个任务,在100w数据环境下做性能测试,先在本地要造100万数据,表是默认InnDB引擎1.改变表的引擎,MyISAM引擎没有事务,速度巨快(先不改变试试InnDB有多慢再决定尝试一波我的方法?)alter table `user` engine=MyISAM;alter table `user` engine=InnoDB;2.创建且执行存储过程CREATE PROCEDURE insert_batch()BEGIN DECLARE n int DEFAULT 1;

2020-11-19 11:50:40 210

原创 SpringBoot+SseEmitter 异步推送消息给前端

一次http请求,后端推送多条数据,http长连接 private static final Map<Long, SseEmitter> SSE_EMITTER_MAP = new HashMap<>(16); @GetMapping("/{id}") public SseEmitter getSseEmitter(@PathVariable Long id) { //0L设置永不超时 SseEmitter sseEmitt

2020-11-18 22:08:53 4215

原创 win10 安装mysql解压包且初始化用户密码

https://www.jianshu.com/p/ea4accd7afb41.下载mysql(我的5.7),解压到本地,配置环境变量2.定义配置文件文件内容:[client]port=3306default-character-set=utf8[mysqld]# 设置为自己MYSQL的安装目录basedir=E:\tools\mysql-5.7.32-winx64# 设置为MYSQL的数据目录datadir=E:\tools\mysql-5.7.32-winx64...

2020-10-30 16:50:21 265

原创 redis知识点总结对比

1.redis特性1). 是一个速度非常快的非关系型数据库2). 可以存储key与5种不同类型值的映射关系3). 可以将键值数据持久化到硬盘中4). 可以使用复制特性扩展读性能5). 可以使用分片来扩展写性能2.redis和其他产品的对比3.redis的五种数据结构4.redis持久化的两种手段1) 快照方式(snapshotting ): 方式一:指定时间段内有 指定数量的写操作执行( point-in-time dump 时间点转...

2020-10-15 01:09:25 359

原创 关于JVM学习的一些知识点

OOM产生原因1)堆溢出(空间不够用)2)虚拟机栈和本地方法栈溢出(栈空间无法扩展时)3)方法区和常量池(生成大量动态类)4)直接内存溢出(默认和堆大小一样,可指定大小使用allocateMemory时产生)内存泄漏对象既不能被回收又不能使用,不可控如IO连接,Socket连接使用完不关闭,此时又不能被垃圾回收应为连接在使用中,造成内存不可控GCRoot 可达性分析法GCRoot根对象来源1)栈中的引用对象2)方法区的静态属性3)方法区常量引用的对象4)本地方法栈中JNI引用的

2020-09-09 01:20:50 154

原创 JVM类加载过程和类加载器

类加载机制1)加载,全限定名获取类的二进制字节流,解析静态结构储存在方法区,在内存中生成Class对象2)验证,验证class字节流符合虚拟机的要求(文件格式,元数据,字节码,符号引用)3)准备,正式为类变量(static)初始化分配内存4) 解析,将常量池内的符号引用替换为直接引用5)初始化,类初始化,执行java代码(static代码块,构造器方法)类加载器双亲委派模型Bootstrap ClassLoader 加载java home,/jdk/lib目录下的包 ...

2020-09-09 00:39:01 142

原创 UML类图关系和设计模式学习

设计模式一、UML相关内容 简介 依赖关系 关联关系 聚合关系 组合关系 泛化关系 实现关系 2.详解2.1 依赖关系依赖(Dependency)关系是一种使用关系,它是对象之间耦合度最弱的一种关联方式,是临时性的关联。在代码中,某个类的方法通过局部变量、方法的参数或者对静态方法的调用来访问另一个类(被依赖类)中的某些方法来完成一些职责。2.2 关联关系关联(Association)关...

2020-07-31 10:43:14 115

原创 IDEA eclipse键模式下的常用快捷键

ctrl+c/v 复制粘贴ctrl+d 删除行ctrl+h 查找项目代码ctrl+g 查找word使用地方ctrl+cc 复制行ctrl+| (安装了resttoolkit)快速查找全局的restful接口ctrl+/ 注释选中行/所在行ctrl+shift+u word大小写转换alt+shift+r 文件重命名(全局改变)ctrl+alt+o 优化导包和格式化代码ctrl+alt+F6...

2020-07-23 14:32:27 340

原创 APIJSON自动化框架学习指南

APIJSON自动化框架学习指南1.springboot2.0+集成基本项目需要的包:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId></dependency><dependency> <groupId>org.springfr

2020-06-29 15:52:32 3749 4

原创 JAVA无锁,乐观锁,悲观锁,并发包内容学习

多线程操作数据时发生结果和预期不一致的问题先来一波不安全操作代码:public class Test implements Runnable{ private static int count = 1000; @Override public void run() { count--; System.out.println(count); } public static void main(String[] args) {

2020-06-19 17:44:15 150

原创 JAVA项目开发,IDEA开发必装的插件

1.阿里巴巴规范插件(Alibaba Java Coding Guidelines)2.MyBatis Helper /MyBatis Code Helper (方便mapper->xml跳转),有代码生成功能3.Lombok 代码简介大法4.jclasslib bytecode viewer 查看java编译的字节码5.junit单元测试6.findbug 可以检查可能出现的bug7.右键 diagrams 查看类关系图8.tools->httpClient 可以当

2020-06-17 10:25:12 261

原创 java 符号运算 |(或运算),^(异或运算),&(与运算)原理讲解

1. | 位或运算符及规则 // | 位或运算, 计算规则:1|0=1,1|1=1,0|0=0,有真则真 int a = 5; // 0000 0101 int b = 3; // 0000 0011 a|= b = 7; // 0000 0111 //|= (或等于) 等价于 a=a|b System.out.println("a|b = "+a);2.^ 异或运算符及规则

2020-06-05 15:27:49 1005

原创 ELK搭建+简单入门

1.下载源文件,解压2.先启动es,bin/elasticsearch.bat测试地址 :http://localhost:9200/3.启动kibana ,bin/kibana.bat测试地址:http://localhost:5601/4.配置logstash,在bin目录下创建logstash.conf文件,里面不要有中文input { file { path => "E:/workspace/projectA/logs/project.lo

2020-05-26 15:47:41 416

原创 mysql执行计划详解以及调优注意事项

1.SQL优化 一般是看走索引还是走全表explain sql可以看到type是优化sql,判断sql的一个关键字眼,具体有多少种类详见这位大佬做的剖析https://blog.csdn.net/qq_20057315/article/details/80902358select id from user where id =1 type const(常量)select id from user where id in(1,2) 或者>,< 符号 ...

2020-05-19 19:13:51 157

原创 SpringCloud高可用的学习

通常高可用不建议把相同服务放到同一台机子上业务服务高可用:将我们的服务注册到eurake和nacos很容易实现,假设client1,client2,client3相同的服务client1: 注册到注册中心8080,8081,8082,上client2: 注册到注册中心8080,8081,8082,上client3: 注册到注册中心8080,8081,8082,上每个注册中心都可以看到同一个服务下有三个ip:端口eureka.client.serviceUrl.defaultZ

2020-05-19 16:52:53 221

原创 ElasticsearchTemplate API内容详解

public interface ElasticsearchOperations { //别名 可理解为标记符号比如日志是按日算的,但是可以取别名标识是1,2月的日志 boolean addAlias(AliasQuery query); boolean removeAlias(AliasQuery query); List<AliasMetaData> queryForAlias(String indexName); //增删改查索引,可理解为修改数...

2020-05-15 17:50:49 2433

原创 RabbitMQ深入理解

1.为什么要使用消息中间件?生产能力远大于消费能力,如支付,支付的请求比较多,但是处理速度很慢,服务器中如果Http请求不能及时处理会消耗内存暂存请求慢慢处理,进而导致内存崩盘,从而我们希望有一个类似队列东西装载请求,能处理请求过多的情况,于是引入中间件2.引入中间工具带来的问题 中间工具分割开了原本100%可靠请求流程,例如:A-->B(RPC或者直连都能实现可靠通信),现在变成了A-->C-->B, C不可靠(宕机,数据传输丢失),怎么保证 A100%到C,而B...

2020-05-14 18:07:07 255

原创 Elasticsearch本地集成学习案例

1.从官网下载文件,解压 我的版本7.3.12.进入bin目录下,运行elasticsearch.bat,启动服务http://localhost:9200 打印信息则服务启动成功3.springboot项目引入pom依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot

2020-05-11 14:56:18 349

原创 docker快速部署一个seata-server+向nacos推送配置

1.docker images查看服务器上有没有seata-server镜像2.没有的话从服务器上拉取镜像docker pull seataio/seata-server:1.1.03.有了镜像之后当然想docker run,但是我们需要自定义一些配置比如:注册到注册中心,数据库配置3.1.指定文件目录 mkdir seata-config 创建注册文件registr...

2020-05-07 17:13:24 5742 1

原创 ThreadPoolExecutor学习

1.先看一波线程池的构造方法public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, ...

2020-04-29 17:57:29 165

转载 SpringCloud GateWay网关断言配置

参考原文:gateway很不错的断言配置教程

2020-04-28 17:30:06 1486

原创 硬杠同步和异步,阻塞和非阻塞概念

网上看了很多解释,部分还举了阿猫阿狗的例子来帮助理解,在我看来都不完全;阻塞和非阻塞:特指具有管道特征的一些操作如IO,通信(通信本质也是IO),在java语言中只有线程才具有阻塞状态,线程5种运行状态请自行查找资料,运行过程中才会出现阻塞状态(如调用sleep(),wait()等),很多人不明白阻塞是什么,要干什么,笔者先讲一下运行: 我们使用线程目的只有一个,让线程帮我做事...

2019-09-17 19:41:34 155

原创 java socket网络通信多对多

public static void serverStart() { try { int number = 1; ServerSocket s = new ServerSocket(SERVERPORT); System.out.println("服务器启动: " + s); whi...

2019-09-16 20:01:12 375

原创 JAVA版CRC16_X25校验算法(由C翻译)

public static String CRC_16(byte [] bytes){ int i,j,lsb; int h=0xffff; for(i=0;i<bytes.length;i++){ h ^= bytes[i]; for(j=0;j<8;j++) {...

2019-09-16 19:58:12 1731

空空如也

空空如也

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

TA关注的人

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