自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 重学JAVA-----day01

面向对象的三优点封装封装的意思就是属性封装在对象内部,提供方法访问来确保属性安全性继承 继承是子类可以继承父类的方法和属性,来实现代码复用多态 多态就是父类的引用指向子类的对象。这样做的好处就是可以消除类型之间的耦合关系,编译多态重载运行时多态重写java的基本类型byte 大小为1字节boolean 大小为1字节char 大小为2字节,所以一个char是能存放一个汉字的int 大小为4字节,float 大小为4字节,double 大小为8字节long 大小为8字

2021-03-20 22:30:30 129

原创 运输层协议 TCP

UDP面向报文的不可靠,无连接的协议。udp的报文头:源端口,目的端口,长度,校验和 总共4个字节。TCPTCP报文头部:源端口,目的端口,序列号,确认号,接收窗口,首部长度,校验和等。一TCP如何保证可靠传输1)序列号/确认应答答:每个报文都会有一个序列号(seq),ACK确认则是序列号+12)超时重传答:每发送一个报文就启动一个计时器,3)滑动窗口&&流量控制答:窗口的大小就是在无需等待确认包的情况下,发送端还能发送的最大数据量。这个机制的实现就是使用了大量的缓

2020-08-09 20:52:39 216

原创 HTTP详解

1状态码2xx200:请求正常204:请求正常,但没数据返回3xx301:永久重定向302::临时重定向4xx:400: 一般是请求语法有问题403:禁止访问404:未找到资源413:上传文件太大5xx:500:服务器内部错误502:是网关错误, 通俗点说就是和web服务器通信失败2请求头contentType: 内容类型content-encoding: 编码content-language: 语言connection: 连接host: 地址cache-con

2020-08-09 17:10:22 238

原创 Mysql---Innodb内幕01

Innodb体系结构Innodb存储引擎主要包括内存池以及后台线程。内存池:多个内存块组成一个内存池,主要维护进程/线程的内部数据、缓存磁盘数据,修改文件前先修改内存、redo log后台线程:刷新内存池中的额缓冲池Innodb的数据以页的形式存储在磁盘,因此采用内存作为缓存页数据。读页数据时,先将磁盘上的页数据“FIX”到缓冲池,下次读即可直接从缓冲池中读。修改数据时,先修改缓冲池中的页数据,然后刷新到磁盘,并不是每次都刷新而是通过Checkpoint机制刷新到磁盘。数据页类型:索引页、数

2020-07-25 21:30:20 136

转载 Mysql 如何实现持久化

mysql是基于硬盘的数据库,所以很多优化都是基于硬盘的瓶颈来做的,为了更好的理解,先花点时间了回忆下硬盘的知识硬盘目前主流的有2种,一种是机械硬盘,一种是固态硬盘大家知道,固态硬盘读写速度比机械硬盘块,而且快很多,那么快的原因是什么呢? 主要跟他们的构造和工作原理有关机械硬盘结构机械硬盘主要由,转抽,磁头,盘片组成,一个盘片上划分了很多个磁道,每个磁道上又进一步分了扇区其中扇区是实际存储数据的地方,一个扇区的大小是512个字节,当对机械硬盘进行读写时需要经过三个步骤1.定位到磁道2.等

2020-07-25 20:55:54 4485 2

原创 rabbitmq01--熟悉API

1声明 交换机exchangeDeclare(String exchange, String type, boolean durable, boolean autoDelete, boolean internal, Map<String, Object> arguments)2 交换机类型DIRECT(“direct”)只有ro

2020-07-19 16:24:57 155

原创 深入理解JVM虚拟机----垃圾回收

垃圾回收的主要内容就是1.什么样的对象该回收,如何判断2 回收哪里,3 怎样回收4 什么时候回收5 垃圾收集器一对象回收可回收的判断标准1 引用计数法:给对象一个引用计数器,没当有一个引用的时候计数器加1优点:实现简单缺点:没法解决循环引用2可行性分析法:从一个GCRoot出发,进行图的深度遍历。问:什么的对象可以选取为GCRoot?答:局部变量表,本地缓存如包装类Integer,常量池,Class对象的属性问:那这么多GCRoots,改如何选呢?答:1栈的全遍历,JVM开始从一

2020-07-04 22:19:45 165

原创 设计模式-----适配器&&桥接模式

1适配器模式1将目标类和适配者类解耦,通过引入一个适配器类来重用现有的适配者类,无须修改原有结构。2增加了类的透明性和复用性,将具体的业务实现过程封装在适配者类中,对于客户端类而言是透明的,而且提高了适配者的复用性,同一个适配者类可以在多个不同的系统中复用。3灵活性和扩展性都非常好,通过使用配置文件,可以很方便地更换适配器,也可以在不修改原有代码的基础上增加新的适配器类,完全符合“开闭原则”。在SpringMVC中可以是进行解耦获取适配器处理请求...

2020-06-21 20:26:08 168

原创 应用层协议详解 HTTP,DNS,STMP等

一HTTPhttp协议简介1)、简单快速:客户向服务器请求服务时,只需传送请求方法和路径。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。2)、灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。3)、HTTP 0.9和1.0使用非持续连接:限制每次连接只处理一个请求,服务器处理完客户的请求,并收到客户的应答后,即断开连接。HTTP 1.1使用持续连接:不必为每个web对象创建一个新的连接,一个连接可以传送多个对象,采用这种方式可以节

2020-06-21 16:52:49 618

原创 Redis基本数据类型,SDS,List,Dict

1SDS 简单动态数据字符串free 空闲长度len 已使用长度buf 数组SDS优点1): O(1)的时间复杂度获取长度2): 空间进行预分配,每次空间不足进行扩容时,会进行预分配,分配规则如下,如果len的长度小于1MB,则等长度分配free,反之分配1MB给free。3):惰性回收,每次进行字符串缩减的时候,不理解进行空间重新分配,而是用free记录下来等下次扩容的时候用,当然SDS提供了相应的长时间空闲空间回收API。2 ListRedis中的 list就是一个普通的双向无环链表

2020-06-16 22:56:18 223

原创 设计模式--原型,构建者,享元,快速失败

1原型模式是指原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。原型模式主要适用于以下:  (1)类初始化消耗资源较多;  (2)使用new 生成一个对象需要非常繁琐的过程(数据准备访问权限等);  (3)构造函数比较复杂;  (4)在循环体中产生大量对象;比如一个周报类week_log和日报类day_log,每次创建类时都需要去setUserName,setAccount这些,可以通过object.clone()来快速克隆一个对象,然后设置不同的content就行了2 build

2020-06-14 15:49:31 121

原创 深入理解JAVA虚拟机----------JAVA内存区域划分

1程序计数器程序计数器的作用是保存当前线程的执行指令2虚拟机栈每一个线程,都有其独立的虚拟机栈,每个方法被执行时,都会创建一个栈幁,栈幁中存储着方法的出口,局部变量表等3本地方法区执行本地方法4堆区Java中的大部分对象都在堆区上分配的(对象可以在栈上分配,或者标量替换)。可以通过 -Xms(堆启动大小)-Xmx(堆最大大小)5方法区用于存放,已经加载的类信息,常量,静态变量等。常量池也是方法区的一部分,用于存放一些字符常量等。永久代,在JDK8中已经被移除。6对象的创建1 当执行n

2020-06-13 21:43:36 188

原创 简单工厂,工厂模式,抽象工厂模式,组合模式

1简单工厂优点(1)工厂类包含必要的逻辑判断,可以决定在什么时候创建哪一个产品的实例。客户端可以免除直接创建产品对象的职责(2)客户端无需知道所创建具体产品的类名,只需知道参数即可缺点(1)工厂类集中了所有产品的创建逻辑,职责过重,一旦异常,整个系统将受影响(2)使用简单工厂模式会增加系统中类的个数(引入新的工厂类),增加系统的复杂度和理解难度(3)系统扩展困难,一旦增加新产品不得不修改工厂逻辑,在产品类型较多时,可能造成逻辑过于复杂、组合模式缺点:客户端需要花更多时间理清类之间的层次

2020-06-08 21:50:10 473

原创 设计模式之代理模式

1代理模式通过代理对象来增强目标对象JDK动态代理实现抽象接口目标对象代理对象cglib代理模式2种动态代理模式都是通过生成类来实现的,JDK需要实现接口,cglib通过集成。

2020-06-06 17:21:20 102

原创 Mysql45讲------索引

1三种索引模型1)hash优点:对等值索引速度很快,确定:去见索引还是要全部遍历,并且要解决hash碰撞2)有序数组优点:等值索引和区间索引都很快缺点:有序数组索引只适用于静态存储引擎,比如你要保存的是2017年某个城市的所有人口信息,这类不会再修改的数据。3)B树&&B+树树其实是为了解决上面2种模型的缺点问:为什么是B树而不是平衡树呢答:平衡树的缺点就是高度太高了,会进行多次磁盘IOM阶B树的特点(阶数指的是子节点的最多个个数)1.根如果不是叶结点,则至少有两个子

2020-06-05 18:07:05 339

原创 ReentryLock的实现细节

1 ReentryLock实现了Lock接口,并且构造方法中初始化内部同步器根据Syn的类别不同加锁步骤也有些不一样,1非公平锁,如下直接尝试获取锁,获取成功则把当前线程设为锁的拥有者,否则进行acquire2公平锁3acquire方法tryAcquire方法也很简单,就是判断当前同步器是否可用,1如果是非公平锁,则直接进行尝试获取锁2如果是公平锁要确保,当前等待队列没有线程,则在进行获取3获取锁失败,这判断当前显示是否已经拥有锁,如果已经拥有,则增加4否则返回false;ad

2020-06-02 19:39:44 3714

原创 Mysql45讲-心得01

一 select语句的执行流程1)先链接mysql,校验权限2)查询缓存,有则返回,无则继续执行3)执行分析器进行语法分析,分析出要查询那些表,那些列,再执行语义分析,看sql语句是否有问题。4)执行优化器,如选用那个索引进行查询5)执行操作引擎,进行实际操作二 redolog和binlog重点理解 :redolog是为了解决刷新脏页数据的,每次行数据更新后都直接flush到di...

2020-05-01 23:22:31 202

原创 JVM及synchronize细节

一 类加载过程1 加载Class文件2 校验文件 例如文件的格式什么的3 准备 给Class对象分配内存,类属性分配4 解析 把文件将常量池中的符号引用替换为直接引用(内存地址)的过程5 初始化 就是执行心态代码块给静态变量赋值问题 Java中的应用是直接引用,那么在多次GC后打印地址为什么不会变答 java中的引用 其实是引用的句柄,通过这样的中间引用来保持地址变...

2020-04-21 00:55:05 114

原创 单例模式-详解

1 懒汉式public class SingleTon{private static SingleTon is = new SingleTon();private SingleTon(){}public static SingleTon getInstance(){return is;}}2 懒汉式public class SingleTon{private static ...

2020-04-10 23:04:42 120 1

原创 设计模式7大原则理解

1 单一职责所谓的单一职责就是类功能不要出现交叉比如在UserService接口中就定义对 用户处理login什么的,不要出现其他方法这样维护起来很麻烦,代码看起来也很乱2开闭原则开闭原则是设计类的基本原则,对一个类型的扩展是开发的,修改是禁止的;3接口隔离原则所谓的接口隔离就是一个类实现的接口必须都是要使用的,也可以理解为要接口单位最小化4依赖倒置原则所谓的依赖倒置原则就是依赖...

2019-12-24 17:37:48 155

原创 初识SpringBoot-配置类

SpringBoot的配置类//这种配置适合出现在集体开发中@Configuration@EnableConfigurationProperties(jdbcProperties.class)public class jdbc {@Beanpublic DruidDataSource getDataSource(jdbcProperties properties){DruidData...

2019-10-03 17:56:31 138

空空如也

空空如也

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

TA关注的人

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