java
魔鬼中的秀儿
这个作者很懒,什么都没留下…
展开
-
TCP三次握手四次挥手详解
三次握手三次握手过程:(1)第一次握手:Client将标志位SYN置为1(表示要发起一个连接),随机产生一个值seq=J,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。(2)第二次握手:Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,ack=J+1,随机产生一个值seq=K,并将该数据包发送给Client以确认连接请求,Server进入SYN_RCVD状态。(3)第三次握手:Cli原创 2020-05-17 21:06:12 · 6255 阅读 · 2 评论 -
redis主从+哨兵+高可用集群搭建
redis下载wget http://download.redis.io/releases/redis-5.0.4.tar.gztar xvf redis-5.0.4.tar.gzcd redis-5.0.4make install PREFIX=/root/svr/redis-5.0.4 #安装(我用的make && make install)src/redis-server ../redis.conf& #启动src/redis-cli #客户端连接主从搭建原创 2020-05-16 22:08:57 · 164 阅读 · 0 评论 -
mysql隔离级别模拟
参考:https://www.cnblogs.com/MrSi/p/9439336.htmlhttp://blog.itpub.net/15412087/viewspace-2152465/https://www.cnblogs.com/satng/p/7759899.html# ddlCREATE TABLE `tran_test` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL,...原创 2020-05-13 00:36:08 · 167 阅读 · 0 评论 -
Cglib和jdk动态代理基本使用
aop的基本实现原理:如果针对接口做代理默认使用的是JDK自带的Proxy+InvocationHandler 如果针对类做代理使用的是Cglib 即使针对接口做代理,也可以将代理方式配置成走Cglib的Cglib是什么Cglib是一个强大的、高性能的代码生成包,它广泛被许多AOP框架使用,为他们提供方法的拦截。下图是我网上找到的一张Cglib与一些框架和语言的关系:对此图总...原创 2020-05-03 10:27:33 · 273 阅读 · 0 评论 -
类的加载顺序
初始化顺序:1.先静态后非静态 先初始化静态的成员变量,在类第一次被使用时初始化一次2.先声明后赋值 所有声明的成员变量先获得默认值(基本类型对应基本类型默认值,引用类型为null),然后执行等号后的赋值3.先属性后方法 先执行属性定义处的初始化,然后执行方法的初始化(构造块先于构造方法)4.先父类后子类 继承时候先初始化父类成员,后子类成员所以通常...原创 2020-05-02 23:14:43 · 2147 阅读 · 0 评论 -
jdk动态代理和cglib动态代理源码分析
jdk与cglib相同之处:都是通过运行时动态生成字节码的方式来实现代理不同之处:jdk代理通过运行时动态生成字节码来生成代理类,代理类通过反射来完成对目标方法的调用,并在重写InvocationHandler的invoke方法时增强逻辑;必须实现接口;cglib不是通过反射完成的,而是直接对方法进行调用,通过运行时动态生成一个被代理类的子类,在子类方法中直接调用super中的方法...原创 2019-07-08 14:43:35 · 305 阅读 · 0 评论 -
windows下MySQL 5.7+ 解压缩版安装配置方法
方法来自伟大的互联网。1.去官网下载.zip格式的MySQL Server的压缩包,根据需要选择x86或x64版。注意:下载是需要注册账户并登录的。链接:https://pan.baidu.com/s/1sObbjgQ_bYFrUjwgzEII3g提取码:3dan2.解压缩至你想要的位置。3.复制解压目录下my-dafault.ini至bin目录下,重命名为my.ini。并添加...原创 2019-04-13 18:21:28 · 96 阅读 · 0 评论 -
策略模式
一、什么是策略模式以及策略模式功能1.1 为什么需要策略模式?1)完成一项任务,往往可以有多种不同的方式,每一种方式称为一个策略,我们可以根据环境或者条件的不同选择不同的策略来完成该项任务。2)在软件系统中,很多算法可以实现某一功能,比如查找、排序。这里以查找算法为例说明,如果我们需要提供多种查找算法,可以将这些算法写在一个类中,在该类中提供多个方法,每一个方法对应一个具体的查找算法;当...原创 2019-03-18 23:55:27 · 219 阅读 · 0 评论 -
装饰者、JDK动态代理和CGLIB动态代理 三种设计模式 教你实现AOP
定义一个普通dao类和daoImpl类来模式实现三种aop,对dao类中的方法进行增强日志功能定义一个DAO接口:public interface Dao { void insert(); void query(); void update();}DAO接口实现类:public class DaoImpl implements Dao { @O...原创 2019-03-11 22:50:23 · 194 阅读 · 0 评论 -
ArrayList源码分析(JDK1.8)
一、数据结构ArrayList的数据结构是Object类型的数组,可以存放所有数据类型,我们对ArrayList的所有操作都是基于数组的二、ArrayList源码分析2.1 类的属性public class ArrayList<E> extends AbstractList<E> implements List<E>, Ran...原创 2019-03-10 16:04:55 · 189 阅读 · 0 评论 -
HashMap源码分析 --- JDK1.8,JDK1.7源码对比
一 、前言 JDK1.8相对于1.7,变化最大的地方就在于将数组+链表拆分为数组+链表+红黑树的组合,其目的就在于解决 hash冲突增加随之链表长度增加后,存储效率降低的问题,因为存储都需要遍历链表;其次将存放key-value的Entry类换成了Node类,功能是一样的,只不过换了个名字而已。 HashMap的精髓就在于用key计算的hash值来散列插入的位置,这样既能解决key-v...原创 2019-03-09 23:51:35 · 164 阅读 · 0 评论 -
23种设计模式全解析
一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。其实还有两...转载 2019-02-20 22:22:15 · 122 阅读 · 0 评论 -
Mysql索引面试必备
我们在面试时,经常会被问到有关索引的知识,什么是索引?为什么索引可以加快数据查询?如何选择创建索引?索引的最左匹配原则是什么?等等,针对这些问题,你都可以在本篇博文中,找到你要想的答案。1.索引的作用简单来说,索引就可以帮助我们快速查找数据。那为什么索引可以帮助我们快速查找数据呢?首先我们要了解,MySql中,数据都是存储在页中的,在InnoDB中一个页的大小是16KB,数据页的结构如图所示...转载 2018-12-17 16:14:53 · 524 阅读 · 0 评论