![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java工作日常
文章平均质量分 77
PreciousLife
莫忘少年凌云志,曾许java第一流0_o
展开
-
AES 128位CBC加密解密,IV不固定
安全检查时要求账号和密码加密后才能存到数据库中,要求加密算法如下:1)分组密码算法:AES(密钥长度在128位及以上)(GCM或CBC模式)2)流密码算法:AES(密钥长度在128位及以上)(OFB或CTR模式)、chacha203)非对称加密算法:RSA(2048位及以上)、ECC(256位以上)4)哈希算法:SHA2、SHA35)密钥交换算法:DSA/DH(密钥长度2048位及以上)、ECDH(密钥长度223及以上)6)HMAC(基于哈希的消息验证码)算法:HMAC-SHA2因此将原来普转载 2020-08-10 14:20:51 · 4338 阅读 · 0 评论 -
java.io.EOFException: Can not read response from server. Expected to read 4 bytes
查看后台kibana日志,发现访问数据库偶尔会出现异常:网上有很多类似的案例,查了下,原因如下:经过查询,应该是连接池的连接一段时间没有活动筋骨,mysql服务端会单方面断开这个连接。客户端继续使用这个僵尸连接就会出错。查看mysql实例的配置my.cnf,其中wait-timeout参数设置为20秒,由于新上线还没多少客户使用,所以这个设置对于这种不活跃的场景太短了。直接删除这个...原创 2020-02-13 11:52:27 · 13744 阅读 · 0 评论 -
git出问题的时候,这些命令可能能帮到你
Git 强制回退到某个版本 git reset --hard 139dcfaa558e3276b30b6b2e5cbbb9c00bbdca96 Git 强制提交 git push -f -u origin branch Git Stash Git stash show -p stash@{0} git stash list ...原创 2020-01-16 21:29:37 · 375 阅读 · 0 评论 -
更加高效便捷的终端体验!!Oh my zsh+iTerm2
写在前面最终效果图:ImageInitIterm本文严重抄袭自:https://www.jianshu.com/p/9c3439cc3bdb因排版和原文中的一些bug,参照搜索引擎和原文有了本篇文章。需要注意的是,如果您经常有使用command +来放大字体,那么这个主题可能会产生样式上兼容性的问题。可以只安装oh my zsh,后面的步骤都忽略掉(当然也没有这样的样式了)。...原创 2020-01-02 16:37:17 · 388 阅读 · 0 评论 -
关于java 单元测试Junit4和Mock的一些总结
最近项目有在写java代码的单元测试,然后在思考一个问题,为什么要写单元测试??单元测试写了有什么用??百度了一圈,如下:软件质量最简单、最有效的保证; 是目标代码最清晰、最有效的文档; 可以优化目标代码的设计; 是代码重构的保障; 是回归测试和持续集成的基石。由于开发经验有限,可能说的不太对,但是是我目前的个人的观点,写单元测试,有时候确实可以发现bug,但是发现bug次数很少,而...原创 2019-03-11 16:43:39 · 1071 阅读 · 0 评论 -
Junit测试Controller(MockMVC使用),以及JUnit Generator使用方法
一、单元测试的目的 简单来说就是在我们增加或者改动一些代码以后对所有逻辑的一个检测,尤其是在我们后期修改后(不论是增加新功能,修改bug),都可以做到重新测试的工作。以减少我们在发布的时候出现更过甚至是出现之前解决了的问题再次重现。 这里主要是使用MockMvc对我们的系统的Controller进行单元测试。 对数据库的操作使用事务实现回滚,及对数据库的增删改方法结束后将会还远数...原创 2019-03-12 14:03:14 · 4811 阅读 · 0 评论 -
JAVA线上排查问题的利器--Arthas
Java诊断工具Arthas1. Arthas简介Arthas是阿里开源的一个线上java诊断工具,发现阿里还是挺喜欢开源一些技术的,造福人类。昨天试用了一下,发现真是强大,解决了我工作两年的很多困扰,有点相见恨晚的感觉。根据官网的说明,它能解决下面的问题:这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?我改的代码为什么没有执行到?难道是...原创 2019-03-27 14:06:15 · 561 阅读 · 0 评论 -
mysql中explain的type的解释以及常见索引失效的情况
导语:很多情况下,有很多人用各种select语句查询到了他们想要的数据后,往往便以为工作圆满结束了。这些事情往往发生在一些学生亦或刚入职场但之前又没有很好数据库基础的小白身上,但所谓闻道有先后,只要我们小白好好学习,天天向上,还是很靠谱的。当一个sql查询语句被写出来之后,其实你的工作只完成了一小半,接下来更重要的工作是评估你自己写的sql的质量与效率。mysql为我们提供了很有用的辅助...原创 2019-04-16 15:55:31 · 7181 阅读 · 1 评论 -
索引失效的几种情况
1、 最好全值匹配——索引怎么建我怎么用分析三次查询均使用到索引。2、 最佳左前缀法则——如果索引了多列,要遵守最左前缀法则。指的是查询要从索引的最左前列开始并且不跳过索引中的列。分析:前提条件: 表中已添加复合索引name,age,pos 第一次执行缺少name,查询条件复合索引最左侧name缺少,违反了最佳左前缀法则,导致索引失效,变为ALL,全表扫描。 同...转载 2019-05-10 16:53:20 · 8301 阅读 · 2 评论 -
图数据库比较
转载 2019-08-04 20:09:46 · 192 阅读 · 0 评论 -
定时任务的配置规则
一个定时任务表达式有5、6、7个组成,由空格分隔的时间元素。****************************************分隔符****重要内容已标红****从左至右,七位元素的含义如下:0 15 10 * * ? *1.秒(0–59)2.分钟(0–59)3.小时(0–23)4.月份中的日期(1–31)5.月份(1–12或JAN–DEC)6.星期中的日期...转载 2019-09-11 20:33:38 · 1871 阅读 · 0 评论 -
mybatis批量更新数据三种方法效率对比
探讨批量更新数据三种写法的效率问题。实现方式有三种,一种用for循环通过循环传过来的参数集合,循环出N条sql,另一种 用mysql的case when 条件判断变相的进行批量更新 还有一个是用ON DUPLICATE KEY UPDATE进行批量更新下面进行实现。注意第一种方法要想成功,需要在db链接url后面带一个参数 &allowMultiQueries=...原创 2019-03-19 18:44:02 · 167049 阅读 · 27 评论 -
如何设计一个高并发系统
目录(1)一道面试题的背景引入(2)先考虑一个最简单的系统架构(3)系统集群化部署(4)数据库分库分表 + 读写分离(5)缓存集群引入(6)引入消息中间件集群(7)现在能hold住高并发面试题了吗?(8)本文能带给你什么启发?(1)一道面试题的背景引入这篇文章,我们聊聊大量同学问我的一个问题,面试的时候被问到一个让人特别手足无措的问题:你的系统如...原创 2019-03-07 17:28:58 · 432 阅读 · 0 评论 -
idea中SQL语句提示SQL Dialect is Not Configured
idea中SQL语句经常提示SQL Dialect is Not Configured,主要是我们没有配置数据库在File---->Setting--->Languages & Frameworks--->SQL Dialects中,选择对应的数据库,如MySQL,之后点击保存即可。这样的一个好处还有一个,就是idea直接可以识别你数据库中的字段了,按着c...原创 2019-03-01 16:20:27 · 16782 阅读 · 2 评论 -
IDEA解决maven中jar包冲突
前言 我相信,来到这里的你一定曾经被maven的jar包冲突困扰过。现在,阿福带着你使用IDEA彻底结局后顾之忧!工具 众所周知,IDEA为我们提供了maven视图,让我们首先切换到这个视图! 看到如下的样子你已经成功了一半!接下来,在你想要分析的模块上右键选择show Dependencies,当然,快捷键是有的!ctrl+alt+s...原创 2018-09-06 09:47:29 · 2356 阅读 · 0 评论 -
Idea下Juint 单元测试实践
单元测试用的包:junit-4.1.jar本质上就是提供了一个方便且功能强大的接口,省去了你写main方法的麻烦。package JunitPractice;public class Calculator { public int add(int x,int y){ return x+y; } public int divide(int x,i...原创 2018-08-27 11:12:07 · 851 阅读 · 0 评论 -
免费下载jar包的方法
最近做东西时,需要一些jar包,但是因为公司防火墙的原因不能maven外网的东西,有时候连下载都会被屏蔽,CSDN倒是可以下载jar包,不过都要积分啊!!!不太舍得的说。。。。。http://www.mvnjar.com/这个网站可以搜到大多你想要的jar包...原创 2018-08-21 14:30:33 · 2357 阅读 · 2 评论 -
查看内存占用,查看CPU占用,比较简单的命令,netstat -anp详细代表啥、ps -ef详细代表啥
平常那些linux命令,用着挺熟练的啊,什么 netstat -anp ,什么ps -ef啊,但是这条命令具体是指什么,来看下netstat -anp 查看网络状态,显示所有,显示ip,显示端口号ps -ef 查看所有进程,标准格式显示数据ps -aux 查看所有进程,BSD格式显示数据(可以查看CPU,内存)ps -aux --sort -rss 内存降序ps -aux --...原创 2018-08-16 14:41:43 · 3040 阅读 · 0 评论 -
多线程爬虫 用jsoup爬杭州房价
初学者学爬虫可以玩玩我做的这个小demo,原理就是用了jsoup这个小玩意,数据源是房天下的数据,杭州的房价,总共爬了100页。三个类,超简单的,一个是爬虫demo,另一个是简单的开发商类,里面存放了这个开放商有多少套房源,均价多少,总价多少,方便后面对所有开放商的均价做了个排行。import lombok.Data;import lombok.SneakyThrows;import...原创 2018-08-16 00:23:03 · 458 阅读 · 0 评论 -
注册腾讯云域名绑定服务器
申请的国外服务器对我们自己来说,其实一个IP很好记,但是想让别的访问网站的人的话,一个好记的域名还是很有必要的。而且在国内注册域名方便搜索引擎搜索,尤其是自己的博客。进入腾讯云网站购买域名,地址:https://cloud.tencent.com/act/domainsales?from=dt一般选择com后缀的域名,新户注册可享受大优惠,当然如果不是新户的话,选择全民普惠的即可。点击想买...原创 2018-11-14 15:53:30 · 903 阅读 · 0 评论 -
微信抢红包算法实现(JAVA)
简介网上说的有两种比较公平的算法,一种是二倍均值法,一种是线段切割法。下面我们介绍下两种算法的实现:二倍均值法原理剩余红包金额M,剩余人数N,那么:每次抢到金额=随机(0,M/N*2)保证了每次随机金额的平均值是公平的假设10人,红包金额100元第一人:100/10*2=20,随机范围(0,20),平均可以抢到10元第二人:90/9*2=20,随机范围(0,20),平均可以...原创 2018-11-30 17:16:03 · 6433 阅读 · 3 评论 -
jenkins安装配置实现自动继承打包部署(Tomcat,jetty,maven,git)(一)
一、安装1.1 安装清单1.JDK2.jenkins&Tomcat3.maven4.git1.2 JDK 安装// 安装jdk [root@svn local]# rpm -ivh jdk-8u77-linux-x64.rpm//配置环境变量[root@svn local]# cat /etc/profile.d/jdk.sh export...原创 2018-12-07 13:34:30 · 465 阅读 · 0 评论 -
sourcetree跳过注册的方法
当前只有Win的版本,Mac自行百度(笑)很多人用git命令行不熟练,那么可以尝试使用sourcetree进行操作。然鹅~~sourcetree又一个比较严肃的问题就是,很多人不会跳过注册或者操作注册。废话不多,我们直接开始跳过注册阶段的操作。下载好之后会有这么一个界面要求你注册或登录。(不管它)将下面的一串串放进我的电脑的地址栏,打开sourcetree的文件夹%Loc...转载 2018-12-20 22:55:27 · 186 阅读 · 0 评论 -
@Component, @Repository, @Service的区别 @Resource,@Autowired的区别
官网引用引用spring的官方文档中的一段描述:在Spring2.0之前的版本中,@Repository注解可以标记在任何的类上,用来表明该类是用来执行与数据库相关的操作(即dao对象),并支持自动处理数据库操作产生的异常在Spring2.5版本中,引入了更多的Spring类注解:@Component,@Service,@Controller。@Component是一个通用的Sprin...转载 2019-01-23 10:14:15 · 2986 阅读 · 0 评论 -
idea Git解决冲突 git pull失败解决(好文推荐)
0.事先准备。1)把远程仓库的README.md内容改写为bbb(原先为aaa)。2)本地仓库的README.md内容改写为ccc(原先也为aaa)。以此来模仿代码冲突。1.先git add,git commit 然后pullpull的时候会提示有冲突,需要你进行手动mergeAccept Yours 就是直接选取本地的代码,覆盖掉远程仓库的Accept T...转载 2019-01-29 16:12:58 · 5899 阅读 · 0 评论 -
解决Mybatis的Tag name expected的问题
mapper文件中写sql语句时提示Tag name expected,找到原因是因为xml不识别<号需要用特定转义符来表示<号。<select id="selectHavingOrtherResultNotYetProcessed" resultMap="BaseResultMap" > select <include refid="Base...转载 2019-01-31 11:21:25 · 50956 阅读 · 10 评论 -
Idea打包选主入口java文件
主管让在docker里面搞个性能测试,写了个java小程序,突然忘记jar包的打包方法了,在这里记录一下好了一、jar打包流程IntelliJ IDEA本身已经做得很强大了,我们只需要按照它提供的功能来操作就行了。这里是以我上篇文件写的java版tinify的api打包jar为例子讲的。菜单:文件->项目结构…(也可以按快捷键ctrl+alt+shift+s) 在弹窗最左...原创 2018-08-02 14:23:22 · 1532 阅读 · 0 评论