自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MySQL 索引详解(B+数、二级索引)

MySQL 索引详解1.概述1.1 简介MySQL 官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。索引的本质:索引是数据结构。你可以简单理解为“排好序的快速查找数据结构”,满足特定查找算法。这些数据结构以某种方式指向数据,这样就可以在这些数据结构的基础上实现高级查找算法。1.2 优缺点1.2.1 优点类似大学图书馆建书目索引,提高数据检索的效率,降低 数据库的IO成本(1),这也是创建索引最主要的原因通过创建唯一索引,可以保证数据库表中每一行 数据的唯一性

2022-02-09 18:15:23 1234

原创 MySQL 架构设计、引擎(InnoDB、MyISAM)详解

MySQL 架构、引擎详解1.MySQL 逻辑架构1.1 概述那服务器进程对客户端进程发送的请求做了什么处理,才能产生最后的处理结果呢?这里以查询请求为例展示:展开:1.2 详解1.2.1 连接层提供客户端和连接服务,包含本地 Sock 通信和大多数基于客户端/服务端工具实现的类似于 TCP/IP 的通信,主要完成一些类似于连接处理、授权认证、及相关的安全方案,在该层上引入了类似线程池的概念,为通过认证安全接入的客户端提供连接,同样在该层上可以实现基于 SSL 的安全链接。服务器也会为安

2022-02-09 17:12:15 576

原创 AQS 详解及源码注释分析

AQS 详解及源码分析1.概述AQS 是什么?全称为 AbstractQueuedSynchronizer,是 JDK 中的一个抽象类。首先我们看看继承它的有哪些类:基本上所有 JUC 并发包中的类都和它有关系,AQS 是用来构建锁或者其他同步器组件(读写锁等)的重量级基础框架及整个JUC体系的基石,通过内置的 FIFO 队列来完成对资源获取线程的排队工作,并通过一个 int 类型变量表示持有锁的状态。通过 AQS 可以维持对共享资源的并发操作。2.构成通过这个 UML 图,可以得知 AQS

2022-02-09 02:56:57 325

原创 JVM 垃圾回收详解

JVM 垃圾回收1.概述JVM 会自动帮程序员进行垃圾回收,并不需要程序员手动的进行垃圾回收(C++等语言需要自己手动回收垃圾),了解 JVM 的垃圾回收,可以帮程序员写出占用内存更小、更高效的程序。1.1 什么是垃圾?垃圾是指运行程序中没有任何指针指向的对象,这个对象就是需要被回收的垃圾。1.2 什么区域需要进行垃圾回收JVM 的内存结构包括五大区域:程序计数器、虚拟机栈、本地方法栈、堆区、方法区。其中程序计数器、虚拟机栈、本地方法栈3个区域随线程而生、随线程而灭,因此这几个区域的内存分配和回

2022-02-08 04:35:06 3177 2

原创 JVM(Java 虚拟机)各个组成详细总结

JVM(Java 虚拟机)1.简介1.1 概述JVM 是运行操作系统之上,没有和硬件有直接交互,但有可以通过接口调用来与底层操作系统交互。Java 能够实现一次编译,全平台运行,就是通过 JVM 来实现。通过 JVM 可以让相同的数据类型在不同的系统上运行得到统一的结果。1.2 组成程序计数器:线程私有的,是一块很小的内存空间,作为当前线程的行号器,用于记录当前虚拟机正在执行的线程指令地址虚拟机栈:线程私有的,每个方法执行的时候都会创建一个栈帧,用于存储局部变量表、操作数、动态链接和方法

2022-02-08 03:20:08 563

原创 单点登录(SSO)、JWT、HTTP详解及实例演示

单点登录(JWT)作者:pox21s1.HTTP1.1 概述超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求 - 响应协议,它通常运行在TCP之上。(1)所谓的"协议"实际上就是双方约定好的"格式"让双方都能看得懂的东西,交互实际上就是"请求"和"响应"。(1):在HTTP/3 使用的就是 UDP 协议1.2 发展HTTP/1.0HTTP/1.0 成为最重要的面向事务的应用层协议。该协议对每一次请求/响应建立并拆除一次连接。默认

2022-02-07 17:56:24 2146 3

原创 高频知识点总结 - 02

高频知识点总结 - 021.谈谈对volatile的理解volatile 是 JVM 提供的一种轻量级的同步机制,它能够保证线程之间的可见性、不能保证原子性、禁止指令重排(保证有序性)。下面补充一个概念:JMM(java money model)Java 内存模型1.1 JMMJMM 本身是一种抽象的概念,并不是真实存在,**它描述的是一组规则或规范,**通过这个规范定义了程序中各个变量(包括实例字段、静态字段和构成数组对象的元素)的访问方式JMM 本身要求可见性、原子性、有序性

2022-02-07 01:45:38 282

原创 高频知识点总结 - 01

高频知识点总结 - 011.关于i++和++i1.1 对字节码的分析i = i++ =》 先将i取出到操作数栈中,然后让i在局部变量表中自增,自增完以后,将操作数栈中的i赋值给i,所以总体来说,i是自增了的,但是在操作数栈中的i是没有变化的,在后面赋值的时候,i又变回了原值i = ++i =》 是先自增后再将i取出到操作数栈中,最后赋值,所以i最后的值是变化的。1.2 实例public class i_increase { public static void main(String[]

2022-02-07 01:19:11 206

原创 Redis 超详细总结

Redis 总结作者:pox21s1.NoSQLNoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,泛指非关系型的数据库。NoSQL 不依赖业务逻辑方式存储,而以简单的key-value模式存储。因此大大的增加了数据库的扩展能力。不遵循SQL标准不支持ACIDRedis 自带原子性,后面会展开远超于SQL的性能读写性能优异:读11万、写8万(秒)2.Redis 简介2.1 概述几乎覆盖了 Memcached 的绝大部分功

2022-02-07 01:00:31 244 1

原创 Spring MVC 详细笔记、原理及实例演示

Spring MVC参考:编程帮1.概述1.1 简介**Spring MVC **框架是一个开源的 Java 平台,为开发强大的基于 Java 的 Web 应用程序提供全面的基础架构支持非常容易和非常快速。Spring web MVC框架提供了MVC(模型 - 视图 - 控制器)架构和用于开发灵活和松散耦合的Web应用程序的组件。MVC模式导致应用程序的不同方面(输入逻辑,业务逻辑和UI逻辑)分离,同时提供这些元素之间的松散耦合。1.2 MVC 模式概述MVC 设计模式一般指 MVC 框

2022-02-06 11:59:08 266

原创 Spring 框架详细总结及实例演示

Spring1.概述1.1 简介开源免费的、轻量级的、非侵入式的容器(一个服务器软件,一个框架),类与类之间的管理,帮助开发人员创建对象,管理对象等的一款 Java 开发框架。针对接口编程,解耦合。1.2 核心思想IOC(控制反转)AOP(面向切面编程)思想是上层建筑,不是具体的实现。好比:JVM 中方法区和元空间之间的关系。1.3 优缺点1.3.1 优点轻量Spring 核心功能所需的jar总共3M左右针对接口编程,解耦合通过 Spring 提供的IOC容

2022-02-05 18:08:32 517

原创 计算机网络 - 传输层(TCP、UDP)

计算机网络 - 传输层传输层运输层位于应用层和网络层之间,是分层的网络体系结构中重要的部分,该层为运行在不同主机上的应用进程提供直接的通信服务起着至关重要的作用。在这里我们将讨论两个大的问题:将网络层在不同端系统之间的通信服务扩充到运行在两个端系统上不同的应用层进程之间的通信服务(如何实现进程之间通信的可靠传输)和控制传输层实体的传输速度以避免网络拥塞或者从网络拥塞中恢复过来,这里需要考虑的有拥塞的后果和原因以及常见的拥塞控制手段,特别的,我们将了解TCP协议中的拥塞控制。3.1 概述和运输层服

2022-02-05 12:56:10 812

原创 计算机网络原理 - 应用层

计算机网络原理 - 应用层应用层应用层是主机上进程之间的交互,不同的进程内可以有多个线程,多线程处理数据2.1 应用层协议原理研发网络应用的核心是写出能够运行在不同端系统和通过网络彼此通信的程序;值得注意的是,我们不需要写在网络核心设备如路由器或者链路层交换机上运行的软件。这种设计方式即将应用程序限制在端系统的方法,促进了大量网络应用程序的迅速研发和部署2.2.1 网络应用程序体系结构应用程序的体系结构不同于网络的体系结构。从应用程序开发者的角度来看,网络体系结构是固定的,并为应用程

2022-02-05 12:52:20 367

原创 计算机网络原理 - 概述

计算机网络原理 - 概述​ 参考书籍:计算机网络原理 自顶向下方法​ 参考视频:中科大 - 郑烇老师计算机网络和因特网1.1 什么是因特网我们可以从两个角度来回答这个问题:一种是描述组成它的软硬件;另一种是将其视为为分布式应用提供基础服务的联网设施来描述。其实,第一种角度,是从它的组成来描述,第二种角度是从它的功能来描述1.1.1 组成描述因特网是一个世界范围的计算机网络,这意味着它互联了数以亿计的计算设备(不仅仅是计算机);这些设备包括但不限于传统PC、工作站以及所谓的服务器

2022-02-05 12:50:16 134

原创 计算机网络原理 - 网络层、链路层总结笔记

计算机网络原理 - 网络层、链路层##4.网络层网络层主要是利用IP上的传输,在路由器中最高达到的层次为网络层,分组交换机只到链路层;IP准确来说不是一个主机的地址,而是一个接口的地址。4.1 概述网络层的作用:将分组从一台发送主机移动到一台接收主机。4.1.1 转发和路由选择转发:当一个分组到达路由器的一条输入链路时,路由器必须将该分组移动到适当的输出链路路由选择:分组从发送方流向接收方时,网络层必须决定这些分组采用的路由或路径,路由选择算法概述:转发是路由器本地动作,路由

2022-02-05 12:48:50 5337

原创 Spring Cloud 笔记

Spring Cloud不在能知,乃在能行。1.环境配置Spring Boot:2.2.2Spring Cloud:Hoxton.SR1Cloud Alibaba:2.1.0MySQL:5.71.1 创建父工程1.1.1 步骤编写POM文件创建依赖管理设置依赖数量设置依赖版本管理1.1.2 dependencyManagement 和 dependencies 的区别dependencyManagement是父工程依赖版本和约束,并不会下载相应的依赖,主要的目的

2022-02-05 12:40:21 196

原创 动态规划分析(粗)

1.动态规划动态规划主要作用是利用已经求得信息来帮助解后面的问题。1.1 递归基本上所有的动态规划问题,都可以转换为递归问题。但是递归虽然能够解决出问题,但它需要消耗的时间和空间是非常巨大的。递归的最主要的作用就是穷尽所有的可能,是一种暴力的解题方式。我们以一个递归问题来转换为动态规划,看看动态规划的优势在哪里。1.1.1 动态规划经典题目 - 斐波那契数列题目:斐波那契数列的前两个为1,后面的为当前数字的前面两个只和(fib[i] = fib[i-1] + fib[i-2]),求斐波

2022-02-05 12:34:25 309

原创 Java集合类(Collection)详解及源码分析

Java集合类两耳不闻窗外事,一心只读圣贤书。1.概述Java集合类主要是Collection接口下的单列集合和Map接口下的K-V键值对类型的集合。2.Collection2.1 Collection 中的常用方法contains(Object o)contains方法的作用是查询当前集合中是否存在所传入的值。查询的方式是查询传入对象的hashcode。举例:Collection coll = new ArrayList();// 对比测试实例化一个对象的hashCod

2022-02-05 12:32:16 840

原创 RabbitMQ 六大模式详解及实例

RabbitMQ1.“Hello World” - 简单模式1.1 过程导入依赖创建消息生产者创建消息消费者1.2 详解1.导入相关依赖<!--Rabbit客户端依赖--><dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId> <version>5.8.0</versio

2022-02-05 12:23:59 1203

原创 RabbitMQ快速入门及实例演示

RabbitMQ先做起来,再去想其他。1.MQ 消息队列概念MQ(message queue)消息队列,FIFO先入先出。对服务器的请求先加入到消息队列中,再由消息队列来进行请求的分发。还是一种跨进程的通信机制,用于上下游传递消息。在互联网架构中,MQ是一种非常常见的上下游“逻辑解耦 + 物理解耦”的消息通信服务。使用MQ以后,上游只需要将消息发送给MQ,无需关注是否下游接收,MQ会监督消息的接收,不再需要依赖其他服务。1.1 用处1.1.1 流量消峰举个例子,如果订单系统最多能处理一万

2022-02-05 11:50:43 1284 1

原创 JUC并发编程(java.util .concurrent工具包)详解与实例演示

JUC 并发编程作者:pox21s概述在Java中,线程部分是一个重点,本篇文章说的是关于线程并发编程。JUC就是java.util .concurrent工具包的简称。这是一个处理线程的工具包,从JDK 1.5开始出现。1.基本概念1.1 进程和线程1.1.1 定义进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个基本单位。线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥

2022-02-03 18:43:03 579

原创 策略模式、观察者模式、状态模式原理及实例

策略模式基本介绍策略模式(Strategy Pattern)中,定义算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户这算法体现了几个设计原则。第一 把变化的代码从不变的代码中分离出来第二 针对接口编程而不是具体类(定义了策略接口第三 多用组合/聚合,少用继承(客户通过组合方式使用策略)。策略模式就是通过组合的方式将类的一些方法组合起来,每个类都可以持有不同的策略。通过持有不同的策略来达到同样方法不同执行方式的效果。context就是用来存放策

2022-02-03 17:43:00 479

原创 组合模式、代理模式(静态代理、动态代理)原理及实例

组合模式基本介绍组合模式(Composite Pattern),又叫部分整体模式,它创建了对象组的树形结构,将对象组合成树状结构以表示“整体-部分”的层次关系。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式。组合模式使得用户对单个对象和组合对象的访问具有一致性,即:组合能让客户以一致的方式处理个别对象以及组合对象解决的问题组合模式解决这样的问题,当我们的要处理的对象可以生成一颗树形结构,而我们要对树上的节点和叶子进行操作时,它能够提供一致的方

2022-02-03 17:37:18 1973

原创 简单工厂、工厂模式、抽象工厂模式、迭代器模式原理及实例

工厂模式三种类型,简单工厂、工厂模式、抽象工厂。将实例的创建交给工厂,像现实生活中的工厂一样批量生产产品。简单工厂模式基本介绍简单工厂模式是属于创建型模式,是工厂模式的一种。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式简单工厂模式:定义了一个创建对象的类,由这个类来封装实例化对象的行为在软件开发中,当我们会用到大量的创建某种、某类或者某批对象时,就会使用到工厂模式实例演示通过简单工厂模式来播种蔬菜。1)UML类图2

2022-02-03 17:32:26 346

原创 原型模式、装饰者模式、建造者模式原理及实例

原型模式基本介绍原型模式(Prototype模式)是指:用原型实例指定创建对象的种类,并且通过拷贝这些原型,创建新的对象实例原型模式是一种创建型设计模式,允许一个对象在创建另外一个可定制的对象时,无需知道如何创建的细节工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建,即 对象.clone()通过克隆的方式创建需要实现原型模式那么就要在相应的类上实现Cloneable接口,然后重写clone()方法。实例演

2022-02-03 17:25:04 309

原创 单例模式八大方式详解

单例模式模式介绍所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。比如 Hibernate 中的 SessionFactory ,它充当数据存储源的代理,并负责创建 Session 对象。 SessionFactory 并不是轻量级的,一般情况下,一个项目通常只需要一个 SessionFactory 就够,这是就会使用到单例模式。八种方式饿汉式(静态常量)饿汉式(静态代码块)懒汉式(线程不安全

2022-02-03 17:00:28 32

原创 Java设计模式 - 概述

Java设计模式像粒种子,埋在土里。作者:pox21s概述软件工程中,设计模式(design pattern)是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。编写软件过程中,程序员面临着来自耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性 等多方面的挑战。设计模式优势代码重用性代码的复用,相同代码直接使用,不必重复编写可读性编程规范性,便于其他程序员理解使用可扩展性当需要增加新功能时,方便添加,也称为可维护性可靠性在增

2022-02-03 16:43:55 30

空空如也

空空如也

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

TA关注的人

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