- 博客(40)
- 问答 (5)
- 收藏
- 关注

原创 一文讲清MySQL的innodb_log_write_ahead_size参数
一文讲清MySQL的innodb_log_write_ahead_size参数MySQL调优的时候会遇到一个参数innodb_log_write_ahead_size,这个参数如果对计算机存储系统不了解的话很难理解,网上很多文章说的又不是很清晰,所以本文对该参数做一个解析;要想知道innodb_log_write_ahead_size参数怎么配置,最重要的就是先了解这个参数解决了什么问题,那么这个参数是解决什么问题的呢?官网对该参数的描述如下:Defines the write-ahead blo
2021-05-08 19:54:33
1686
8
原创 使用了lombok后如何生成正确源码包
解决使用了Lombok后IDEA下载源码提示Library source does not match the bytecode for class
2022-09-06 17:36:45
1194
原创 关于证书,这里有你想知道的一切
在HTTPS开发中,你是否被各种证书搞得晕头转向?.pem证书?.der证书?X.509证书?本文带你理清这些证书叫法背后的含义;
2022-05-21 17:07:46
698
原创 2FA双因子认证之OTP算法
2FA双因子认证之OTP算法概述2 Factor Authentication简称2FA,双因子认证是一种安全密码验证方式。区别于传统的密码验证,由于传统的密码验证是由一组静态信息组成,如:字符、图像、手势等,很容易被获取,相对不安全。2FA是基于时间、历史长度、实物(信用卡、SMS手机、令牌、指纹)等自然变量结合一定的加密算法组合出一组动态密码,一般每60秒刷新一次。不容易被获取和破解,相对安全。TOTP/HOTP作为其中的一种(实际是两种,不过其中一个是变种,这里当作一种)算法,目前已经用于
2022-01-24 15:16:42
1805
原创 SHA1算法详解
SHA1算法详解SHA1算法作为摘要算法的一种,被使用于各种签名、摘要等场景,本章我们详细分析下SHA1算法细节;术语定义 word:32bit的String,可以表示为8个16进制的序列,例如A103FE23; integer:表示0-2^32-1之间的数字; block:表示512bit的String,一个block可以表示为16个word的序列(数组); 消息填充规则对于待摘要的消息M,先填充一个bit 1,然后填充N个bit 0,最后填充64b.....
2022-01-15 14:18:18
7145
4
原创 JDK17都出来了,你还在用JDK8?
JDK17的一些新特性本文旨在介绍一些JDK17的新特性,同时限于篇幅,本文仅列举其中一些差异,而不是全部差异;PS: JDK17是Java的一个LTS版本(长期支持版本),可以放心迁移过来;instanceofJDK8中的语法:Object o = something;if (o instanceof String) { String str = (String)o; // do something}在JDK17中我们可以这样写:Object
2022-01-08 11:13:40
1894
原创 如何打包SoftEtherVPN
构建环境搭建> SoftEtherVPN地址:https://github.com/SoftEtherVPN/SoftEtherVPN_Stable.gitSoftEtherVPN的构建环境搭建(Dockerfile):```FROM centos:7RUN yum install -y epel-release.noarch \ && yum update -y \RUN yum -y groupinstall "Development Tools" \..
2021-11-12 14:07:42
1427
原创 一文读懂rabbitMQ和rocketMQ的消息可靠性机制
一文读懂rabbitMQ和rocketMQ的消息可靠性机制在我们大多数场景中,MQ消息都要保证可靠性,消息可靠性应该是我们最关心的一个细节,没有之一;而各个MQ实现的可靠性保证都不同,同时实现机制也不同,只有知道各个MQ实现是如何保证消息可靠性的,才能在使用的过程中不丢消息;rabbitMQ对于rabbitMQ,消息可靠性是从以下几点来保证的:消息持久化; 发布者确认;消费者确认;消息持久化对于rabbitMQ,默认情况下消息是不持久化的,这是为了性能考虑,
2021-11-10 15:43:40
2648
原创 通过局域网中间人攻击学网络第五篇
通过局域网中间人攻击学网络 续续 HTTPS篇2抓包环境本章开始分析握手包,分析过程中会涉及抓包,为了尽可能方便,后续都采用对百度的抓包,工具;wireshark,使用过滤条件(不过滤的话包太多不好找):tls.handshake.extensions_server_name == ss2.baidu.comRecord数据结构HTTPS中数据都是通过Record层进行包装的,Record的数据结构如下:public class Record <T>{ /*.
2020-12-30 16:21:42
447
原创 通过局域网中间人攻击学网络第四篇
通过局域网中间人攻击学网络第四篇HTTPS篇1Abstract最近因为个人原因停更有段时间,后边会慢慢恢复更新;前三篇基本把局域网中间人攻击的原理介绍了一下,根据前三篇我们可以做一个简易的工具来实现局域网攻击了,但是攻击过程中你可能会发现一个问题,当前大多数 网站都已经采用HTTPS链接了,这样会导致你抓到的数据都是加密过的,没办法查看、修改,那搞中间人攻击干啥呢?抓包抓了个寂寞吗?要解决这个问题,我们首先 要清楚HTTPS是什么;什么是HTTPS,HTTPS解决了什么问题?要了
2020-11-13 21:33:18
394
原创 通过局域网中间人攻击学网络 第三篇 netfilter之内核篇
通过局域网中间人攻击学网络第三篇 netfilter框架之内核篇在第二篇中,我们讲到可以用ARP欺骗的形式将局域网内某个主机的流量转发到我们的机器上,那我们如何对该流量进行拦截修改呢?在Linux下,我们可以 使用netfilter框架来实现对ip数据拦截修改;什么是netfilter?Netfilter是Linux 2.4.x引入的一个子系统,它作为一个通用的、抽象的框架,提供一...
2020-04-12 21:08:46
747
1
原创 通过局域网中间人攻击学网络 第二篇 ARP欺骗
通过局域网中间人攻击学网络第二篇 ARP欺骗原理我们要进行中间人攻击,就要将自己的主机插入到被攻击主机与被攻击主机要访问的主机之间,拦截他们的流量,到自己的主机然后转发,如下图所示:只需要将被攻击者的流量转发到我们的机器上我们对其代理,我们就可以对其修改了,那么现在又有新问题了,如何去代理被攻击者的流量呢?因为是我们 要攻击对方的,所以不太可能让被攻击者主动设置将流量转发到我...
2020-03-28 21:31:05
710
2
原创 通过局域网中间人攻击学网络
通过局域网中间人攻击学网络序言声明该文章为系列连载文章,由于作者目前工作较忙(懒),所以预期一周更新一篇; 作者目前主要从事Java开发,所以后续涉及部分C代码的,可能会比较菜,不符合各种规范,请见谅; 本系列文章仅供学习使用,请勿用作非法途径; 想要深入交流或者吐槽作者的,可以加作者微信,作者微信:qiao1213812243;学习本系列文章前我需要有什么样的基础简单的C...
2020-03-21 19:43:38
773
原创 java基础类型的装箱拆箱
java基础类型的装箱拆箱通过本文能了解哪些知识?为什么基本数据类型拆箱有可能会报空指针异常? 基本数据类型的装箱与拆箱操作是如何实现的?自动拆箱首先我们有如下代码:public class Test{ static { Integer integer = new Integer(1234); int i = integer; ...
2019-11-12 20:01:17
203
原创 异常警告之-ConcurrentModificationException
异常分析相信写过一些Java代码的人都遇到过这个异常,一般都是由以下代码引起的:import java.util.List;import java.util.ArrayList;public class Test{ public static void main(String[] args){ List<String> list = new Arra...
2019-11-12 19:53:38
421
原创 网络协议之HTTP-CORS
什么是CORSCORS是通常所说跨域请求的英文简称,全称Cross-Origin Resource Sharing。浏览器出于安全考虑会禁止使用跨域请求,而使用CORS技术可以突破 该限制。注意:浏览器限制仅限于脚本请求不能跨域,例如在js中用ajax请求,如果跨域会被拦截,但是对于标签是可以跨域的,例如使用img标签来跨域请求一个 图片资源,用script标签来跨域请求一个脚本资源。JS...
2019-11-12 19:45:42
402
1
原创 高效搜索数据结构之红黑树简介
之前介绍java中的HashMap时有说到过红黑树,今天就来讲讲红黑树。首先学习红黑树之前要了解二叉树以二叉搜索树。二叉树是一种基本的数据结构,本身结构也很简单,结构如下图所示:图(1)上图所示就是一个简单的二叉树,每个节点都最多有两个子节点(可以为空),每个节点最多有一个父节点(根节点没有父节点),其中1就是根节点。而二叉搜索树就是
2018-02-05 16:54:51
286
原创 多线程概述
多线程概述由于CPU核心越来越多,现代编程中总少不了多线程,而多线程编程在java中是比较容易的,这也算是java的一大优势。多线程编程,总避不开一个话题,那就是线程安全。那么,如何保证线程安全呢?可能很多人第一时间想到的就是锁,是的,锁是一个很好的解决方案,那么有没有更好的方案呢?答案也是有的。那么,不用锁如何做到线程安全呢?首先我们需要了解,为什么会有线
2018-02-05 16:50:44
296
原创 如何打造一个百万用户的IM后台(1)
如何打造一个百万用户的IM后台(1)聊天应该是当代人使用频率最高的软件,相信很多java使用者在初学java中socket部分时也会自己写一个聊天软件服务器。那么,如何才能写一个能够提供百万并发能力的IM后台呢?1问题分析要想写一个百万并发的IM后台,首先得知道将要面临什么样的问题,首先是IO模型,传统的BIO模型是肯定不行的,那么就只能使用NI
2018-02-05 16:49:25
5391
原创 由一个死循环引出的一系列问题及思考
一次粗心引起的死循环场景一次系统升级中,需要修改一个需求,而这个需求需要修改一个for循环的次数,原循环如下:for(byte i = 0 ; i 30 ; i++){ //do something}而修改后如下:for(byte i = 0 ; i 300 ; i++){ //do something
2018-02-05 16:45:30
344
原创 如何优雅的写代码
如何优雅的写代码为什么别人的代码看起来那么优美,而我的代码就像一坨翔?相信很多新人都会有这样的疑问吧,看各种框架的代码看着感(根)觉(本)特(看)别(不)溜(懂),而自己写出来的代码怎么看怎么不顺眼,为什么呢?规范!!!规范!!!规范!!!是的,一切都是规范问题,如果你看各种框架代码看得多了你会发现,他们好像大都是一个套路,一个说不上来的套路,看起来就很舒服
2018-02-02 23:29:24
4494
5
原创 如何获取gcr.io上的镜像
如何获取gcr.io上的镜像好久没更新了,今天来更新一篇。相信许多新手使用kubernetes时最大的一个阻碍就是如何下载示例中的镜像,因为kubernetes官方示例中的镜像都在gcr.io上,而该网址国内是访问不到的,那么如何获取到这些镜像呢?相信很多新手都是使用别人的镜像的,没办法,谁让咱访问不到谷歌的镜像呢,可是如果某个镜像别人也没有呢?为什么别人有这个镜像呢?而且最最最关
2018-01-15 14:45:33
14908
原创 性能杀手—伪共享
在之前的一篇文章<java缓存行与volatile>中有讲到缓存行,同时说到了可能导致的一个问题,但是并没有讲完,本文就继续讲解该问题。
2017-10-30 22:17:59
314
原创 java数据结构之ArrayList
相信大多数接触java时最早接触的一个数据结构就是ArrayList了,然而ArrayList是如何工作的,内部又是怎样的实现,相信很多人都没有看过或者看过但早已忘记。那么,ArrayList作为java中最基础最常用的数据结构之一,我们就有必要去深入的了解一下ArrayList是如何工作的了。ArrayList构造器简介在java中,一切皆对象,一切操作又离不开对象,Ar
2017-06-14 08:40:31
348
原创 发布项目到maven中央仓库
可能很多人都在用maven仓库,但是如果要问怎么发布项目到中央仓库,估计很多人都不知道了,下面本篇文章带大家往中央仓库发布一个自己的maven项目。往maven中央仓库发布组件的过程是与Sonatype工作人员交互的过程,这个过程是在Sonatype的JIRA平台上完成的,过程如下: 在Sonatype的JIRA注册 提交一个issue(提出一个发布申请
2017-06-13 13:53:46
2315
3
原创 centOS下整合Tomcat和redis
读下面内容时,假设你已经能够进行Linux、tomcat、redis、git、gradle的安装和基本使用,如果不会使用以上系统/软件,请先学习。俗话说:万事开头难,就像学习一门语言会先学习一个hello word一样,环境的整合也要先学会整合,然后才是去使用,而整合又是最难的,因为如果是新手没有经验的话很容易整合失败,官方的说明大多是英文的,不利于阅读,而百度出来的很多都不能用,都是
2016-06-16 13:39:54
708
原创 java-httpclient-HTTPS请求
最近自己搞微信支付开发时遇到了些问题,其中一个就是关于微信中需要发起HTTPS请求,下面贴代码,其中Config.getMch_id()方法是获取微信分给商户的一个ID,Config.getLicense_path()方法是获取证书的路径,这两个参数可以自己替换
2016-02-18 14:41:19
809
1
关于Java和QQ的,通过Java能获取QQ联系人列表吗?
2015-11-22
关于JavaWeb应用中文件路径的
2015-11-17
求助关于J2EE的网站视频在线播放
2015-11-09
关于web应用上线的问题
2015-11-08
关于HTML5中video标签的问题
2015-11-05
TA创建的收藏夹 TA关注的收藏夹
TA关注的人