自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 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 6240 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 156

原创 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 158

原创 Cglib和jdk动态代理基本使用

aop的基本实现原理:如果针对接口做代理默认使用的是JDK自带的Proxy+InvocationHandler 如果针对类做代理使用的是Cglib 即使针对接口做代理,也可以将代理方式配置成走Cglib的Cglib是什么Cglib是一个强大的、高性能的代码生成包,它广泛被许多AOP框架使用,为他们提供方法的拦截。下图是我网上找到的一张Cglib与一些框架和语言的关系:对此图总...

2020-05-03 10:27:33 269

原创 类的加载顺序

初始化顺序:1.先静态后非静态 先初始化静态的成员变量,在类第一次被使用时初始化一次2.先声明后赋值 所有声明的成员变量先获得默认值(基本类型对应基本类型默认值,引用类型为null),然后执行等号后的赋值3.先属性后方法 先执行属性定义处的初始化,然后执行方法的初始化(构造块先于构造方法)4.先父类后子类 继承时候先初始化父类成员,后子类成员所以通常...

2020-05-02 23:14:43 1736

原创 jdk动态代理和cglib动态代理源码分析

jdk与cglib相同之处:都是通过运行时动态生成字节码的方式来实现代理不同之处:jdk代理通过运行时动态生成字节码来生成代理类,代理类通过反射来完成对目标方法的调用,并在重写InvocationHandler的invoke方法时增强逻辑;必须实现接口;cglib不是通过反射完成的,而是直接对方法进行调用,通过运行时动态生成一个被代理类的子类,在子类方法中直接调用super中的方法...

2019-07-08 14:43:35 294

原创 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 91

原创 策略模式

一、什么是策略模式以及策略模式功能1.1 为什么需要策略模式?1)完成一项任务,往往可以有多种不同的方式,每一种方式称为一个策略,我们可以根据环境或者条件的不同选择不同的策略来完成该项任务。2)在软件系统中,很多算法可以实现某一功能,比如查找、排序。这里以查找算法为例说明,如果我们需要提供多种查找算法,可以将这些算法写在一个类中,在该类中提供多个方法,每一个方法对应一个具体的查找算法;当...

2019-03-18 23:55:27 209

原创 装饰者、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 188

原创 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 185

原创 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 153

转载 23种设计模式全解析

一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。其实还有两...

2019-02-20 22:22:15 117

原创 《代码整洁之道》读后感

把一些我个人觉得比较重要的点说一下吧命名:    1.名副其实    2.有意义的区分,当有意思相近的方法名称时,可以一眼就看出不同之处    3.长名称胜过短名称,名称应该和函数的作用域相对应    函数:    1.短小    2.一个函数只做一件事情,不要同时做两个    3.每个函数一个抽象层级:       1).要确保函数只做一件事,函数中的语句都要在同一抽象层...

2019-02-14 18:48:54 162

转载 Mysql索引面试必备

我们在面试时,经常会被问到有关索引的知识,什么是索引?为什么索引可以加快数据查询?如何选择创建索引?索引的最左匹配原则是什么?等等,针对这些问题,你都可以在本篇博文中,找到你要想的答案。1.索引的作用简单来说,索引就可以帮助我们快速查找数据。那为什么索引可以帮助我们快速查找数据呢?首先我们要了解,MySql中,数据都是存储在页中的,在InnoDB中一个页的大小是16KB,数据页的结构如图所示...

2018-12-17 16:14:53 521

原创 Spring Boot集成Log4j2报错java.lang.NoSuchMethodError: org.apache.logging.log4j.core.config.Configuration

Application startup failedjava.lang.NoSuchMethodError: org.apache.logging.log4j.core.config.ConfigurationFactory.getConfiguration(Lorg/apache/logging/log4j/core/LoggerContext;Lorg/apache/logging/log4...

2018-09-26 15:26:49 13222 3

原创 Java知识体系

java知识体系 编号 类目 文档地址 备注 1 集合 http://www.cnblogs.com/skywang12345/p/3323085.html   2 IO http://www.cnblogs.com/skywang12345/p/io_01.html  ...

2018-06-15 09:24:55 96

原创 微服务

微服务一、        什么是服务所谓服务,是区别于系统,服务一个或者一组相对较小且独立的功能单元,是用户可以感知最小功能集。 二、        什么是微服务?能运行在自己进程里,并独立部署服务。各个服务之间,只能通过通信的机制相互关联,比如HTTP。三、        为什么要使用微服务?最早的程序,功能全部聚集在一起,程序内高度耦合,难以维护和扩展。后来将部分功...

2018-06-15 09:23:48 221

原创 RedisTemplate API

Redis 数据结构 结构类型 结构存储的值 结构的读写能力 String 可以是字符串、整数或者浮点数 对整个字符串或者字符串的其中一部分执行操作;对象和浮点数执行自增(increment)或者自减(decrement) List 一个链表,链表上的每个节点都包含了一个字符串 从链表的两端推入或者弹出元...

2018-06-15 09:22:58 712 1

转载 Nginx+Tomcat 入门高性能负载均衡集群

一、       工具  nginx-1.8.0  apache-tomcat-6.0.33二、    目标  实现高性能负载均衡的Tomcat集群:   三、    步骤  1、首先下载Nginx,要下载稳定版:    2、然后解压两个Tomcat,分别命名为apache-tomcat-6.0.33-1和apache-tomcat-6.0.33-2:    3、然后修改这两个Tomcat的启动端...

2018-05-02 17:34:33 95

原创 Gadle项目部署到服务器

1,执行命令:gradle clean -> gradle build,项目会在本地打成一个jar包2,然后进入到项目目录(例如:bops-webapp):bops-webapp -> build -> lib,可以看到项目的jar包。这里可以运行一下项目:点击jar包右击打开cmd命令窗口,运行 java -jar jarName。3,连接服务器,进入项目目录,例如 softw...

2018-04-19 17:49:35 409

转载 写博客对程序员很重要吗?

作者:黄孙挺链接:https://www.zhihu.com/question/273631529/answer/370251965来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。“书写是对思维的缓存。”不知道从哪看来的一句话,一见如故,于是把它作为我自己专栏《闷骚的程序员》的简介。我认为,不仅仅是对于程序员,对任何渴望进步的人来说,写博客/文章/回答对自己的成长帮助...

2018-04-19 14:23:41 1021

转载 自学编程的六个技巧总结

有一天,我的一个在学编程的朋友问我:“我想快速学习编程,你有什么好的推荐吗?我曾在上大学的时候自学过编程,这么多年过去了,我意识到我或许是在用最困难的方式去学习和了解编程。本来我完全可以用更快的速度学习。因此,在回顾了过去之后,我写下了这些年来我渐渐掌握到的关于如何学习编程的一些事情。对于“如何快速学习编程”这个问题,其实我真的不知道何谓“快速”。我觉得,通过遵循以下建议,你将很快地学习编程(至少...

2018-04-19 14:10:18 401 2

原创 刚用SpringBoot搭建的项目,To display the auto-configuration report re-run your application with 'debug' enab

具体错误信息太长了,我就把重要的信息贴出来了,求大佬们帮忙看看,搞了一下午了(在idea上跑的)Error starting ApplicationContext. To display the auto-configuration report re-run your application with 'debug' enabled.2018-02-27 21:48:01.087 ERROR 1...

2018-02-27 22:37:05 30611 9

空空如也

空空如也

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

TA关注的人

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