08 2019 档案
聚簇索引&非聚簇索引创建
摘要:聚簇索引 聚簇索引是按照索引列的顺序重新组织表中的数据,并将数据存储在磁盘上相邻的位置。一个表只能有一个聚簇索引,通常是主键索引。 创建聚簇索引 在创建表时,可以将主键指定为聚簇索引,例如: CREATE TABLE 表名 ( 列1 数据类型, 列2 数据类型, ... PRIMARY KEY (主
阅读全文
B树,B+树,B-树,B*树
摘要:B树 简介 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树; 如: B树的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中;否则,如果查询关键字比
阅读全文
图解 MySQL 索引:B-树、B+树
摘要:索引是什么? 索引是帮助MySQL高效获取数据的数据结构。 索引能干什么? 提高数据查询的效率。 索引:排好序的快速查找数据结构!索引会影响where后面的查找,和order by 后面的排序。 一、索引的分类 1️⃣从存储结构上来划分:BTree索引(B-Tree或B+Tree索引),Hash索引
阅读全文
序列化方式:hessian和msgpack
摘要:引入 阿里的dubbo默认使用的就是hessian序列化,它的特性是:序列化的时候,会写入字段名称,然后字段值,你可以想象为一个map。 而京东jsf默认使用的是msgpack序列化,它的特性是:序列化的时候,不写入字段名字,会按字段顺序写入值,你可以想象为一个数组。 区别介绍 Hessian和Ms
阅读全文
密集索引&稀疏索引&聚簇索引
摘要:定义 密集索引:文件中的每个搜索码值都对应一个索引值,就是叶子节点保存了整行, innodb只有一个 稀疏索引:文件只为索引码的某些值建立索引项, 比如 innodb的其他索引只存了键位信息和主键, myisam的所有索引都是 聚簇索引: 表数据按顺序存储,即索引顺序和表记录物理存储顺序一致。 聚簇
阅读全文
ZooKeeper的基本运转流程:
摘要:ZooKeeper的基本运转流程: 选举Leader。同步数据。选举Leader过程中算法有很多,但要达到的选举标准是一致的。Leader要具有最高的zxid。集群中大多数的机器得到响应并follow选出的Leader。
阅读全文
JMQ
摘要:京东内部有专门负责发送消息和接收消息的中间件JMQ。 消息中间件,功能目标都是相同的,2个系统之间解耦,通过异步消息的方式,完成信息同步。比如,常见的本地事务+消息队列,间接实现分布式事务,保证最终的数据一致性。 以开发业务为目标的话,开发者更加侧重技术的使用。 技术越简单,上手越快,才更能普及推广
阅读全文
RPC框架Dubbo与JSF
摘要:背景 Dubbo是阿里巴巴开源的一个高性能优秀的服务框架现(已加入Apache项目中),使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成。京东也有一个基于这样的框架做了定制和改进的JSF,那我们为什么要提出这样的一个RPC框架呢? 互联网架构演变 孟子云:“
阅读全文
nextLine()和next()
摘要:nextLine(): 返回的是Enter键之前的所有字符,可得到带空格的字符串。 其后输入的空格键、Tab键或Enter键等视为分隔符或结束符。 next(): 会自动消去有效字符前的空格,只返回输入的字符,不能得到带空格的字符串。 结束符:只是Enter键
阅读全文
dubbo介绍和原理
摘要:一、dubbo是什么? 1)本质:一个Jar包,一个分布式框架,,一个远程服务调用的分布式框架。 既然是新手教学,肯定很多同学不明白什么是分布式和远程服务调用,为什么要分布式,为什么要远程调用。我简单画个对比图说明(图1看到图2。画板画的,勿喷)。 你想一下,以前什么的都在一个服务器上,调用方法直接
阅读全文
排序算法记忆口诀(偏方)
摘要:选泡插, 快归堆希桶计基, n 方 n老 n一三, 对 n 加 k n 乘 k, 不稳稳稳不稳稳, 不稳不稳稳稳稳
阅读全文
for each遍历数组时候的问题
摘要:使用for each循环时: 而使用普通for循环时候,则正确:
阅读全文
IntelliJ IDEA创建main方法快捷方法、生成System.out.println()快捷键以及for循环
摘要:main方法:psvm+tab键或者回车 (public static void main的首字母。) 输出System.out.println():sout+tab键或者回车 for循环:fori+tab 输入fori,选中然后tab键或者回车,会自动创建for循环。
阅读全文
一次完整的http请求过程
摘要:在浏览器中输入URL后,执行的全部过程。会用到哪些协议?(一次完整的http请求过程)。 整个流程如下: 域名解析为了将消息从你的PC上传到服务器上,需要用到IP协议、ARP协议和OSPF协议。发起TCP的3次握手建立TCP连接后发起http请求服务器响应http请求浏览器解析html代
阅读全文
TCP报文
摘要:TCP报文是TCP层传输的数据单元,也叫报文段。 1、端口号:用来标识同一台计算机的不同的应用进程。 1)源端口:源端口和IP地址的作用是标识报文的返回地址。 2)目的端口:端口指明接收方计算机上的应用程序接口。 TCP报头中的源端口号和目的端口号同IP数据报中的源IP与目的IP唯一确定一条TCP连
阅读全文
MySql5.7 建立全文索引
摘要:MySql5.7 建立全文索引 1、ngram and MeCab full-text parser plugins 全文检索在MySQL里面很早就支持了,只不过一直以来只支持英文。缘由是他从来都使用空格来作为分词的分隔符,而对于中文来讲,显然用空格就不合适,需要针对中文语义进行分词。但从MySQL
阅读全文
索引分类
摘要:逻辑角度 1、主键索引 2、单列索引 3、多列索引 4、唯一索引 数据结构角度 1、B+树索引 2、hash索引 3、FULLTEXT索引 (之前只支持英文,从MySQL 5.7开始,MySQL内置了ngram全文检索插件,用来支持中文分词,并且对MyISAM和InnoDB引擎有效)。 4、R-Tr
阅读全文
Connection接口总结
摘要:总 Connection接口: List 有序,可重复(ps:有序是指按照插入的顺序存储) ArrayList 优点: 底层数据结构是数组,查询快,增删慢。 缺点: 线程不安全,效率高 Vector 优点: 底层数据结构是数组,查询快,增删慢。 缺点: 线程安全,效率低 LinkedList 优点:
阅读全文
while (n-- > 0) 的用法
摘要:while (n-- > 0) 即是: for (int i = 0; i < n; ++i) {...} 的简写; 还可以写和成while (--n >= 0) {...}。
阅读全文
MySQL存储引擎(常见的三种)
摘要:MySQL常见的三种存储引擎为InnoDB、MyISAM和MEMORY。其区别体现在事务安全、存储限制、空间使用、内存使用、插入数据的速度和对外键的支持。具体如下: 1、事务安全: InnoDB支持事务安全,MyISAM和MEMORY两个不支持。 2、存储限制: InnoDB有64TB的存储限制,M
阅读全文
产生死锁的四个必要条件:
摘要:产生死锁的四个必要条件: (1) 互斥条件:一个资源每次只能被一个进程使用。 (2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。 (3) 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。 (4) 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。
阅读全文
《剑指offer》2、字符串替换
摘要:题目描述 请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 public class Solution { public String replaceSpace(StringBuffer s
阅读全文
常见垃圾收集算法(4种)
摘要:几种常见的垃圾收集算法的核心思想。 1.Mark-Sweep(标记-清除)算法 这是最基础的垃圾回收算法,之所以说它是最基础的是因为它最容易实现,思想也是最简单的。标记-清除算法分为两个阶段:标记阶段和清除阶段。标记阶段的任务是标记出所有需要被回收的对象,清除阶段就是回收被标记的对象所占用的空间。具
阅读全文
JVM内存结构
摘要:jvm内存结构:《Java虚拟机原理图解》3、JVM运行时数据区 程序计数器: 1,是执行的字节码的行号指示器,记录的是正在执行的虚拟机字节码指令的地址。 2,每个线程都有独立计数器,互不干扰。 3,唯一不会发生内存泄漏的一块区域。 Java虚拟机栈: 1,这是我们通常所说的“堆和栈”中存放局部变量
阅读全文
《深入理解Java虚拟机》读书笔记
摘要:《深入理解Java虚拟机:JVM高级特性与最佳实践》读书笔记 第一部分 走进Java 一、走进Java 1、概述 java广泛应用于嵌入式系统、移动终端、企业服务器、大型机等各种场合,摆脱了硬件平台的束缚,实现了“一次编写,到处运行”的理想 2、java技术体系结构 按照功能来划分 包括以下几个组成
阅读全文
桥接模式
摘要:桥接模式(Bridge)是一种结构型设计模式。Bridge模式基于类的最小设计原则,通过使用封装、聚合及继承等行为让不同的类承担不同的职责。它的主要特点是把抽象(Abstraction)与行为实现(Implementation)分离开来,从而可以保持各部分的独立性以及应对他们的功能扩展。 桥接模式的
阅读全文
适配器模式(Adapter Pattern)
摘要:一、定义: 通过增加一个新的适配器类来解决接口不兼容的问题,使得原本没有任何关系的类可以协同工作。即:将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)。 二、分类: 对象适配器类适配器两种 三、关系: 在对象适配器模式中,适配器与适配者之间是关
阅读全文
线程的五种状态
摘要:线程通常都有五种状态,创建、就绪、运行、阻塞和死亡。 创建状态(New 状态): 生成线程对象,并没有调用该对象的start方法 就绪状态:(可运行状态) 2.1、调用了线程对象的start方法之后,即进入了就绪状态,但是此时线程调度程序还没有把该线程设置为当前线程,此时处于就绪状态。 2.2、在线
阅读全文
HTTP协议中的请求方法
摘要:HTTP1.0定义了三种请求方法: GET、POST、HEAD HTTP1.1新增了五种请求方法:OPTIONS、PUT、DELETE、TRACE 、CONNECT
阅读全文
为什么要禁止除GET和POST之外的HTTP方法?
摘要:一、HTTP请求方法有哪些 根据HTTP标准,HTTP请求可以使用多种方法,其功能描述如下所示。 HTTP1.0定义了三种请求方法: GET、POST、HEAD HTTP1.1新增了五种请求方法:OPTIONS、PUT、DELETE、TRACE 、CONNECT 二、举例说明不安全的HTTP方法 众
阅读全文
《剑指offer》1、二维数组中的查找
摘要:1、二维数组中的查找 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 public class Solution { public boolean Fin
阅读全文
java中length,length(),size()区别
摘要:java中length,length(),size()区别 比较对象归属用途length属性数组查看数组的长度length()方法字符串String查看字符串的长度size()方法泛型集合查看泛型中元素数目
阅读全文
Java中二维数组使用
摘要:对应 array[i][y] 一、获取行和列 int rows = array.length;//行数 int columns = array[0].length;//列数 二、判空 二维数组首地址是否为空,即array==null;二维数组是否为{},即array.length==0的情二维数组是
阅读全文
for update
摘要:for update的字段为索引或者主键的时候,只会锁住索引或者主键对应的行。当for update的字段为普通字段的时候,Innodb会锁住整张表。
阅读全文
索引的利和弊
摘要:利: 提高查询速度 利用索引的唯一性来控制记录的唯一性 可以加速表与表之间的连接 降低查询中分组和排序的时间 弊: 存储索引占用磁盘空间执行数据修改操作,例如增、删、改等产生索引维护
阅读全文
报文、报文段、分组、包、数据报、帧、数据流的概念区别
摘要:1.报文(message) 我们将位于应用层的信息分组称为报文。报文是网络中交换与传输的数据单元,也是网络传输的单元。报文包含了将要发送的完整的数据信息,其长短不需一致。报文在传输过程中会不断地封装成分组、包、帧来传输,封装的方式就是添加一些控制信息组成的首部,那些就是报文头。 2.报文段(segm
阅读全文
ping和ICMP协议
摘要:ping 程序是用来探测主机到主机之间是否可通信,如果不能ping到某台主机,表明不能和这台主机建立连接。ping 使用的是ICMP协议,它发送icmp回送请求消息给目的主机。ICMP协议规定:目的主机必须返回ICMP回送应答消息给源主机。如果源主机在一定时间内收到应答,则认为主机可达。ICMP协议
阅读全文
Java代码执行顺序静态(代码块>构造代码块>构造函数>普通代码块)
摘要:执行顺序 静态代码块>构造代码块>构造函数>普通代码块 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 public class CodeBlock { static{ System.out.println("静态代
阅读全文
Redis中ZSet原理-跳跃表
摘要:Zset 编码的选择 在通过 ZADD 命令添加第一个元素到空 key 时, Redis 会通过检查输入的第一个元素来决定使用何种编码。 如果第一个元素符合以下条件的话, 就创建一个 REDIS_ENCODING_ZIPLIST 编码的 Zset: 服务器属性 server.zset_max_zip
阅读全文
【排序】快速排序
摘要:思路分析: 快速排序采用双向查找的策略,每一趟选择当前所有子序列中的一个关键字作为枢纽轴,将子序列中比枢纽轴小的前移,比枢纽轴大的后移,当本趟所有子序列都被枢轴按上述规则划分完毕后将会得到新的一组更短的子序列,他们将成为下趟划分的初始序列集。 时间复杂度:最好情况(待排序列接近无序)时间复杂度为O(
阅读全文
Kafka设计原理
摘要:今天,我将围绕如下几个问题进行分享: 为什么需要消息系统? Kafka 架构原理? Kafka 如何存储消息? Producer 如何发送消息? Consumer 如何消费消息? Offset 如何保存? 消息系统可能遇到哪些问题? 为什么需要消息系统? 削峰 数据库的处理能力是有限的,在峰值期,过
阅读全文
进程&线程以及通信方式
摘要:进程(Process)和线程(Thread) 进程: 进程是计算机中正在运行的程序的实例。它是分配系统资源(如内存、文件、网络连接等)的基本单位。每个进程都有独立的内存空间,包含代码、数据和堆栈等。它们互相独立,彼此之间不会互相干扰。进程之间通过进程间通信(IPC)方式进行通信,如管道、共享内存、消
阅读全文
java常见设计模式简要总结
摘要:设计模式六大原则 1.开放封闭原则:对扩展开放,对修改封闭,意即程序拓展时不要动原有的代码 2.LSP原则:任何基类可以出现的地方,子类一定可以出现 3.依赖倒置原则:使用接口,依赖于抽象而不是具体 4.接口隔离原则:为了解耦,使用多个相互隔离的接口 5.迪米特法则:一个实体应当尽量少地与其他实体之
阅读全文
ZooKeeper入门——安装
摘要:分布式系统的难点 可以想象,假如一台计算机的出错概率为0.1%,那么1000台服务器的出错概率呢?一旦计算机的数量增多,出错的概率就大大的增加。 多个相互独立的计算机,假设集群的配置信息在某个Master节点上,其余的节点从Master节点下载配置信息。假如Master节点挂了呢?假设Master节
阅读全文
Linux常用命令
摘要:一、常用的文件、目录操作命令 这是我们使用得最多的命令了,Linux最基础的命令! 可用 pwd命令查看用户的当前目录 可用 cd 命令来切换目录 .表示当前目录 .. 表示当前目录的上一级目录(父目录) -表示用 cd 命令切换目录前所在的目录 ~ 表示用户主目录的绝对路径名 绝对路径: 以斜线(
阅读全文
Java虚拟机(JVM)大全
摘要:1. Java 内存区域与内存溢出异常 1.1 运行时数据区域 根据《Java 虚拟机规范(Java SE 7 版)》规定,Java 虚拟机所管理的内存如下图所示。 1.1.1 程序计数器 内存空间小,线程私有。字节码解释器工作是就是通过改变这个计数器的值来选取下一条需要执行指令的字节码指令,分支、
阅读全文
内核线程、轻量级进程、用户线程的区别和联系
摘要:内核线程 内核线程只运行在内核态,不受用户态上下文的拖累。 处理器竞争:可以在全系统范围内竞争处理器资源;使用资源:唯一使用的资源是内核栈和上下文切换时保持寄存器的空间调度:调度的开销可能和进程自身差不多昂贵同步效率:资源的同步和数据共享比整个进程的数据同步和共享要低一些。 轻量级进程 轻量级进程(
阅读全文
最实用的30个Linux命令
摘要:1.uptime命令 在Linux中,uptime命令显示了你的系统运行了多久以及目前登录的用户有多少,另外还显示了间隔1分钟、5分钟和15分钟的负载平均值。 # uptime 08:16:26 up 22 min, 1 user, load average: 0.00, 0.03, 0.22 检查
阅读全文
通过sql语句查询实现分页
摘要:通过sql语句分页 如:SELECT * FROM users limit 3,2 从第4条记录开始后续显示两行,索引从0开始 (服务器机制)该方式的优缺点如下: 优点:操作便捷(利用服务器内存),适合于大数据量操作,对底层数据库服务器起到保护作用。 缺点:增加了和数据库交互的次数,访问速度较慢。
阅读全文
Kafka面试题参考
摘要:1.Kafka的设计是什么样的呢? Kafka将消息以topic为单位进行归纳 将向Kafka topic发布消息的程序成为producers. 将预订topics并消费消息的程序成为consumer. Kafka以集群的方式运行,可以由一个或多个服务组成,每个服务叫做一个broker. produ
阅读全文
LeetCode42 接雨水
摘要:leecode: . - 力扣(LeetCode) 题目分类:动态规划、双指针 难度等级:困难 题目描述 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例 1: 输入:height = [0,1,0,2,1,0,1,3,2,1,2,1] 输出:
阅读全文
Object类默认的方法
摘要:registerNatives() //私有方法getClass() //返回此 Object 的运行类。hashCode() //用于获取对象的哈希值。equals(Object obj) //用于确认两个对象是否“相同”。clone() //创建并返回此对象的一个副本。 toString() /
阅读全文
【IDEA】全局护眼豆沙绿(护眼色)
摘要:快捷键:Ctrl+Shift+A——>键入“set”——>选择图中所示 2. 需要事前下载一张“豆沙绿图片”,然后在此选择即可 效果图: #程序员必备护眼色#
阅读全文
@Controller和@RestController的区别?
摘要:只是使用@RestController注解Controller,Controller中的方法无法返回jsp页面,或者html,配置的视图解析器 InternalResourceViewResolver不起作用,返回的内容就是return 里的内容。 如果需要返回到指定页面,则需要用 @Control
阅读全文
ICMP
摘要:ICMP是(Internet Control Message Protocol) Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。属于网络层协议 控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户
阅读全文
OSI七层模型
摘要:OSI七层模型 OSI七层网络模型功能 应用(Application)直接向用户提供服务,文件传输、电子邮件、文件服务、虚拟终端表现层(Presentation)数据格式化、代码转换、数据加密会话层(Session)在两个会话实体间建立和使用连接、解除连接 传输层(Transport)提供可靠的端到
阅读全文
BeanUtils.copyProperties属性复制用法
摘要:注意:属性复制,不同jar中的方法,用法不一样。 1、package org.springframework.beans;中的 BeanUtils.copyProperties(A,B); 是A中的值付给B 2、package org.apache.commons.beanutils;(常用) Be
阅读全文