
个人开发经验集
文章平均质量分 72
记录在开发中用到的知识点或解决问题的经验汇总
jackaroo2020
不积跬步无以至千里,不积小流无以成江海
展开
-
【项目实战】—— 我们应该如何正确得创建线程池?
spring项目实践中,如何正确选择与创建线程池?原创 2023-05-08 22:58:58 · 1773 阅读 · 0 评论 -
实践_Redis开发规范
Redis 开发规范总结原创 2023-06-29 19:43:39 · 525 阅读 · 0 评论 -
实践_技术文档结构规范
技术文档规范示例说明,技术文档该怎么写原创 2023-06-28 12:50:27 · 257 阅读 · 0 评论 -
实践_数据库规范
数据库设计与开发规范原创 2023-06-27 19:04:49 · 248 阅读 · 0 评论 -
并发编程_SimpleDateFormat 线程安全问题
SimpleDateFormat 线程安全问题原创 2023-05-09 21:13:33 · 182 阅读 · 1 评论 -
Shell脚本速查手册
Shell脚本入门手册原创 2022-11-25 20:57:14 · 3044 阅读 · 0 评论 -
2022-03_shell 如何编写定时任务?
导读crontab命令常见于Unix和Linux的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。通常,crontab储存的指令被守护进程激活。1. crontab 使用步骤(1)、编写定时任务需求脚本,如以下脚本 处理vertica ros to many 问题。脚本需要在 vertica 需要放在vertica mpp 服务器执行。ros_mergetout_task.sh 如下所示:#!/bin/sh#Au原创 2022-03-31 21:45:00 · 2548 阅读 · 0 评论 -
2022-03_arthas 如何热更新线上代码?
导读当线上出问题,可能因为一个简单的判断逻辑写错或者业务逻辑有问题,需要及时修复验证,修改代码,打包上线时间周期长,有没有快速的修复解决办法呢?那今天就主要来介绍下 如何使用 arthas 工具热更新线上代码?1. 什么是Arthas?Arthas 是Alibaba开源的Java诊断工具。详情见http://arthas.gitee.io/2. 如何使用 arthas 工具热更新线上代码?热更新步骤:(1)jad 命令反编译出内存中的字节码,生成class文件。(2) 使用 sc 查找类加载器原创 2022-03-31 21:30:00 · 941 阅读 · 0 评论 -
Spring Bean 定义常见错误案例
Spring Bean 定义常见错误案例使用好 Spring,就一定要了解它的一些潜规则,例默认扫描 Bean 的范围、自动装配构造器等。通过本节案例的分析,我们也可以感受到 Spring 的很多实现是通过反射来完成的,了解了这点,对于理解它的源码实现会大有帮助。例如在案例 3 中,为什么定义了多个构造器就可能报错,因为使用反射方式来创建实例必须要明确使用的是哪一个构造器。案例 1:spring bean 隐式扫描问题案例描述:spring boot 开发项目时,构建一个简单的web 程序示例原创 2021-06-20 23:59:37 · 703 阅读 · 1 评论 -
202105_Linux 脚本编写实践常用命令总结
commandsource filepath 使当前shell读入路径为filepath的shell文件依次执行文件中的所有语句$0 shell的名称pwd -P 显示出实际路径,而非使用链接路径jq 读取处理json文件#config=$(echo demo.json | jq -r --arg key "key" '.data[] | select(.key == "key") | .value')function read_json_file(){ fil原创 2021-05-15 09:27:14 · 213 阅读 · 0 评论 -
02_代码加锁,不要让“锁”事成为烦心事
I. 代码加锁1.加锁前要清楚锁和被保护的对象是不是一个层面的静态字段属于类,类级别的锁才能保护;而非静态字段属于类实例,实例级别的锁就可以保护。2.加锁要考虑锁的粒度和场景问题在方法上加 synchronized 关键字实现加锁确实简单,也因此我曾看到一些业务代码中几乎所有方法都加了 synchronized,但这种滥用 synchronized 的做法:一是,没必要。通常情况下 60% 的业务代码是三层架构,数据经过无状态的 Controller、Service、Repository 流转到数原创 2021-03-15 22:54:03 · 375 阅读 · 0 评论 -
01_使用并发工具类库,线程安全就高枕无忧了吗
I. 使用并发工具类库问题1.没有意识到线程重用导致用户信息错乱的 Bug一是,只知道使用并发工具,但并不清楚当前线程的来龙去脉,解决多线程问题却不了解线程。比如,使用 ThreadLocal 来缓存数据,以为 ThreadLocal 在线程之间做了隔离不会有线程安全问题,没想到线程重用导致数据串了。请务必记得,在业务逻辑结束之前清理 ThreadLocal 中的数据。2.使用了线程安全的并发工具,并不代表解决了所有线程安全问题二是,误以为使用了并发工具就可以解决一切线程安全问题,期望通过把线程不安原创 2021-03-13 23:35:31 · 295 阅读 · 0 评论 -
Linux_命令经验集
1. vi 使用技巧编辑在命令行中输入 vi +26 samp.txt 命令直接打开文件到达 26 行,在 vi 编辑器中也可以输入:set number 这个命令可是在编辑器左边显示行号。快速导航i 将工作方式从“命令模式”更改为“输入模式”,并在当前光标位置开始插入内容。a 除了是光标之后开始插入内容,与上面的效果是一样的。o 在光标的下一行位置开始插入内容。删除x 删除当前光标的字符。dd 删除当前行 (是的,整行内容!)下面看可怕的部分:30dd 从当前行开始删除以下 30原创 2020-11-24 13:59:59 · 195 阅读 · 0 评论 -
Kubectl_命令经验集
1.查看帮助kubectl --help2.查看镜像docker images |grep <sts_name>3.替换镜像版本号kubectl edit sts <sts_name>4.重启服务kubectl delete po <server_name>5.进入容器kubectl exec -it bash6.查看服务实时日志kubectl logs -f7.显示 pod 的详细信息kubectl describe pod ...原创 2020-11-24 13:54:43 · 1049 阅读 · 0 评论 -
Git_命令经验集
1. git commit 修改最后一次提交的注释信息? git commit --amend2. git 合并多个 Commit?# 编辑n次提交记录git rebase -i HEAD~n# 撤销修改,回到没有开始操作合并之前的状态git rebase --abort原创 2020-11-24 13:52:31 · 108 阅读 · 0 评论 -
Kafka_命令经验集
1. 查看所有 topic 列表./kafka-topics.sh --zookeeper {ip}:2181 --list2. 创建 topic 主题./kafka-topics.sh --create --zookeeper {ip}:2181 --replication-factor 1 --partitions 1 --topic {topic_name}3. 创建生产者消息./kafka-console-producer.sh --broker-list {ip}:9093 --topi原创 2020-11-24 13:49:40 · 944 阅读 · 0 评论 -
2020-11_技术经验集
1. 如何刷新本地的DNS缓存?# 管理员权限打开cmd命令窗口ipconfig /flushdns2. windons怎么快速打开hosts文件?快捷组合键win+r呼出“运行”程序在运行框中输入drivers,然后“确定”在弹出的文件夹中,打开etc文件夹etc文件夹内可见HOSTS文件,右键“打开”3. vi 使用技巧编辑在命令行中输入 vi +26 samp.txt 命令直接打开文件到达 26 行,在 vi 编辑器中也可以输入:set number 这个命令可是在编辑原创 2020-11-24 13:16:33 · 562 阅读 · 0 评论 -
开发经验集
1. java 1.7 新规范, 可以在数值内加下划线,以增强可读性。不能在数值的前和后加下划线不能在小数点前后加下划线不能在多个连续非数值数字间加下划线2. 什么是 CAS 机制?CAS(Compare and Swap)比较并替换,CAS机制中使用了3个基本操作数:内存地址V,旧的预期值A,要修改的新值B。更新一个变量的时候,只有当变量的预期值A和内存地址V当中的实际值相同时,才会将内存地址V对应的值修改为B。CAS的缺点:CPU开销过大在并发量比较高的情况下,如果许多线程反复尝原创 2020-10-24 18:01:53 · 198 阅读 · 0 评论 -
2020-09_Git 使用规范流程
Git 使用规范流程在开发过程中,遵循一个合理、清晰的GIT使用流程,是至关重要的。否则,每个人都提交一堆杂乱无章的commit,会增加后期协调和维护的复杂度。分支提交流程图示 分支合并流程图示 第一章 分支管理一 分支命令及说明主分支 (master)master 为主分支,用于部署生产环境的分支master 分支由develop或hotfix分支合并而来,任何时间都不能直接修改其代码合并到 master 分支的代码,必须保证充分的测试tagtag 为ma原创 2020-09-16 14:39:30 · 335 阅读 · 0 评论 -
2019-08_mysql自增ID起始值设置
1、Integer 转为String类型,使用toString()函数,报错,需养成良好规范使用下面的语句:versions.get(i)+"";2、mysql自增ID起始值修改方法alter table users AUTO_INCREMENT=10000;3、windows解决端口占用问题netstat -ano | findstr 8090(端口)taskkill /pid ...原创 2019-06-18 15:56:29 · 346 阅读 · 0 评论 -
2019-05_IDEA提升开发效率集锦
idea快捷键环境windows 版本,快捷键选择如下:1、如何快速创建接口实现类?将鼠标放在接口的名称处按 Alt+Enter 键鼠标左键单击:Implement interface ,进入创建实现类的名字以及指明其所在的包的界面。选择好之后,点击ok即可完成! 参考文章...原创 2019-04-25 13:52:07 · 198 阅读 · 0 评论 -
2019-04_Git实现github和gitlab账号SSH免密配置
1、 生成秘钥$ cd ~/.ssh/# 命令输入完,需自定义命名为:id_rsa_gitlab和id_rsa_githubssh-keygen -t rsa -C "33999***@qq.com"ssh-keygen -t rsa -C "33999***@company.com"2、添加秘钥# 把专用密钥添加到 ssh-agent 的高速缓存中: ssh-add ~/.ssh...原创 2019-04-12 14:53:49 · 1221 阅读 · 0 评论 -
2019-03_windows系统快速关闭占用端口
1、查看端口占用情况:netstat -aon|findstr “8080”2、查看是哪个应用占用tasklist|findstr “9088”3、关闭进程taskkill /pid 1244 -f如图所示:原创 2019-03-31 23:29:33 · 344 阅读 · 0 评论 -
2018-09_Java应用导致CPU飙升分析记录
top查看进程占用资源情况top2.查看线程占用情况top -H -p pid3.查找java的堆栈信息 将线程id转换成十六进制printf "%x\n" 120240将堆栈信息打印到日志jstack 52779 >>test.log查看日志信息cat test.log...原创 2018-09-14 15:10:51 · 212 阅读 · 0 评论 -
2020-07_开发经验集
1、问题描述:生成报告到指定文件夹,没有则创建目录文件夹。// 文件目录String path = "D:/report";File f = new File(path);if (!f.exists()) { f.mkdirs();}2、问题描述:maven打包跳过单元测试。<build> <plugins> <plugin> <groupId>or原创 2020-07-14 14:00:46 · 216 阅读 · 0 评论