
工作知识点记录
记录工作中出现的散碎知识点
努力前行的小coder
左手JAVA右手GO
展开
-
记录一次优化过程
最近,优化一次数组去重的操作,虽然比较简单,但是还是记录下ex:1//数组去重func RemoveRepByLoop(slc []int) []int {result := []int{}for i := range slc { flag := true for j := range result { if slc[i] == result[j] { flag = false break } } if flag { result =...原创 2021-04-25 19:22:39 · 390 阅读 · 0 评论 -
关于etcd中集群和zookeeper集群的leader选举总结记录
首先,这两者的选举都是采用过半选举的机制(因此,一般选择奇数布置)一: etcd集群中的raft算法如何负责选举?(以三个节点为例子) 1.首先,在三个节点启动的时候,首先进入到candidate(候选者)状态,然后进行投票选举,这个时候,所有的节点都会在本地创建一个term的属性,并初始化为0.表示还没有开始选举投票,然后每个节点都会设置一个随机数的倒计时(150~300ms),当这个倒计时结束的时候,第一个倒计时结束的节点会率先发起投票,并且投票给自己即(vote = 自己本身)的投...原创 2020-12-24 15:48:05 · 884 阅读 · 0 评论 -
定时清理mysql表数据
因为我们开发的系统,需要记录操作日志,短短的时间内,整个日志表就会有很多数据进来,有些数据基本没有啥用了 ,于是需要写一个定时任务来定期处理这些数据(业务要求数据只保留三个月),所以我开始第一时间想到两个方案: 一是在代码中写一个定时器,每天12点自动删除日志表中的数据 二是使用mysql 自带的事件, 最后综合考虑下 还是使用mysql的事件 因为代码少,并且是mysql自带的,那处理mysql数据再好不过了.下面记录下,真的超级简单,网上有很多版本,什么写一个存储过程, 在写一个事件定时调存储过程删..原创 2020-09-09 10:03:43 · 4877 阅读 · 4 评论 -
(易忘点)事务隔离级别
说到这个,我们有必要知道什么叫事务:作为单个逻辑单元执行一系列操作,要么完全执行,要么完全不执行。事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。事务有四个属性,称为ACID属性:1、原子性(Atomicity):事务是一个原子单位,要么全部执行,要么全部不执行。2、一致性(Consistent):事务的开始和结束,数据都必须保持一致状态。...原创 2019-01-24 11:03:44 · 213 阅读 · 0 评论 -
记录Redis实现分布式锁必须遵循原则
一般在分布式项目中,如何保证数据的完整性以及安全性是我们必须要考虑的,基于这个原因,就出现了分布式锁.一般提到锁 基本就是为了处理数据的安全问题.今天记录下关于分布式锁. 分布式锁一般有三种实现方式: 1.数据库的乐观锁 2.Redis实现分布式锁 3.Zookeeper的分布式锁.今天主要是讲述第二种,基于Redis实现分布式锁一个分布式锁是否可用,它的前提需要以下四个条件: 1.无论什么时候锁只能是一个客户端拥有(互斥性) 2.无论什么时候不能出...原创 2020-06-05 09:10:55 · 725 阅读 · 0 评论 -
关于ftp和sftp对文件处理
最近分到一个需求做一个关于ftp和sftp对文件的处理,但是我们只是简单做一个转发,并不需要具体下载到某个具体路径,其中最难处理的就是中文乱码这一块,下面记录下,以便日后可以复用。FTP工具类package com.yaic.utils;import java.io.File;import java.io.IOException;import java.io.InputS...原创 2019-08-20 14:46:14 · 821 阅读 · 0 评论 -
关于一道static面试题的理解
周末,我一小学弟问我一道面试题,是关于static的 ,我为了给他讲解清楚,写了一个测试,然后给他解释下我的理解首先,我写了两个类BaseTest 和TestA,TestA继承BaseTest截图如下:运行main方法后,控制台输出:首先我们需要明确以下2点:1.static代码块是在类初始化时就被虚拟机执行的;2.main方法是静态方法,是...原创 2019-07-01 11:09:49 · 303 阅读 · 0 评论 -
如何反编译WAR包并把class文件再反编译回java文件
不知道大家工作中有没有碰到处理一些老项目的时候,有时候上面的领导直接给你一个WAR包,然后让你去处理出来里面代码,故曰:熟悉项目,此时你会想:what?这咋搞,那么下面我记录一下我是如何处理的(每个人处理方式不同,只要问题解决了,我觉得都是很ok的)1.下载jar包和反编译工具 jar包: TdeCompile.jar(链接: https://pan.baidu.com/s/...原创 2019-06-24 10:17:25 · 3453 阅读 · 0 评论 -
解决eclipse集成lombok这个jar包导致相关注解不起作用的问题
使用eclipse时候一般我们在项目中用到了lombok这个jar包的时候,却发现注解不起作用。我们需要maven仓库中找到对应的jar包,然后在文件栏上方输入cmd。出现黑窗口,然后我们运行这个jar包,如图:之后,会弹出一个一个框如图所示:我们还需要去我们的eclipse目录中找到eclipse.ini文件:打开文件在最后会出现这2行,如果没有 那就自己手动添加...原创 2019-07-02 16:54:42 · 1257 阅读 · 0 评论 -
Win7x64下TortoiseSVN中打patch后出现中文乱码的解决
在工作中,经常从一个环境到另外一个环境升级,我们需要打patch,我在打patch时候出现注释中文乱码,起初我以为我项目编码有问题,发现编码也是utf-8,然后我就想应该是TrtoiseSVN再打patch时候 出现了编码不一致,最后在系统变量里面增加一个设置:变量名称:LANG变量值:zh_CN.UTF8然后,就好了。出现的原因:我的文件之中含有不是utf-8编写的,所以导致而成...原创 2019-06-12 10:41:21 · 851 阅读 · 0 评论 -
记录java.util.Collections.unmodifiableList()使用
一般情况下对于我们自定义的ava对象中private类型变量一般不提供set方法来保证数据不被修改,但是如果你的对象List成员只要你提供get方法后,就可以随意add、remove改变其结构,这样显然跟我们的本意是不一样的,这个时候Collections就提供了一个静态方法unmodifiableList,他就可以可以达到目的。首先我们去看下这个方法:public stati...原创 2019-05-28 18:32:41 · 973 阅读 · 0 评论