自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(140)
  • 资源 (22)
  • 收藏
  • 关注

原创 Springboot @Import @Configuration、@ComponentScan、@Component注解 解析过程

springboot spring @Import解析过程

2022-10-30 22:53:37 339

原创 TOP命令详解

下面逐个介绍各个参数的含义1. 系统运行和负载信息这些字段信息分别是:当前时间、系统已经运行的时间、当前登录用户的数量、最近5、10和15分钟内的平均负载load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。2. 任务信息Tasks表示有多少个进程,上面表示共有119个进程,1个在运行,118个在休眠,0个是停止状态,0个是僵尸状态3. CPU状态us, use

2020-08-17 08:20:38 687

转载 mysql一次性删除千万调记录的方案

临时需求,因为数据库一张表的数据量已经在4000万条,现在需要删除无用数据,大约3000万条,执行一晚上后早上一看,mysql报错提示磁盘空间不足,怀疑是日志引起,于是百度....可行方案:先建立一个旧表和新表结构一样CREATETABLE 新表 SELECT*FROM 旧表 WHERE1=2;//筛选条件是选不出数据的然后导入自己不需要删除的数据INSERTINTO 新表 SELECT*FROM旧表WHERE 查询条件然后就可以干掉旧表或者把新表数据倒回去了转...

2020-08-05 19:23:38 595

原创 list通过stream转map报错

如下图所示,在做组装map的时候报错了。原因就是因为组装的键值对有为null的原因,虽然hashmap允许key和value都为null。

2020-06-22 23:20:00 576

原创 java.lang.UnsupportedOperationException 原因解析

List list = Collections.singletonList("1"); list.remove("1"); //报错 java.lang.UnsupportedOperationException list.add("2"); //报错 java.lang.UnsupportedOperationExceptionString[] ordinaryArray = {"11", "22", "33"};List list = Arrays.asList(ordinaryArra..

2020-06-22 23:00:35 334

原创 HashSet--JDK1.8源码分析

关于HashMap的源码解读,可参考https://blog.csdn.net/jiang_zf/article/details/104532186一、一些变量介绍 //用来存储元素,从这里也可以看出来,hashset内部是以hashmap实现的 private transient HashMap<E,Object> map; //定义一个常量,在向m...

2020-03-01 10:26:49 190

原创 Hashtable--JDK1.8源码分析

一、一些变量介绍 //存储键值对的数组 private transient Entry<K,V>[] table; //键值对总数 private transient int count; //容量的阈值,超过此容量将会扩容。 private int threshold; //负载因子 p...

2020-02-29 18:24:24 134

原创 LinkedHashMap--JDK1.8源码分析

LinkedHashMap继承自HashMap,很多操作都是跟HashMap一样,对于一样的地方就不再介绍,详细可参考HashMap - - JDK1.8 源码分析 ,下面主要介绍一下不同的地方。数据结构首先列出几个需要知晓的实例变量含义:final boolean accessOrder;//该变量表示是否需要按照读取顺序排序;true为是,false为否,当为false...

2020-02-29 16:24:36 157

转载 类加载机制

一.目标:1.什么是类的加载?2.类的生命周期?3.类加载器是什么?4.双亲委派机制是什么?二.原理 (类的加载过程及其最终产品):JVM将class文件字节码文件加载到内存中, 并将这些静态数据转换成方法区中的运行时数据结构,在堆(并不一定在堆中,HotSpot在方法区中)中生成一个代表这个类的java.lang.Class 对象,作为方法区类数据的访问入口。三.过程...

2020-02-28 21:30:32 123

原创 HashMap - - JDK1.8 源码分析

一、 默认常量static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // 默认数组长度16static final int MAXIMUM_CAPACITY = 1 << 30; // 最大数组容量2^30(为什么不能是2^31,因为2^31意味着需要占用32位,而最高位一般标识正负状态值)static final...

2020-02-27 16:12:05 126

转载 虚拟机nat模式网络配置

一、vm中虚拟网络编辑器中需要确认以及设置的有1、子网编码:保证和网关在同一个网段(红色部分为网段)且不与网关ip重复,我设置的192.168.0.02、子网掩码:一般是固定的255.255.255.03、网关:自己随便设置的一个(一般以0或者1结尾)如我这边设置的是192.168.0.1 设置的net模式中的NAT设置保证里面用的网关是192.168.0.1另外如果有设置DH...

2020-02-12 16:20:05 860

转载 BeanFactoryPostProcessor和BeanPostProcessor

Spring提供了两种PostProcessor(后置处理)bean的扩展接口,分别为BeanPostProcessor和BeanFactoryPostProcessor1.BeanFactoryPostProcessor:是针对于beanFactory的扩展点,即spring会在beanFactory初始化之后,beanDefinition都已经loaded,但是bean还未创建前进行调用...

2020-01-15 14:13:28 225

转载 Spring的循环依赖问题

能够解决循环依赖的情况主bean通过属性或者setter方法注入所依赖的bean,所依赖的bean也通过属性或者setter方法注入主bean; 主bean通过属性或者setter方法注入所依赖的bean,所依赖的bean通过构造函数注入主bean。无法解决的循环依赖问题 主bean对象和所依赖的bean对象,双方之间都通过构造函数注入对方。 在主bean中通过构造函数注入...

2020-01-14 17:17:44 226

原创 几种装配bean注解的区别

@Autowired:该注解可以对类成员变量,方法和构造方法进行标注,完成自动装配的工作,通过使用@Autowired 来消除setter和getting方法。默认按照bean的类型进行注解;如果想按照名称来转配注入,则需要结合@Qualifier一起使用@Resource:该注解与@Autowired的功能一样,区别在于该注解默认是按照名称来进行装配注入的,找不到与名称匹配的bean时才会...

2020-01-13 18:02:10 565

原创 maven-resources-plugin插件使用

maven-resources-plugin主要是将项目中的资源文件编译、打包;注意,资源文件不是源代码,一般是环境的配置文件,默认存在src/main/resources和src/test/resources中。maven-resources-plugin的三个目标(goal):resources:resources:用来将目录中的资源文件src/main/resources拷贝到编译目...

2019-12-08 11:16:08 3098

转载 maven-compiler-plugin 插件详解

转自:https://blog.csdn.net/liupeifeng3514/article/details/80236077maven是个项目管理工具,如果我们不告诉它我们的代码要使用什么样的jdk版本编译的话,它就会用maven-compiler-plugin默认的jdk版本来进行处理,这样就容易出现版本不匹配,以至于可能导致编译不通过的问题。maven的默认编译使用的jdk版本貌似...

2019-12-08 10:46:20 355

原创 XSS漏洞和CSRF问题

可参考https://www.cnblogs.com/itsuibi/p/10752868.html,言简意赅XSS漏洞定义:XSS是跨站脚本攻击,属于被动式的攻击。XSS指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意的特殊目的。可能造成的危害:网站弹框(刷流量);网站挂马;会话劫持;cookie盗...

2019-11-27 20:21:38 653

原创 Netty学习10-Netty的socket攻击及预防

在前面的文章我们说到过,可以采用长度+数据的格式定义包结构;但是如果长度定义的特别大,那么缓冲区必然会存储不下,而引起宕机或其他问题。这便是一种socket攻击。除此之外,如果定义的长度和实际长度不匹配,比如实际长度为5,定义的长度为6,那么读取的时候可能会把下一个数据包的一部分读取到,造成以后的数据不能正常解析;这也是一种socket攻击。可以通过以下几个方面处理socket攻击:1...

2019-11-26 19:51:24 1655 1

原创 建造者模式

当一个对象的构造过程比较复杂,或者需要介入到具体的构造过程,比如构造的顺序或者构造的部件选择(有些不需要全部部件都完全初始化)等;可以考虑使用建造者模式;建造者模式和工厂模式的区别是:建造者模式关心构建过程,代码体现是调用多个具体的属性初始化方法,最后返回初始化好的对象;而工厂模式一般不关系对象的具体创建过程,代码体现一般都是直接new一个产品对象;另外如果一个对象属性较多,且使用的时候不一定...

2019-11-26 11:21:58 82

原创 Netty学习09-粘包和分包及FrameDecoder源码解析

粘包出现的原因:服务端与客户端没有约定好要使用的数据结构。Socket Client实际是将数据包发送到一个缓存buffer中,通过buffer刷到数据链路层。因服务端接收数据包时,不能断定数据包1何时结束,就有可能出现数据包2的部分数据结合数据包1发送出去,导致服务器读取数据包1时包含了数据包2的数据。这种现象称为粘包。分包:数据包数据被分开一部分发送出去,服务端一次读取数据时可能读取到完整数...

2019-11-25 20:53:03 296

原创 Netty学习08-netty消息在管道中流转分析

我在前面的文章中写到,给消息添加各种处理事件,但是这些处理事件是如何关联起来,做到都能够执行,而且会先执行上行的处理方法,然后处理下行的处理方法的。本文基于netty-3.10.5.Final源码做一个简单的分析。前面《netty学习04-编写一个简单NIO系统》我们已经分析过服务的启动过程,我们知道在服务启动后,AbstractNioWorker会调用AbstractNioSelecto...

2019-11-24 17:17:13 333

原创 Netty学习07-protobuf序列化学习

Protobuf是一个灵活的、高效的用于序列化数据的协议。相比较XML和JSON格式,protobuf更小、更快、更便捷。Protobuf是跨语言的,并且自带了一个编译器(protoc),只需要用它进行编译,可以编译成Java、python、C++等代码,然后就可以直接使用,不需要再写其他代码,自带有解析的代码。protobuf协议是以一个 .proto 后缀的文件为基础,这个文件描述了存在哪...

2019-11-24 12:06:00 190

原创 Netty学习06-用Netty3和Netty5分别写一个心跳处理实例

心跳机制的意义:TCP空闲的时候是不会发送任何数据包。也就是说,当一个TCP的socket,客户端与服务端谁也不发送数据,会一直保持着连接。这其中如果有一方异常掉线(例如死机、路由被破坏、防火墙切断连接等),另一端如果没有发送数据,永远也不可能知道。这对于一些服务型的程序来说,是灾难性的后果,将会导致服务端socket资源耗尽。 所以为了保证连接的有效性、及时有效地检测到一方的非正常...

2019-11-24 11:16:57 147

原创 Netty学习05-用Netty5写一个简单的服务端和客户端

前面文章讲了如何通过Netty3写一个简单的例子,但是Netty4和Netty5同Netty3有很大的不同,这篇文章简单介绍下如何通过Netty5写一个简单的服务端和客户端例子。服务端1. 初始化一个NIO辅助服务类 //NIO服务的辅助启动类 ServerBootstrap bootstrap = new ServerBootstrap();2. ...

2019-11-17 15:39:18 193

原创 netty学习04-编写一个简单NIO系统

如果要提高NIO的工作效率可以通过两个方面入手:1.一个系统注册多个selector2.一个selector可以注册多个ServerSocketChannel业务代码的实现流程如图所示,详细解释和代码可查看附件:...

2019-11-05 19:31:37 130

原创 netty学习03-Netty客户端和服务端结合

在netty学习02-Netty初步学习-HelloNetty中已经学习了如何搭建netty服务端,下面介绍下如何搭建netty客户端。netty客户端搭建的流程和服务端类似,很多地方都是把Server缓冲Client即可。1.创建客户端服务类ClientBootstrap bootstrap=new ClientBootstrap();2.创建监听和消息接发的线程池Exe...

2019-11-03 16:46:33 197

原创 netty学习02-Netty初步学习-HelloNetty

创建Netty服务端的几个步骤:1.创建服务类ServerBootstrap bootstrap=new ServerBootstrap();2.创建监听端口线程和数据读写线程ExecutorService boss= Executors.newCachedThreadPool();ExecutorService worker=Executors.newCachedThrea...

2019-11-03 15:48:08 383

原创 netty学习01-传统IO和NIO的比较

传统IO的特点有两个阻塞点:1. server.accept();接收连接2.InputStream.read(bytes);读取数据单线程下只能有一个客户端连接,用线程池可以解决单个客户端连接的问题,但是太消耗性能。NIO的特点NIO是非阻塞的传统IO在通道中读取数据的时候,如果没有数据,会一直等待;而NIO(非阻塞IO)则会实时返回。NIO可以单线程处理多客户端...

2019-10-31 20:46:38 107

原创 享元模式

享元模式UML图一句话概括享元模式:为了节省内存空间,将对象分为不可变的内部状态对象和可变的外部状态对象;每次在使用的时候,如果内部状态对象已经存在则复用,否则新建保存。享元工厂负责存储享元对象的Map。...

2019-10-31 19:38:50 112

原创 代理模式

代理模式UML图使用代理模式的好处:1.职责清晰,被代理的真是对象不用关心额外的业务2.可扩展性强使用代理模式几个步骤:1.创建代理处理类2.创建代理对象3.通过代理对象调用相关方法...

2019-10-31 19:20:28 102

原创 状态模式

状态模式UML类图:状态模式就是有一个上下文,然后上下文通过处理一些通用的逻辑之后,对于不同的状态的相关逻辑交给相关的实现类去实现,并且内部可以实现状态转换。遵循了单一职责原则和开放封闭原则。状态模式和策略模式类图基本差不多,区别就是状态模式存在状态间的切换,而策略模式不存在。...

2019-10-31 19:12:46 453

原创 jdk动态代理简析

本文是根据所学对jdk动态代理做一个简单的源码分析,更深层次的源码可参考其他博主的文章。先来一个简单的动态代理的例子。//接口public interface IBank { /** * 查询账户信息 */ public void queryInfo();}//实现类public class BankImpl implements IBank...

2019-10-30 19:58:15 125

原创 策略模式

工厂模式与策略模式的一些区别:工厂模式是创建型模式,适应对象的变化。策略模式是行为性模式,适应行为的变化

2019-10-28 19:34:35 86

原创 观察者模式

2019-10-28 19:30:50 78

原创 简单工厂模式与工厂方法模式和抽象工厂模式

1. 简单工厂模式2. 工厂方法模式3. 抽象工厂模式概括三种模式:简单工厂模式:去除了与具体产品的依赖。但是当需求变动的时候,需要对原有的类进行修改,违背了开放封闭原则。工厂方法模式:工厂方法克服了简单工厂违背的开放封闭原则的缺点,又保持了封装对象创建过程的优点。抽象工厂模式:抽象工厂模式提供一个创建一系列相关或相互依赖对象的接口,而无需制定他们具体的类...

2019-10-28 19:28:58 164

转载 直接插入排序

转自:http://c.biancheng.net/view/931.html直接插入排序的基本思想是:将 n 个有序数存放在数组 a 中,要插入的数为 x,首先确定 x 插在数组中的位置 p,然后将 p 之后的元素都向后移一个位置,空出 a(p),将 x 放入 a(p),这样可实现插入 x 后仍然有序。代码如下:public static void main(String[] ar...

2019-07-28 17:41:19 81

转载 选择排序

转自:http://c.biancheng.net/view/930.html假设当前存在一个 int 类型的数组 number,该数组中的元素依次是 13、15、 24、99、4 和 1。如果使用冒泡排序进行两两相邻比较,第一趟排序后的结果如下:13、15、24、4、1、99第二趟排序后的结果如下:13、15、4、1、24、99第三趟排序后的结果如下:13、4、...

2019-07-28 17:21:27 82

转载 快速排序

快速排序(Quicksort)是对冒泡排序的一种改进。快速排序的基本思想是:通过一趟排序,将要排序的数据分隔成独立的两部分,其中一部分的所有数据比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此使整个数据变成有序序列。具体做法是:假设要对某个数组进行排序,首先需要任意选取一个数据(通常选用第一个数据)作为关键数据,然后将所有比它小的数都放...

2019-07-28 17:13:05 136

原创 冒泡排序

冒泡排序(Bubble Sort)是常用的数组排序算法之一,它以简洁的思想与实现方法而备受青睐,也是广大学习者最先接触的一种排序算法。冒泡排序的基本思想是:对比相邻的元素值,如果满足条件就交换元素值,把较小的元素值移动到数组前面,把大的元素值移动到数组后面(也就是交换两个元素的位置),这样数组元素就像气泡一样从底部上升到顶部。冒泡排序的算法比较简单,排序的结果稳定,但时间效率不太高。Java...

2019-07-28 16:46:24 100

原创 正则表达式常用的元字符

正则表达式常用的元字符 元字符 正则表达式的写法 说明 . "." 代表任意一个字符 \d "\\d" 代表 0~9 的任何一个数字 \D "\\D" 代表任何一个非数字字符 \s "\\s" 代表空白字符,如"\t’’和’’\n” \S "\\S" 代表非空白字符 \W "\\W" 代表...

2019-06-29 16:46:08 639

beandemo.rar

代码主要展示了Spring在初始化的过程中,各个回调函数的调用顺序,也可以在此基础上进行扩展研究,有助于了解Spring的加载过程

2020-01-16

粘包和分包及FrameDecoder源码解析.rar

解压该文件后可看到对源码分析的视频和相应的demo示例,欢迎大家学习交流!

2019-11-25

netty学习之心跳.rar

代码解压后可看到netty3和netty5实现的心跳处理案例,代码比较简单,适合初学者,欢迎大家交流学习,欢迎下载。。。。。

2019-11-24

用Netty5写一个简单的服务端和客户端.rar

用Netty5写一个简单的服务端和客户端,通过这个示例可以起到快速入门的效果,下载完成后,可运行4_Netty5_Hello模块代码,其中包括客户端单连接和多连接的例子

2019-11-17

编写一个简单NIO系统.rar

里面包含视频和代码,详细介绍了如何编写一个简单NIO系统

2019-11-05

Netty初步学习-HelloNetty.rar

通过视频和代码简单介绍了如何搭建一个netty服务,以及netty服务的一些讲解

2019-11-03

NIO和传统IO比较.rar

通过源码和视频讲解分析传统io和nio的一个区别,更直观得观察两者区别

2019-10-31

冒泡排序代码实现。。。

冒泡排序源码,对于初学者可以下载下来慢慢研究,里面有详细的注释

2019-07-28

div和CSS布局大全

学习div和css的必备书籍,讲的很好,欢迎大家下载学习

2018-01-03

html和CSS从入门到精通中文版

html和CSS从入门到精通中文版,内容讲的很好,欢迎大家下载学习

2018-01-03

html5与CSS3权威指南(全)

html5和CSS3的权威指南,讲的很好,欢迎大家下载学习。

2018-01-03

javascript高级教程完整版

学习javascript的必备书籍,文档写的很好,欢迎大家下载

2018-01-02

html5游戏开发技术

html5游戏开发很好的书籍,之前看大家下载很多,最近一直没人下,发现原来是积分涨了,现在我重新传了份2积分的,欢迎大家下载

2018-01-02

疯狂java 突破程序员基本功的16课

内容讲解的很详细,对java程序员有一个质的提升,欢迎大家下载

2018-01-02

java核心技术第九版

java的经典书籍,供大家学习使用,积分最少,欢迎大家下载

2018-01-02

html5游戏开发

关于html5的游戏开发资源,还是很不错的,大家可以下载看下,反正不要积分

2016-01-24

javascript高级教程

想学好javascript的朋友们,不妨下载看下,反正我又不要你们的积分,不错的话不妨给个好评

2016-01-20

div+css布局大全

对于想好好学习下页面布局的,还是很值得一看的,不要积分,直接下载即可

2016-01-20

html+css从入门到精通

不要积分,不错的资源,分享给大家,一起学习进步

2016-01-20

精通正则表达式第三版

学习正则用这本书很好,推荐给大家;大家对这本书的评价都还是很高的。

2016-01-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除