自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ---目录---

各部分总结的跳转连接入口

2021-05-27 18:28:47 183

原创 MQ总结·

MQ总结MQ是什么MQ(Message Queue)消息队列,是基础数据结构中“先进先出”的一种数据结构。一般用来解决应用解耦,异步消息,流量削峰等问题,实现高性能,高可用,可伸缩和最终一致性架构。MQ的应用场景解耦:一个业务需要多个模块共同实现,或者一条消息有多个系统需要对应处理,只需要主业务完成以后,发送一条MQ,其余模块消费MQ消息,即可实现业务,降低模块之间的耦合。异步:主业务执行结束后从属业务通过MQ,异步执行,减低业务的响应时间,提高用户体验。削峰:高并发情况下,业务异步处理,

2022-03-26 17:13:19 2948

原创 IO多路复用

I/O 多路复用同步与异步同步: 同步就是发起一个调用后,被调用者未处理完请求之前,调用不返回。异步: 异步就是发起一个调用后,立刻得到被调用者的回应表示已接收到请求,但是被调用者并没有返回结果,此时我们可以处理其他的请求,被调用者通常依靠事件,回调等机制来通知调用者其返回结果。同步和异步的区别最大在于异步的话调用者不需要等待处理结果,被调用者会通过回调等机制来通知调用者其返回结果。阻塞和非阻塞阻塞: 阻塞就是发起一个请求,调用者一直等待请求结果返回,也就是当前线程会被挂起,无法从事其他任

2022-03-26 11:11:16 441

原创 Dubbo总结

Dubbo总结什么是DubboApache Dubbo 是一款微服务开发框架,它提供了 RPC通信 与 微服务治理 两大关键能力。这意味着,使用 Dubbo 开发的微服务,将具备相互之间的远程发现与通信能力, 同时利用 Dubbo 提供的丰富服务治理能力,可以实现诸如服务发现、负载均衡、流量调度等服务治理诉求。同时 Dubbo 是高度可扩展的,用户几乎可以在任意功能点去定制自己的实现,以改变框架的默认行为来满足自己的业务需求。Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能

2022-03-25 13:43:25 3351

原创 操作系统基础总结

操作系统基础什么是进程?进程就是应⽤程序在内存中分配的空间,也就是正在运⾏的程序,各个进程之间互不⼲扰。同时进程保存着程序每⼀个时刻运⾏的状态。 进程让操作系统的并发成为了可能。进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础什么是线程?**线程是操作系统能够进行运算调度的最小单位,被包含在进程之中,是进程中的实际运作单位。**让⼀个线程执⾏⼀个⼦任务,这样⼀个进程就包含了多个线程,每个线程负责⼀个单独的⼦任务。进程让操作系统的并

2022-03-24 18:43:08 1628

原创 zookeeper总结

ZooKeeper总结ZooKeeper概述ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现。它提供了简单原始的功能,分布式应用可以基于它实现更高级的服务,比 如分布式锁,配置管理,集群管理,命名管理,队列管理。ZooKeeper所提供的服务主要是通过 :数据结构——Znode + 原语 + 通知机制——Watcher机制 实现ZooKeeper的常用命令create /test laogong // 创建永久节点 crea

2022-03-23 12:08:38 4681

原创 分布式总结

分布式总结什么是分布式系统?分布式系统是一个硬件或软件组件分布在不同的网路计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。分布式服务顾名思义服务是 分散部署在不同的机器上的,一个服务可能负责几个功能,是一种面向SOA架构的,服务之间也是通过rpc来交互或者是webservice来交互的。 逻辑架构设计完后就该做物理架构设计,系统应用部署在超过一台服务器或虚拟机上,且各分开部署的部分彼此通过各种通讯协议交互信息,就可算作分布式部署,生产环境下的微服务肯定是分布式部署的,分布式部署的应用不一定

2022-03-23 10:49:50 4340

原创 Redis常用命令

Redis常用命令String类型命令说明案例set添加key-valueset username adminget根据key获取数据get usernamestrlen根据key获取值的长度strlen keyexists判断key是否存在exists name 返回1存在 0不存在del删除redis中的keydel keyKeys用于查询符合条件的keykeys * 查询redis中全部的keykeys n?me 使用占位

2022-03-12 16:41:35 237

原创 Redis部署分片哨兵集群

Redis安装上传安装包解压redis说明: tar -xvf redis-5.0.4.tar.gz 解压完成之后删除安装包/ 修改文件名称安装redis说明: 在redis根目录中执行如下命令命令: 1. make2.make install进制换算1k => 1000 bytes1kb => 1024 bytes1m => 1000000 bytes1mb => 10241024 bytes1g => 1000000000 bytes1gb

2022-03-12 16:36:16 1875 1

原创 Redis总结

Redis总结什么是RedisRedis是一个开源的,内存中的数据结构存储系统,可以用作数据库、缓存和消息中间件。它是key,value结构的存储系统,它支持多种数据类型的数据结构,如字符串(strings),散列(hashes),列表(lists),集合(sets),有序集合(sorted sets)等。它可以通过Redis哨兵和自动分区提供高可用性。引入Redis缓存机制可以有效的降低用户访问物理设备的频次,提高响应速度。为什么要用Redis?Q: redis中存储数据是以key-value形式

2022-03-12 16:34:36 2834

原创 MySQL其他问题

truncate table 可以不删除表的情况下,快速情况表数据

2022-03-11 14:31:30 95

原创 MySQL总结

MySQL总结三大范式三大范式: 原子性( 不可再分 ) / 主键唯一 (全部数据依赖主键) / 每列字段必须和主键有直接关系而不是间接关系第一范式(1NF)要求数据库表的每一列都是不可分割的原子数据项。第二范式(2NF)在1NF的基础上,非码属性必须完全依赖于候选码(在1NF基础上消除非主属性对主码的部分函数依赖)第二范式需要确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言)。第三范式(3NF)在2NF基础上,任何非主属性不依赖于其它非主属性(

2022-03-11 14:29:31 1952 1

原创 多线程相关问题

两个线程循环打印abpublic class WaitAndNotify { private static Object lock = new Object(); static class ThreadA implements Runnable { @Override public void run() { synchronized (lock) { for (int i = 0; i < 5;

2022-03-09 22:56:02 195

原创 Java多线程总结

Java多线程什么是多线程多线程就是把操作系统中的这种并发执行机制原理运用在一个程序中,把一个程序划分为若干个子任务,多个子任务并发执行,每一个任务就是一个线程。多线程有什么好处采用多线程技术的应用程序可以更好地利用系统资源。主要优势在于充分利用了CPU的空闲时间片,用尽可能少的时间来对用户的要求做出响应,使得进程的整体运行效率得到较大提高,同时增强了应用程序的灵活性。由于同一进程的所有线程是共享同一内存,所以不需要特殊的数据传送机制,不需要建立共享存储区或共享文件,从而使得不同任务之间的协调操作

2022-03-09 22:55:40 537

原创 剑指offer1总结

Leetcode剑指offer1面试题09. 用两个栈实现队列(清晰图解)解题思路:栈无法实现队列功能: 栈底元素(对应队首元素)无法直接删除,需要将上方所有元素出栈。双栈可实现列表倒序: 设有含三个元素的栈 A = [1,2,3]和空栈 B=[]。若循环执行 A 元素出栈并添加入栈 B ,直到栈 A 为空,则 A = [] , B=[3,2,1] ,即 栈 B 元素实现栈 A 元素倒序 。利用栈 B 删除队首元素: 倒序后,B 执行出栈则相当于删除了 A 的栈底元素,即对应队首元素。函数设计

2022-03-06 21:14:07 722

原创 Java基础总结

基础总结Java特点面向对象Java跨平台Java语言具有健壮性 异常处理 垃圾自动收集Java容易开发分布式项目什么是面向对象?面向过程?面向对象是一种软件开发思想,它是对现实世界的一种抽象,面向对象会把相关的数据和方法组织为一个整体来看待。相对的另一种开发思想就是面向过程的开发思想,面向过程是一种以过程为中心的编程思想,面向过程一般是按照顺序执行每个方法,而面向对象可以不严格按照顺序执行每个方法。面向过程优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源。比如,

2022-03-05 18:00:03 515

原创 Java集合总结

Java集合Java容器都有哪些?Java 容器分为 Collection 和 Map 两大类,其下又有很多子类,如下所示:CollectionListArrayListLinkedListVectorStackSetHashSetLinkedHashSetTreeSetMapHashMapLinkedHashMapTreeMapConcurrentHashMapHashtableArrayList 和 LinkedList 的区别是什么?主要体现以下三

2022-03-05 17:46:35 290

原创 JVM总结

JVMJVM内存模型程序计数器 : 如果线程执行的是个java方法,那么计数器记录虚拟机字节码指令的地址。如果为native【底层方法】,那么计数器为空。这块内存区域是虚拟机规范中唯一没有OutOfMemoryError的区域。虚拟机栈: java方法的执行和结束对应着栈帧的入栈和出栈,栈帧 : 用于存储局部变量表,操作栈,动态链接,方法出口等信息局部变量表所需要的内存空间在编译期完成分配,当进入一个方法时,这个方法在栈中需要分配多大的局部变量空间是完全确定的,在方法运行期间不会改变局部变量表大

2022-03-01 17:20:19 338

原创 网络基础总结

七层OSI模型1.1 每层的作用从下往上的顺序:物理层 : 相当于网线 wifi 统一的规范, 比如网线接口型号等 虽然链路层的作用是将帧从一个端系统运输到另一个端系统,而物理层的作用是将帧中的一个个 比特 从一个节点运输到另一个节点,物理层的协议仍然使用链路层协议,这些协议与实际的物理传输介质有关,例如,以太网有很多物理层协议:关于双绞铜线、关于同轴电缆、关于光纤等等。数据链路层: 定义如何格式化数据以便传输( 光纤用光信号 ), / 及如何控制对网络的访问 / 支持错误检测网络层: 路由(通

2022-03-01 16:17:35 2433

原创 mybatis的参数传递

Mybatis传参规则1.单值传参void deleteItems(String name)Mybatis的源码要求单值传参,取值时通过下标的方式取值(取值时参数名称可以任意)2.多值传参void deleteItems(String name,String sex)Mybatis高版本的源码中做了规定,自动的将多值转化为单值 即封装成了MAP集合 K-V 结构K 在老版本中取得时@Param注解里面的名字作为Key但在高版本的mybatis里面采用的是自动将参数名称作为Key进行存储3.

2021-11-18 09:30:05 211

原创 JVM相关问题

JVM总结JVM内存模型详情链接元空间和方法区及永久代的关系Java8中的JVM元空间是不是方法区?严格来说,不是。首先,方法区是JVM规范的一个概念定义,并不是一个具体的实现,每一个JVM的实现都可以有各自的实现;然后,在Java官方的HotSpot 虚拟机中,Java8版本以后,是用元空间来实现的方法区;在Java8之前的版本,则是用永久代实现的方法区;也就是说,“元空间” 和 “方法区”,一个是HotSpot 的具体实现技术,一个是JVM规范的抽象定义;所以,并不能说“JVM的

2021-05-26 21:01:57 81

原创 DNS详解

什么是DNS域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS解析是分布式存储的,比如根域名服务器ROOT DNS,只存储260个顶级域名的DNS服务器的ip地址。顶级域名服务器如.com的DNS服务器,存储的则是一些一级域名的权威DNS服务器地址(如suning.com,qq.com,163.com的DNS)。而suning.com的权威DNS存储的才是具体的主机记录(如A记录,

2021-05-16 20:41:12 1945 1

原创 五层OSI模型和七层OSI

五层OSI模型和七层OSI七层OSI应表会传网数物五层OSI应传网数物

2021-05-16 20:30:32 122

原创 HTTP和TCP的关系

首先,纠正一下我以前一直误解的概念,我一直以为Http和Tcp是两种不同的,但是地位对等的协议,虽然知道TCP是传输层,而http是应用层今天学习了下,知道了 http是要基于TCP连接基础上的,简单的说,TCP就是单纯建立连接,不涉及任何我们需要请求的实际数据,简单的传输。http是用来收发数据,即实际应用上来的。第一:从传输层,先说下TCP连接,我们要和服务端连接TCP连接,需要通过三次连接,包括:请求,确认,建立连接。即传说中的“三次握手协议”。第一次:C发送一个请求连接的位码SYN和一个随机产生

2021-05-16 20:02:13 18485 1

原创 TCP和UDP区别以及TCP的三次握手和四次挥手

TCP和UDP的概念TCP: 传输控制协议(TCP,Transmission ControlProtocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议UDP: Internet 协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP,User DatagramProtocol)。UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据包的方法TCP和UDP的区别一、是否基于连接TCP是面向连接的协议,而UDP是无连接的协议。即TCP面向连接;UDP

2021-05-16 19:50:43 1660

原创 HTTP与HTTPS的区别

HTTP与HTTPS的区别HTTP协议超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS,为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL/TLS协议,SSL/

2021-05-16 19:30:47 96

原创 代理模式

代理模式 理解动态代理机制前,先理解代理模式。 代理模式使用代理对象完成用户请求,屏蔽用户对真实对象的访问。现实世界的代理人被授权执行当事人的一些事宜,无需当事人出面,从第三方的角度看,似乎当事人并不存在,因为他只和代理人通信。而事实上代理人是要有当事人的授权,并且在核心问题上还需要请示当事人。 优点:代理模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.代理模式总共分三种:静态代理:

2021-05-13 21:27:02 258

原创 JVM GC

JVM 垃圾回收0. JVM内存模型(jmm)https://www.jianshu.com/p/76959115d486 这篇非常详细程序计数器 : 如果线程执行的是个java方法,那么计数器记录虚拟机字节码指令的地址。如果为native【底层方法】,那么计数器为空。这块内存区域是虚拟机规范中唯一没有OutOfMemoryError的区域。虚拟机栈: java方法的执行和结束对应着栈帧的入栈和出栈,栈帧 : 用于存储局部变量表,操作栈,动态链接,方法出口等信息局部变量表所需要

2021-04-17 21:40:14 408

原创 JVM内存模型和类加载机制

JVM内存模型概述程序计数器 : 如果线程执行的是个java方法,那么计数器记录虚拟机字节码指令的地址。如果为native【底层方法】,那么计数器为空。这块内存区域是虚拟机规范中唯一没有OutOfMemoryError的区域。虚拟机栈: java方法的执行和结束对应着栈帧的入栈和出栈,栈帧 : 用于存储局部变量表,操作栈,动态链接,方法出口等信息局部变量表所需要的内存空间在编译期完成分配,当进入一个方法时,这个方法在栈中需要分配多大的局部变量空间是完全确定的,在方法运行期间不会改变局部变量表大小。

2021-04-15 21:57:04 99

原创 Java中的队列

队列1. 基本概念队列的特性就是先进先出 ( FIFO )1.1 队列的基本认识队列是 线性表,有两种存储方式: 数组 / 链表队列按照:①、单向队列(Queue):只能在一端插入数据,另一端删除数据。②、双向队列(Deque):每一端都可以进行插入数据和删除数据操作。1.2 顺序队列的实现顺序队列是基于数组实现的,针对于队列的操作主要有以下几个(1)插入(2)删除(3)查找元素(4)队列长度(5)是否为空、具体实现:插入操作: 我们首先要先判断当前队列是否已满,如果满了

2021-04-14 21:16:26 203

原创 Servlet和MySQL基本语法概述

Servlet概述什么是Servlet?Servlet是由SUN公司提供的一门动态Web资源开发技术静态Web资源:不同的人,在不同的条件下访问后看到的是相同的效果,这样的资源叫做静态Web资源(html、css、js等)动态Web资源:在不同的访问条件下看到的是不同的效果,这样的资源叫做动态Web资源 (Servlet、jsp、.NET、PHP等)Servlet本质上是一段Java程序,和之前的Java程序不同的是,Servlet程序无法独立运行,需要将Servlet程序放在服务器中(比如t

2021-04-14 17:50:55 710

原创 java中的集合

SetSet属于Collection接口下的不包含重复元素的接口不包含索引不能使用普通的for循环遍历1.0 Set的迭代:Set hs = new HashSet();Iterator it = hs.iterator(); while (it.hasNext()) { System.out.println(it.next()); }set去重原理在如下代码中:public static void main(String[] .

2021-04-14 17:01:01 81

原创 Java面试知识点总结(持续更新)

面试知识点总结JDK代理和CGLib代理代理模式代理模式是23种设计模式的一种,他是指一个对象A通过持有另一个对象B,可以具有B同样的行为的模式。为了对外开放协议,B往往实现了一个接口,A也会去实现接口。但是B是“真正”实现类,A则比较“虚”,他借用了B的方法去实现接口的方法。A虽然是“伪军”,但它可以增强B,在调用B的方法前后都做些其他的事情。Spring AOP就是使用了动态代理完成了代码的动态“织入”。使用代理好处还不止这些,一个工程如果依赖另一个工程给的接口,但是另一个工程的接口不稳定,经常

2021-03-21 20:10:25 475

原创 Shiro框架的认证授权加密

1 Shiro安全框架简介1.1 Shiro概述Shiro是apache旗下一个开源安全框架(http://shiro.apache.org/),它将软件系统的安全认证相关的功能抽取出来,实现用户身份认证,权限授权、加密、会话管理等功能,组成了一个通用的安全认证框架。使用shiro就可以非常快速的完成认证、授权等功能的开发,降低系统成本。用户在进行资源访问时,要求系统要对用户进行权限控制,其具体流程如图-1所示:图-11.2 Shiro概要架构在概念层面,Shiro 架构包含三个主要的理

2021-03-10 17:18:47 339

原创 Spring AOP简介

1 Spring AOP简介1.1 AOP 概述1.1.1 AOP 是什么?AOP(Aspect Orient Programming)是一种设计思想,是软件设计领域中的面向切面编程,它是面向对象编程(OOP)的一种补充和完善。它以通过预编译方式和运行期动态代理方式,实现在不修改源代码的情况下给程序动态统一添加额外功能的一种技术。如图-1所示:图-1AOP与OOP字面意思相近,但其实两者完全是面向不同领域的设计思想。实际项目中我们通常将面向对象理解为一个静态过程(例如一个系统有多少个模块,一个模

2021-02-24 14:29:55 251

原创 Ajax技术

Ajax 技术简介背景分析?在互联网高速发展的今天,传统的WEB应用,对于高并发、高性能、高可靠性的要求已迫在眉睫。单线程方式的客户端与服务端交互方式已经不能满足现阶段的需求.我们需要以异步、按需加载的方式从服务端获取数据并及时刷新,来提高用户体验,于是Ajax技术诞生。Ajax 是什么?Ajax (Asynchronous JavaScript and XML) 是一种Web应用客户端技术,可以借助客户端脚本(javascript)与服务端应用进行异步通讯(可以有多个线程同时与服务器交互),并且按

2021-02-16 14:50:14 133

原创 SpringBoot+Mybatis+Spring+Thymeleaf技术实现简单的CRUD操作

业务描述需求描述任何一个电商系统中都有一个商品子系统,而与商品相关联都会有一个品牌信息管理,在当前业务系统设计中我们就是要对商品品牌信息的管理进行设计和实现.业务架构分析在品牌(Brand)信息管理中就是要实现对商品品牌信息的添加,修改,查询,删除等业务,如图所示:业务基本原型设计基于品牌业务描述,对品牌模块的业务原型进行分析和设计,如图所示:品牌列表页面品牌编辑页面项目技术架构分析及设计在品牌管理模块实现过程,我们采用典型的C/S架构进行实现.客户端我们基于浏览器进行实现

2021-02-09 23:49:26 599 1

原创 Spring MVC入门

Spring MVC 简介背景分析在大型软件系统设计时,业务一般会相对复杂,假如所有业务实现的代码都纠缠在一起,会出现逻辑不清晰、可读性差,维护困难,改动一处就牵一发而动全身等问题。为了更好解决这个问题就有了我们现在常说的分层架构设计。MVC 是什么MVC是一种软件架构设计思想,基于MVC架构将我们的应用软件进行分层设计和实现,例如可以分为视图层(View),控制层(Controller),模型层(Model),通过这样的分层设计让我们程序具备更好的灵活性和可可扩展性.因为这样可以将一个复杂应用程序

2021-02-07 14:58:02 106

原创 Spring Boot与Mybatis及日志

MyBatis的初步分析Mybatis是一个优秀的持久层框架,底层基于JDBC实现与数据库的交互。并在JDBC操作的基础上做了封装和优化,它借助灵活的SQL定制,参数及结果集的映射方式,更好的适应了当前互联网技术的发展。Mybatis框架的简单应用架构如图所示:在当今的互联网应用中项目,mybatis框架通常会由spring框架进行资源整合,作为数据层技术实现数据交互操作。在SpringBoot脚手架工程中,Mybatis框架封装了JDBC复杂的从数据库拿数据的操作,Spring框架会基于MyBa

2021-02-05 19:51:15 810 2

原创 数据库连接池

数据库连接池简介背景分析目开发过程中应用程序与数据库交互时,“获得连接”或“释放连接”是非常消耗系统资源的两个过程,频繁地进行数据库连接的建立和关闭会极大影响系统的性能,若多线程并发量很大,这样耗时的数据库连接就可能让系统变得卡顿。因为TCP连接的创建开支十分昂贵,并且数据库所能承载的TCP并发连接数也有限制,针对这种场景,数据库连接池应运而生。如下图所示:思考:假如现在是让你去设计一个连接池,你会从什么角度进行设计?第一:物理存储结构(基于什么结构去存储数据)第二:基于什么算法从池中取连接?

2021-02-05 01:37:00 156

空空如也

空空如也

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

TA关注的人

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