自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 资源 (1)
  • 收藏
  • 关注

原创 count的效率

文章目录Count(的设计使用分类使用区别查询效率count(主键ID)比count(1)慢的原因Count(的设计使用分类COUNT(1),COUNT(*),COUNT(常量),COUNT(主键),COUNT(ROWID),COUNT(非空列);COUNT(允许为空列)COUNT(DISTINCT 列名)使用区别1类统计结果的行数是表中所有存在的行的总数,包括值为null的行为空行。COUNT(允许为空列) 统计的行数不会包括字段值为null的行COUNT(DISTINCT

2020-08-28 10:58:42 493

原创 mysql 可重复读隔离级别底层实现

文章目录隔离级别什么是可重复读RR 实现方式总结隔离级别读未提交:别人改数据的事务尚未提交,我在我的事务中也能读到。读已提交:别人改数据的事务已经提交,我在我的事务中才能读到。可重复读:别人改数据的事务已经提交,我在我的事务中也不去读。串行:我的事务尚未提交,别人就别想改数据。这4种隔离级别,并行性能依次降低,安全性依次提高。什么是可重复读Repeatable Read (可重复读):保证在同一个事务中多次读取同样数据的结果是一样的。一个事务在执行过程中可以看到

2020-08-27 11:54:31 667

原创 IO模型 Proactor & Reactor

文章目录同步&异步 阻塞 & 阻塞五种IO模型1. 同步阻塞2.非同步阻塞3.信号驱动模型4. IO 多路复用(阻塞IO)5.异步IOReactor 模式Proactor 模式Reactor 和 ProactorProactor & ReactorProactor & Reactor 是常见的 I/O多路复用 设计模式 Reacto 同步IO, Proactor 采用异步IO同步&异步 阻塞 & 阻塞同步和异步是针对应用程序和内核交互而言同步

2020-08-18 10:59:38 292

原创 OOM、栈溢出 出现的场景和排查

文章目录出现的场景如何排查如何注意Java栈溢出的场景。栈的大小 -XSS设置:JDK5.0后每个堆栈大小为1M(以前是256k)Linux 栈默认为8M出现的场景局部数组过大。指针或者数组越界递归调用层次太多(字符串拷贝等)如何排查dump 快照文件利用自带的vm等工具分析-xx:+HeapDumpOnOutOfMemoryError 参数可以发生OOM时自动进行dumpjmap 可以手动 dumpjdk 自带的jvisualvm.exe 进行分析如何注意

2020-08-18 10:02:00 1134

原创 面试常问的TOPk问题

topk问题topk 问题一般是求数组最大的k个数或最小的代码如下:堆排序 nlogk随机排序+减治法 o(n)…package com.面试题;import java.util.ArrayList;import java.util.Arrays;import java.util.List;import java.util.PriorityQueue;/** * @DESC topk问题 * @CREATE BY @Author pbj on @Date 2020/8/

2020-08-16 15:24:49 383

原创 HashMap 负载因子

文章目录HashMap 负载因子HashMap 负载因子static final float DEFAULT_LOAD_FACTOR = 0.75f;大概意思就是说,在理想情况下,使用随机哈希码,节点出现的频率在hash桶中遵循泊松分布,同时给出了桶中元素个数和概率的对照表。从上面的表中可以看到当桶中元素到达8个的时候,概率已经变得非常小,也就是说用0.75作为加载因子,每个碰撞位置的链表长度超过8个的概率达到了一百万分之一。在理想情况下,使用随机哈希码,在扩容阈值(加载因子)为0.75的情况下,

2020-07-29 10:47:44 352

原创 网络编程—OSI7层协议

[@toc]OSI 7 层模型七层各自的作用,和常用的协议应用层: 提供应用程序间的通信,为应用程序提供访问网络服务的接口,协议:Telnet FTP HTTP DNS表示层:处理数据格式、数据加密,协议:URL加密、JPEG会话层: 建立和维护管理会话,协议: 断点续传、验证登录 RPC传输层:建立主机端到端连接,协议:UDP,TCP 数据段Segment网络层:寻址和路由转发,协议:IP RIP OSPF ICMP ARP RARP 分组(数据包)Packet数据

2020-07-28 23:25:34 181

原创 redis_read_高级特性

文章目录发布消息Redis 事务 transaction事务开始命令入队执行事务WATCH 命令(乐观锁)事务的ACIDLUA 脚本排序 SORT位数组慢查询日志基数统计title : read_redis_一些功能特性Redis 的发布和订阅功能由PUBLISH、SUBSCRIBE、PSUBSCRIBE等组成SUBSCRIBE "news.it" //成为 "news.it" 频道的订阅者UNSUBSCRIBE "news.it" //退订PUBLISH "news.it" "hello"

2020-06-29 09:45:47 479

原创 MySql 必知必会 总结

文章目录查询select聚集函数数据分组子查询join插入数据更新数据删除数据事务外键索引read_mysql必知必会查询select//查询全部列select * from tablename;//查询个别列select colname, colname from tablename;//查询不同的值select DISTINCT id from tablename;//限制显示的行数select name from tablename limit 5;select top 5 na

2020-06-20 11:14:35 123

原创 redis_主从复制

文章目录旧版复制功能的实现同步命令传播旧版复制的问题新版复制功能的实现PSYNC心跳检测redis的复制旧版复制功能的实现直接使用SLAVEOF IP:port 实现同步(sync):将slaver状态更新到master状态命令传播(command propagate):当 master 被修改,主从服务器不一致,让从服务器重新回到一致状态。同步SLAVEOF 要求slaver复制master, 首先就会执行 同步 操作从服务器向主服务器发送SYNC命令。收到SYNC命令的主

2020-06-04 11:18:30 87

原创 redis_文件事件处理器

文章目录文件事件处理器特点文件事件处理器的构成I/O多路复用程序的实现Redis 基于 Reactor 模式 开启了自己的网络事件处理器——文件事件处理器文件事件处理器特点文件事件处理器使用I/O多路复用程序来同时监听多个套接字,并根据套接字目前执行的任务来为套接字关联不同的事件处理器被监听的套接字准备执行连接应答accept、读取read、write、close等操作文件事件处理器的构成四个组成部分:套接字、I/O多路复用程序、文件事件分派器、事件处理器每一个套接字准备好连

2020-06-04 11:17:28 882

原创 redis_服务器结构

文章目录服务器中的数据库过期键的删除和更新服务器中的数据库Redis 服务器将所有数据库都保存在redisServer结构中struct redisServer{ //。。 //一个数组 16位的保存服务器中的所有数据库 redisDb *db; //服务器的数据库数量 int dbnum; //..}struct redisDb{ //数据库键空间,保存着数据库中的所有键值对 dict *dict; //键空间的值也就

2020-06-04 11:16:33 258

原创 Redis_AOF

文章目录RDB & AOFAOF 的实现命令追加 AOF文件写入和同步AOF 重写-解决AOF文件膨胀AOF 后台重写RDB & AOFRDB 持久化保存数据库状态的方法是将键值对保存在RDB文件中,而AOF持久化保存数据库状态的方式是将命令保存到AOF文件中AOF 的实现AOF 持久化功能的实现可以分为append/文件写入/文件同步(sync)命令追加 AOFstruct redisServer{ //... // AOF 缓冲区 sds ao

2020-06-04 11:15:22 106

原创 redis_RDB

文章目录RDB文件生成RDB 与 AOFRDB文件结构分析 RDB 文件RDB 是一个压缩的二进制文件,实现 Redis 的持久化RDB文件生成save & bgsavedef SAVE(): rdbSave();def BFSAVE(): pid = fork(); if pid == 0 : rdbSave() signal_parent(); elif pid > 0 handle_requ

2020-06-04 11:14:28 263

原创 redis_对象回收之引用计数

文章目录reids 的 内存回收问题GC 算法引用计数法对象的空转时长 lrureids 的 内存回收问题C 语言不具备自动内存回收的功能。GC 算法redis 采用 引用计数 技术实现内存回收机制引用计数法当一个键创建了包含整数值100的字符串作为对象,如果另一个键也要创建一个同样保存了整数值100的字符串对象作为值对象,那么服务器会让两个键共享同一个对象。对象的空转时长 lrulru 属性记录对象最后一次被命令程序访问的时间typedef struct redisObj

2020-06-03 17:12:32 847

原创 redis源码阅读之redis五种对象的底层数据结构

title:redisObject文章目录redis 的 对象redisObject 的对象结构字符串对象 StringString 的API列表对象 List哈希对象 hash集合对象 set有序集合对象 ziplist 或者 skiplistredis 的 对象Redis 使用对象来表示数据库中的键和值,每次当我们在redis的数据库创建一个键值对时,至少会创建两个对象,一个键对象,一个值对象。set msg "hello world"redisObject 的对象结构typedef str

2020-06-03 17:11:10 121

原创 redis_其他数据结构intset & ziplist

文章目录redis set (集合)的实现 --intset 整数集合intset 集合的升级压缩列表 ziplist组成redis set (集合)的实现 --intset 整数集合typedef struct intset{ uint32_t encoding; uint32_t length; int8_t contents[]; //真正类型取决于encoding的值}intset;intset 集合的升级如果开始是INT16,添加元素 INT64时,需要升

2020-06-03 17:09:49 158

原创 redis 源码阅读 之 skiplist & sortset

文章目录跳跃表实现跳表的实现:java版本跳跃表实现//基于redis.h/zskiplistNode 和 redis.h/zskiplist 两个结构定义,其中zskiplistNode 结构用于跳跃表节点,zskiplist 结构则用于保存跳跃表节点的相关信息。typedef struct zskiplistNode{ //层 struct zskiplistLevel{ //前进指针 struct zskiplistNode * forward;

2020-06-03 17:08:35 129

原创 redis_dict

文章目录map 字典哈希算法rehash负载因子map 字典typedef struct dictht{ dictEntry **table; unsigned long size; //哈希表大小掩码,用于计算索引值,总是等于size-1 unsigned long sizemask; unsigned long used;}dicthttypedef struct dictEntry{ void *key; union{ void *val;

2020-06-03 17:06:56 133

原创 redis_ListNode

文章目录redis 的 list 结构redis的链表实现的特性redis 的 list 结构链表的结构//普通的双端链表typedef struct listNode{ struct listNode *prev; struct listNode *next; void *value;}listNode;//adlist.h/listtypedef struct list{ listNode *head; listNode *tail;

2020-06-03 17:04:13 186

原创 redis_SDS

文章目录SDSSDSstruct sdshdr{ //记录buf数组中已使用字节的数量 //等于SDS所保存的字符串长度 int len; //记录buf数组中未使用的字节的数量 int free; //字节数组,用于保存字符串 char buf[];}优点1: 常数复杂度获取字符串的长度        C字符串中不记录字符串的自身长度信息,获取长度必须遍历

2020-06-03 17:02:40 90

原创 java面试-深拷贝与浅拷贝

文章目录深拷贝与浅拷贝浅拷贝深拷贝数组拷贝深拷贝与浅拷贝通常会和java的值传递相互关联来提问。new操作符 和 clone方法复制一个对象。引用拷贝。Object obj = new Object() Person cur = obj浅拷贝浅拷贝是按位拷贝对象,创建一个新的对象。是对原有对象的属性值的一份精确拷贝。拷贝基本类型:拷贝的是基本类型的值(值传递)拷贝的对象的...

2020-04-30 11:15:09 463

原创 java面试-抽象类与接口的区别

文章目录抽象类与接口的区别方法上的区别成员变量继承与实现抽象类与接口的区别Every interface is implicitly abstract所有的接口都是隐式的抽象声明。方法上的区别接口只能有抽象方法,抽象类可以有抽象方法和非抽象方法。 Java8 后,接口可以直接定义default 和 static 方法。抽象类可以有private和protect方法抽象类可以有构造...

2020-04-29 14:37:38 184

原创 深入理解跨域以及跨域问题的解决

文章目录深入理解跨域以及跨域问题的解决跨域产生的必须条件解决跨域问题JSONP深入理解跨域以及跨域问题的解决前后端分离成为主流,导致了跨域问题,但是,跨域问题的产生并不是前后端分离导致的。跨域产生的必须条件浏览器进行了业务处理使用了ajax请求访问的域名不同,即访问的html页面是a域名下的,但是ajax请求的目标地址却是b域名解决跨域问题上述三个条件任意解决一个即可...

2020-03-29 20:15:01 332

原创 No validator could be found for constraint 'javax.validation.constraints.NotEmpty' validating type '

`No validator could be found for constraint ‘javax.validation.constraints.NotEmpty’ 问题的解决错误的全部提示.m.m.a.ExceptionHandlerExceptionResolver : Resolved [javax.validation.UnexpectedTypeException: HV00003...

2020-03-26 16:23:56 15952 4

原创 vuejs表达式

文章目录插值表达式v-on点击事件键盘事件鼠标事件事件修饰符on-html text ..插值表达式<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>vue</title> <script src="js...

2020-03-19 23:29:17 114

原创 java 实现所有的排序算法

文章目录java 所有排序算法插入排序 N^2快速排序 NlogN归并排序 NlogN选择排序和冒泡排序 N^2桶排序 O(M + N)计数排序 o(n + k)堆排序 O(NlogN)java 所有排序算法java 常用的排序有Collections.sort 和 Arrays.sort的排序方法其中Collections.sort()对集合实现排序,其源码为:@SuppressW...

2020-03-10 12:50:59 257

原创 SpringMVC配置了mvc:resources标签还是报404错误解决

这是我的jsp代码:<script src="js/jquery.min.js"></script> <script> //页面加载,绑定单击事件 $(function () { $("#btn").click(function () { alert("hehe")...

2020-03-06 11:51:41 918 2

原创 Redis入门/工具类

安装附件安装启动先启动服务端,再启动客户端 .xxx.exe命令操作字符串stringset key valueget keydel keyhash(map结构)hashhset key field valuehget key fieldhgetall keyhdel key fieldlist (LinkedList列表类型)list (按照插入顺序添...

2020-02-18 21:00:35 94

原创 Java关键字之final

类final修饰类时,该类不能被继承a. final修饰类中的成员变量可以根据实际需求改变b. final修饰类中的成员方法默认为final方法方法被final修饰的方法不能被重写。a. private方法隐式指定为final方法b. 如果父类有final修饰的方法,那么子类不能去重写。成员变量必须给定初始值,而且时只能初始化一次。a. 被fianl修饰的成员变量...

2020-02-08 14:28:20 127

原创 《剑指Offer》孩子们的游戏(圆圈中最后剩下的数)

题目描述:每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0…m-1报数…这样下去…直到剩下最后...

2020-02-03 16:25:58 150 1

原创 《剑指offer》数组:调整数组顺序使奇数位于偶数前面

题目输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。分析首先:奇数在前,偶数在后,类似荷兰旗问题。在偶数后的奇数需要移动到数组前面来。其次:本题要求奇数和偶数原来的顺序不变,就需要用到类似冒泡排序的思想移动奇数或者偶数,保证原来的顺序不变。如何移动:思路大致都是一样...

2020-01-04 09:45:26 90

原创 《剑指offer》数字-进制转换:二进制中1的个数

题目description:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。分析一来自牛客网题解:一个数n与其n-1的与运算会消掉最右边一位的1例如n二进制表示(int为32位,这里表示为8位)与n-1的&运算140000111000001100130000110100001100120000110000001000...

2020-01-03 10:11:55 131

原创 JSP入门(二)

指令作用:用于配置JSP页面,导入资源文件格式: - `<%@ 指令名称 属性名1= 属性值1 %> <==> 例如:<%@ page contentType="text/html;charset=UTF-8" language="java" %>2. 分类: - page :配置JSP页面 -contentType:等同于r...

2020-01-02 11:06:33 152

原创 JavaWeb的MVC模式

MVCM: Model,模型- 完成具体的业务操作:查询数据库,封装对象V: View,视图- 展示数据C: Controller,控制器-获取用户的输入-调用模型-将数据交给视图展示优缺点优点1. 耦合性低,方便维护,可以利于分工协作2. 重用性高缺点:1. 项目架构变得复杂,开发难度变大三层架构界面层(表示层):用户看到的界面,用户可以通过界面上的...

2019-12-31 15:04:11 142

原创 Session的特点和作用

概念服务端会话技术,在一次会话的多次请求间共享数据,将数据保存在服务器端的对象中。HTTPSession入门HTTPSession对象- Object getAttribute(String name)- void setAttribute(String name, Object value)- void removeAttribute(String name)发送://...

2019-12-30 20:59:05 2804

原创 JSP入门(一)

jsp入门概念: java server pages:java服务器端页面* 一个特殊的页面,可以定义java代码又可以定义html标签* 用于简化书写原理JSP本质是一个Servlet脚本JSP定义java代码的方式<% java代码 %> 定义的java代码在service方法中可以定义什么,代码就能定义什么<%! java代码 %> 在js...

2019-12-25 21:11:14 96

原创 Cookie的特点和作用

cookie的特点和作用cookie存储数据在客户端浏览器浏览器对于单个cookie的大小有限制 以及 对同一个域名下的总cookie数量有限制作用cookie一般用于存储少量的不太敏感的数据在不登录的情况下,完成服务器对客户端的身份识别@WebServlet("/cookieDemo7")public class CookieDemo7 extends HttpServle...

2019-12-25 15:58:27 1621

原创 ServletContext学习

概念代表整个web应用,可以和程序的容器(服务器)来通信特点获取1. 通过request对象获取req.getServletContext(); 2. 通过HttpServlet获取this.getServletContext()功能1. 获取MIME类型:MIME类型:在互联网通信过程中定义的一种文件数据类型 *格式:大类型/小类型text/html、image/jp...

2019-12-24 18:51:18 88

原创 javaWeb之Response详解

HTTP协议1:请求消息:客户端发给服务器端的数据1.请求行2.请求头3.请求空行4.请求体2:响应消息:服务端发送给客户端的数据1:响应行2:响应头3:响应空行4:响应体响应行1.组成:协议/版本 响应状态码 状态码描述2.响应状态码:服务器告诉客户端浏览器本次请求和响应的一个状态HTTP/1.1 200Content-Type: text/html;chars...

2019-12-24 14:51:23 509

redis安装配置(redis安装包、导入包、工具类).zip

redis安装配置(redis安装包、导入包、工具类) 1:redis的安装包 2:redis需要导入的jar包 3:redis连接池工具类包 4:redis的配置文件

2020-02-18

空空如也

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

TA关注的人

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