- 博客(108)
- 资源 (2)
- 收藏
- 关注

原创 ThreadLocal内存泄漏分析
全文目录介绍结构小结ThreadLocal.set方法ThreadLocal.get方法小结内存泄漏问题问题描述弱引用remove回收线程如何避免ThreadLocal被收集介绍结构Thread类里面 有一个成员变量,ThreadLocalMap。 /* ThreadLocal values pertaining to this thread. This map is maintained * by the ThreadLocal class. */ ThreadLocal.
2021-05-17 14:56:30
467
原创 泛型学习笔记
使用泛型的好处可以静态检查例如想在集合中插入integer类型,如果错误插入String,则会报错不用强转泛型类和泛型接口编译器会进行泛型擦除。 默认擦除为Object,也可以通过extends 指定擦除的方法。泛型类派生子类泛型接口泛型方法泛型方法需要在修饰符和返回值中间添加泛型标志。 泛型类的使用泛型的方法并不是泛型方法。泛型标志可以时泛型接口中没有出现的类型。 例如接口中只有类型T, 泛型方法中可以使用类型K...
2021-12-25 22:43:32
188
转载 Openfeign原理
openfiegnhttps://blog.youkuaiyun.com/lengxiao1993/article/details/103511695/feignhttps://cloud.tencent.com/developer/article/1009212启动类添加EnableFeignClient标签,扫描所有添加了FeignClient注解的接口spring容器为这些接口实现代理类接口被调用时,使用代理类执行该方法,封装成requestspring自动注入的时候,为feign注入负载均衡的cl
2021-12-19 11:52:40
173
原创 MySQL45讲 笔记
36讲为什么临时表可以重名在上一篇文章中,我们在优化join查询的时候使用到了临时表。当时,我们是这么用的:create temporary table temp_t like t1;alter table temp_t add index(b);insert into temp_t select * from t2 where b>=1 and b<=2000;select * from t1 join temp_t on (t1.b=temp_t.b);这里,我需要先帮你厘清一
2021-12-08 21:56:10
493
原创 MySQL45讲 笔记
第二讲reodo log和binlog的区别以及存储流程 使用两阶段的好处是,避免出现数据一致性问题。redolog写入成功后,如果binlog写入失败,则事务回滚,binlog未作修改可以保证一致性如果binlog写完,redo log还没commit前发生crash,那崩溃恢复的时候MySQL会怎么处理?我们先来看一下崩溃恢复时的判断规则。如果redo log里面的事务是完整的,也就是已经有了commit标识,则直接提交;如果redo log里面的事务只有完整的prepare,则判断对应
2021-11-29 21:42:24
979
原创 SQL 优化
数据库分层连接层提供与客户端的连接服务层提供各种用户使用的接口,如select 接口。提供SQL优化器引擎层提供各种存储数据的方式,Mysql默认的是InnoDB(支持事务,行锁)存储层存储数据SQL优化原因性能低, 执行时间长, 等待时间长, SQL语句欠佳(主要是连接查询), 索引失效, 服务器参数不合理(如线程数)SQL 语句编写过程select … from … join … on … where … group by … having … order by … l.
2021-11-23 21:02:54
225
原创 SpringBootApplication复合注解
众所周知,SpringBootApplication是一个复合注解,包括@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan三个部分。SpringBootConfiguration@Configurationpublic @interface SpringBootConfiguration {}这个注解就是@Configuration注解套了一层皮,很明显表示当前类是一个注解类,我们可以在主启动类里进行Bean的注入,
2021-11-17 22:18:33
1582
原创 动态代理手撸记录
import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;import java.sql.Timestamp;public class Main { public static void main(String[] args) { // 被代理对象 SuperMan superMan = new Super
2021-11-11 15:48:31
454
原创 回溯法---
算法核心void backtracking(参数) { if (终⽌条件) { 存放结果; return; } for (选择:本层集合中元素(树中节点孩⼦的数量就是集合的⼤⼩)) { 处理节点; backtracking(路径,选择列表); // 递归 回溯,撤销处理结果 }}联系leetcode22括号。设计一种算法,打印n对括号的所有合法的(例如,开闭一一对应)组合思路主要思路还是上面的方法。终止条件分为两种,一种是列举完所有的括号后,将结果存入到最终的集合中;因为
2021-07-04 16:55:15
96
原创 git踩坑
新项目 origin有readme文件本地没有导致报错pull 报错在传远端之前,pull远端代码报错具体报错11:06 Git Pull Failed POST git-upload-pack (225 bytes) warning: no common commits remote: Enumerating objects: 3, done. remote: Total 3 (delta 0), reused 0 (delta 0) From https://git
2021-05-28 11:21:16
638
原创 Jmeter 动态参数 并发测试
介绍创建线程组,里面有三个配置。一个是CSV数据文件设置,这个就是写动态参数的地方。另外两个是常规的配置,编辑请求和显示结果。Thread Group配置线程数就是执行多少个HTTP请求。需要注意的是,如果参数数量大于线程数,则只会执行与线程数数量相同的请求,配置文件中多余的参数将不会执行;如果参数数据量小于线程数,部分参数会重复执行。RampUp 时间表示启动时间,这里配置0就是立即启动。循环次数,选择1,不重复执行。CSV 配置原件这里修改了这两个地方。第一个选择文件的地址,第二个选
2021-04-01 10:37:44
745
原创 springboot 分文件夹管理日志级别
需求对于开发时的日志,隔离级别一般都是debug,但是如果都是debug会产生很多库日志。实现##分目录创建日志级别logging: level: root: info com.cl.fun.**: debug结果
2021-03-06 11:20:22
261
原创 rocketmq怎么 配置控制台UI界面
下载源码下载源码,使用编译器打开其中console项目打包使用mvn打包启动运行jar包,命令。端口是服务启动的端口,后面的地址是mq服务的地址java -jar rocketmq-console-ng-2.0.0.jar --server.port=12581 --rocketmq.config.namesrvAddr=127.0.0.1:9876运行使用localhost:12581访问ui界面...
2021-02-17 10:40:06
1642
原创 mybatis clob问题
问题后台使用java.sql.Timestamp存储时间对象,返回前端前是时间对象,之后变成了时间戳解决方法使用jackson进行时间的转换@Configurationpublic class JacksonObjectMapperConfig { @Bean(name = "mapperObject") public ObjectMapper getObjectMapper() { ObjectMapper om = new ObjectMapper();
2021-01-11 16:27:31
185
原创 mybatis-plus debug级别打印sql日志
mybatis-plus: configuration: # 打印执行的SQL语句及返回的数据 log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
2020-12-29 16:57:06
3949
原创 java ssl https设置 springboot
生成keystore使用Java的keytool工具生成证书创建证书教程先创建证书库再创建证书然后将证书导入到JVM中创建证书库keytool -genkey -alias jukey -keyalg RSA -keystore d:/key/jukeystore注意:-alias:别名,这里的castest 为别名; -keystore:指定证书库存放位置,这里存放到d:/cas目录下的keystore文件中,证书库不需要后缀名此时,需要输入一些相关信息,要注意的是,名字与姓氏需要
2020-11-09 10:40:52
158
原创 CAS实战
import java.util.ArrayList;import java.util.List;public interface Account { Integer getBalance(); void withdraw(Integer amount); static void demo(Account acount) { List<Thread> ts = new ArrayList<>(); for (int i
2020-11-08 22:50:52
208
原创 自定义starter
要点创建工程创建autoconfig类封账配置内容,再创建一个start调用封装类。先创建一个空的project,为starter创建一个maven模块(类型不要求),为自动配置模块创建一个springboot模。starter无代码,只调用依赖 <dependencies> <dependency> <groupId>com.ju.starter</groupId> <a
2020-11-04 23:07:51
132
原创 gateway原理
流量进入网关后先进入handler mapping 进行匹配,再通过handler 进行处理。处理请求的时候经过过滤器链处理一系列过滤器进请求处理,最终到达被代理的服务。GatewayProperties用于从配置文件中加载前缀为 spring.cloud.gateway的配置信息spring gateway 接收请求流程解析配置文件,生成元素为Route对象的集合。然后根据request中的URL匹配其中的某条Route对象。↓↓↓然后将路由信息放到上下文同时获取对应的handle.
2020-11-04 10:50:14
6197
转载 jrabel
教程教程链接链接: https://pan.baidu.com/s/1XCpEA9E27GqpvWyx3SYIdw 提取码: s72q
2020-11-02 16:50:50
171
原创 spring gateway路由
routes: - id: FEBS-Auth-Social uri: lb://FEBS-Auth predicates: - Path=/auth/social/** filters: - name: Hystrix args: name: socialfallback fallbackUri: forward:/fallback/FEBS-Auth - id: hello_baidu
2020-10-31 16:28:31
612
原创 hive 数据库从derby替换为mysql
1.替换安装驱动将mysql驱动放置到lib上修改hive-site 配置文件在mysql数据库中创建hive,设置字符为latin1否则会报错https://www.cnblogs.com/mjiang2017/p/10683271.html
2020-09-23 16:24:36
241
原创 hadoop外部浏览器访问50070正常可以访问8088不可以!但是用vm浏览器就可以
问题描述虚拟机可以通过主机名访问50070端口和8088端口,但是宿主机只能通过主机名访问50070端口,8088端口。问题原因host配置问题或者是端口绑定主机的错误。(排除hadoop的yarn-site.xml配置和防火墙等问题)解决方案/etc/hosts配置文件。 这里取消127.0.1.1的配置,否则8088端口的服务会绑定此ip上;主机名对应的ip绑定为物理ip,localhost不做修改。使用 netstat -tpnl | grep java 命令,查看8088绑定的ip地址
2020-09-16 18:21:35
1325
原创 springboot创建socket
依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org
2020-09-15 16:04:44
1569
原创 docker mysql 容器持久化
1。 运行镜像docker run -v ~/cl/mysql:/var/lib/mysql --name juMysql -e MYSQL_ROOT_PASSWORD=123456 -d -p 3306:3306 mysql2f7f96b7fa36757f8199f808985cdc0b69ffa08fd585362144047982ed7dde37进入容器docker exec -it 2f7f96b7fa36 /bin/bash进入命令行mysql -uroot -p123456创建数据
2020-09-13 20:46:38
171
原创 多线程交替执行
场景描述线程ABC交替执行,A执行完B执行,B执行完C执行,C执行完A执行。算法Lock的多条件变量public class Main { public static void main(String[] args) { ReentrantLock lock = new ReentrantLock(); Condition first = lock.newCondition(); Condition second = lock.newCond
2020-08-07 16:02:13
148
原创 线程顺序执行
场景描述线程A和线程B顺序执行,先执行线程A再执行线程B。算法使用lock锁public class Main { public static void main(String[] args) { ReentrantLock lock = new ReentrantLock(); Condition condition = lock.newCondition(); new Thread(()->{ try
2020-08-07 11:26:05
275
1
原创 哲学家问题的解决
复现筷子public class Chopsticks {}哲学家public class Philosopher { public Philosopher(String name, Chopsticks left, Chopsticks right) { this.name = name; this.left = left; this.right = right; } private String name; /
2020-08-05 14:09:56
759
原创 存储过程
环境设置查看,设置环境换了show variables like ‘%sch%’set global event_scheduler =1;存储过程编辑功能,定时修改scada_demo中 部分设备的状态值。CREATE DEFINER=`root`@`localhost` PROCEDURE `changeScadaDemoRandomlyProd`()BEGIN #Routine body #Routine body goes here... #Routine body goes
2020-08-05 10:15:27
135
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人