自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 kafka学习笔记 & 面经分享

本文结合尚硅谷kafka教学课程学习,总结kafka常见面试题及答案

2022-10-27 11:18:12 1681 1

原创 redis缓存一致性讨论

本文主要讨论redis缓存一致性、如何防止缓存穿透、redis执行lua脚本保证操作原子性

2022-08-24 23:19:21 410

原创 Netty学习(源码分析)

Netty是一个异步的、基于时间驱动的网络应用框架,它提供了异步的、事件驱动的网络应用程序框架和工具。Netty主要用以快速开发高性能、高可靠的网络服务器和客户端程序

2021-12-06 21:56:19 671 2

原创 Nginx配置、原理学习

Nginx基本概念定义Nginx(engine x)是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点开发的,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名Nginx是一款轻量级的web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是在BSD-like 协议下发行。其特点是占有内存小,并发能力强,事实上Ngin

2021-11-10 12:14:27 3237 1

原创 常用中间件

中间件什么是中间件中间件(Middleware)顾名思义是系统软件和用户软件之间连接的软件,以便于软件各部分之间的沟通,特别是应用软件对于系统软件的集中逻辑,是一种独立的系统或者服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件在客户端服务器的操作系统、网络和数据库之上,管理计算机资源和网络通信。总的作用是为处于自己上层的应用软件提供运行和开发的环境,帮助用户灵活、高效的开发和集成复杂的应用软件关于中间件,我们可以理解为:是一类能够为一种或者多种应用程序合作互通、资源共享同时还能够

2021-10-24 22:27:27 3480

原创 Redis缓存淘汰算法——LRU、LFU

个人博客欢迎访问总结不易,如果对你有帮助,请点赞关注支持一下微信搜索程序dunk,关注公众号,获取博客源码、数据结构与算法笔记(超级全)、大厂面试、笔试题Redis过期键的删除策略对于过期键一般的三种删除策略定时删除:在设置键的过期时间的同时,创建一个定时器(timer),让定时器在键的过期时间来临时,立即执行对键的删除操作惰性删除:放任键过期不管,但是每次从键空间中获取键时,都检查取得的键是否过期,如果过期的话,就删除该键;如果没有过期,那就返回该键定期删除:每过一段时间,程序就对数据

2021-07-25 15:25:42 479 1

原创 Docker进阶学习

个人博客欢迎访问总结不易,如果对你有帮助,请点赞关注支持一下微信搜索程序dunk,关注公众号,获取博客源码、数据结构与算法笔记、面试笔试题文章目录虚拟机和容器虚拟机和容器的区别认识Docker什么是DockerDocker的优点Docker的应用场景Docker核心Docker镜像Docker容器Docker仓库扩展问题Docker为什么快?安装DockerDocker常用命令帮助命令镜像命令容器命令run 和 start的区别docker rundocker start其他命令重用命令小结虚拟

2021-06-27 10:17:46 285

原创 密码学浅尝辄止

个人博客欢迎访问总结不易,如果对你有帮助,请点赞关注支持一下微信搜索程序dunk,关注公众号,获取博客源码、数据结构与算法笔记、面试笔试题本文加密算法源码密码学浅尝辄止密码学主要研究编制密码 和 破译密码的学科密码学的主要目的:研究如何隐藏信息并且把信息传递出去的一个学科密码学的基本概念密码在我们的生活中有着重要的作用,那么密码究竟来自何方,为何会产生呢?密码学是网络安全、信息安全、区块链等产品的基础,常见的非对称加密、对称加密、散列函数等,都属于密码学范畴。密码学有数千年的历史

2021-06-18 16:03:13 1866 1

原创 Spring面试题

个人博客欢迎访问总结不易,如果对你有帮助,请点赞关注支持一下微信搜索程序dunk,关注公众号,获取博客源码、数据结构与算法笔记、面试笔试题目录Spring概述概念优缺点优点缺点Spring的模块Spring框架中都用到了那些设计模式Spring IOCIOC是什么?IOC容器初始化的过程基于xml的容器初始化基于注解的容器初始化依赖注入的实现方法构造方法注入setter方法注入构造器依赖注入和Setter方法注入的区别接口注入依赖注入的过程?Bean的生命周期Bean的作用范围Bean线程安全性扩

2021-06-16 17:47:42 637

原创 携程笔试题(含答案)

个人博客欢迎访问总结不易,如果对你有帮助,请点赞关注支持一下微信搜索程序dunk,关注公众号,获取博客源码、数据结构与算法笔记、面试笔试题文章目录合成词展开(AC)方法一数组碰撞(AC)方法一合成词展开(AC)时间限制: 3000MS内存限制: 589824KB题目描述:苏克·冯·望杜是印度著名的人工智能科学家。你正在试着阅读他的文章。但望杜写文章有个习惯,就是喜欢自己造词。他会利用现有的单词拼接上英语的一些前缀和后缀来快速造出一些新词。有些新词的组合十分复杂,读上去让人头大。作为程序员

2021-06-12 21:47:11 4345 1

原创 Java基础面试题(建议收藏)

个人博客欢迎访问总结不易,如果对你有帮助,请点赞关注支持一下微信搜索程序dunk,关注公众号,获取博客源码、数据结构与算法笔记、面试笔试题文章目录面向对象面向对象和面向过程的区别三大特性封装继承多态重载与重写重载重写类之间的关系访问权限控制符语言特性Java语言的优点Java如何实现平台无关?JDK和JRE的区别Java是按值调用还是引用调用浅拷贝和深拷贝的区别序列化常见的序列化方式Java 原生序列化Hessian 序列化JSON 序列化常问方法和类Object 类有哪些方法?hashCode与

2021-06-12 21:21:22 7814 20

原创 Elasticsearch初步学习(仿京东搜索、爬虫)

ES是一款使用倒排索引数据结构、能够根据文档内容查找相关文档,并按照相关性顺序返回搜索结果的全文搜索引擎

2021-06-09 21:08:36 891 5

原创 vivo笔试题(含答案)

总结不易,如果对你有帮助,请点赞关注支持一下微信搜索程序dunk,关注公众号,定期分享Java笔试、面试题目录编译依赖问题(90% -> AC)自己的做法分析一下错误改进(AC)回文字符串(AC)游戏地图路径(AC)记忆化搜索编译依赖问题(90% -> AC)一个完整的软件项目往往会包含很多由代码和文档组成的源文件。编译器在编译整个项目的时候,可能需要按照依赖关系来依次编译每个源文件。比如,A.cpp 依赖 B.cpp,那么在编译的时候,编译器需要先编译 B.cpp,才能再编译 A..

2021-06-05 22:00:52 5533 3

原创 图解JVM(含面试题)

个人博客欢迎访问总结不易,如果对你有帮助,请点赞关注支持一下Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来微信搜索程序dunk,关注公众号,获取以下整张完整图和思维导图目录文章总览JVM基础JVM概述JVM的主要功能JVM分类Java内存区域与内存溢出异常本地库接口(JNI)概述为什么使用JNI运行时数据区域PC寄存器Java栈Java堆方法区运行时常量池本地方法栈完整细化JVM图Java程序运行机制HotSpot虚拟机对象探秘对象

2021-06-03 18:31:01 1187 3

原创 字节笔试题(含答案)

字节跳动2019春招研发部分编程题汇总目录万万没想到之聪明的编辑(AC)万万没想到之抓捕孔连顺(AC)雀魂启动!(AC)特征提取(AC)毕业旅行问题(TLE,50%)递归找零(AC)机器人跳跃问题(AC)万万没想到之聪明的编辑(AC)我叫王大锤,是一家出版社的编辑。我负责校对投稿来的英文稿件,这份工作非常烦人,因为每天都要去修正无数的拼写错误。但是,优秀的人总能在平凡的工作中发现真理。我发现一个发现拼写错误的捷径:\1. 三个同样的字母连在一起,一定是拼写错误,去掉一个的就好啦:比如 helll.

2021-05-30 00:00:36 6185 3

原创 SpringCloud学习(告别单体架构,步入微服务架构)

个人博客欢迎访问总结不易,如果对你有帮助,请点赞关注支持一下本文只展示部分必须代码详情:完整代码SpringCloud Config:远程配置中心目录文章总览微服务架构单体应用架构什么是单体应用架构微服务架构微服务什么是微服务架构使用微服务架构的优势和劣势优势劣势微服务架构的四个核心问题微服务的技术栈当前各大IT公司用的微服务架构有哪些?各微服务框架对比SpringCloud概念目前成熟的互联网架构为什么需要学习SpringCloud什么是SpringCloudSpringCloud的设计

2021-05-28 11:09:40 1353 3

原创 理解KMP算法

数据结构与算法笔记总结不易,如果对你有帮助,请点赞关注支持一下目录KMPKMP算法介绍BF(Brute Force)KMP算法计算next数组为什么要进行next回溯[28. 实现 strStr()](https://leetcode-cn.com/problems/implement-strstr/)KMPKMP算法介绍它主要的用途就是查找字符串,查找字符串"ab"(目标字符串)在字符串"abc"(待查找字符串)中出现的位置。换句话说,就是查找字符串"abc"是否包含字符串"ab",如果包

2021-05-24 23:52:48 226 2

原创 Mybatis源码分析(自己动手造轮子)

个人博客欢迎访问总结不易,如果对你有帮助,请点赞关注支持一下目录Mybatis基础概念缓存简介一级缓存二级缓存高级查询建表一对一查询联合查询嵌套查询一对多查询扩展问题#{}和${}的区别什么是Sql注入为什么需要预编译通常一个Xml映射文件,都会写一个Dao接口与之对应,请问,这个Dao接口的工作原理是什么?Dao接口里的方法,参数不同时,方法能重载吗?MyBatis源码Mybatis的编程步骤Mybatis的工作原理Mybatis的功能架构配置文件解析过程配置文件解析入口解析 environmen

2021-05-22 12:21:43 719

原创 二叉堆(彻底整明白堆排序)

前言:之前写过堆排序,因为对堆数据结构还是不够了解,懵懵逼逼的写完了堆排序,写完后,过一段时间就忘记了,究其原因,没有真正了解堆数据结构,于是…有了这篇文章插入构建public class HeapTest { public static void main(String[] args) { int[] arr = {1, 3, 2, 6, 5, 7, 8, 9, 10, 0}; Heap heap = new Heap(arr); h.

2021-05-21 00:07:16 344

原创 计算机网络知识点汇总

个人博客欢迎访问总结不易,如果对你有帮助,请点赞关注支持一下目录OSI七层协议模型TCP/IP协议族应用层DNSHTTP运输层TCPUDPTCP和UDP的区别网络层数据链路层物理层总结TCP的可靠性自动重传请求ARQ停等式ARQ连续ARQ协议优点缺点HTTPHTTP报文结构HTTP请求协议包HTTP响应协议包GET和POST的区别HTTP状态码HTTP的通信过程HTTPS的通信过程什么是对称加密与非对称加密HTTP与HTTPS的区别HTTP2长连接和短连接Session、Cookie、TokenCo

2021-05-20 12:04:21 4085 20

原创 SpringBoot项目部署阿里云服务器

目录ESC阿里云服务器准备下载XShell和XFtpa环境部署JDK1.8Maven(版本 >= 3.0)GitDocker (Mysql)修改项目中的配置启动项目添加域名ESC阿里云服务器准备1、在阿里云官网注册登录完成个人实名认证和学生认证。就可以享受学生价格购买阿里云服务器。博主购买的是98.83元一年的2核 2 GiB的ESC云服务器。2、在阿里云控制台创建实例,注意这里创建实例后就可以看到公网地址,设置实例密码。这里还有一个重要的设置,设置安全组规则,开放3306、8080和18081

2021-05-16 09:13:08 308

原创 深入学习MySQL、SQL优化、集群搭建

个人博客欢迎访问总结不易,如果对你有帮助,请点赞关注支持一下日拱一卒,不期速成,厚积薄发基础部分修改数据库密码alter user root@localhost IDENTIFIED BY '123456';跳过密码验证,在my.cnf中添加skip-grant-tables数据库三大范式第一范式:每个列不可再拆分第二范式:在第一范式的基础上,非主键完全依赖于主键,而不是依赖于主键的一部分第三范式:在第二范式的基础上,非主键只依赖于主键,不依赖于其他非主键在设计数据库

2021-05-15 17:32:13 3352 12

原创 Redis学习、缓存、持久化、哨兵模式

个人博客欢迎访问总结不易,如果对你有帮助,请点赞关注支持一下我写代码是为了更好的表达自我,这是艺术创作(乐趣),而不单单是为了把事情搞定。 —Antirez目录Redis背景NoSQLNoSQL的四大分类KV键值对文档型数据库列存储图形化数据库Redis入门Redis概述Redis的优缺点为什么要用缓存高性能高并发为什么使用Redis而不使用map/guava做缓存Redis为什么快Redis的使用场景Redis安装windows安装Linux安装Redis基础基本知识数据库配置信息INCLU

2021-05-15 17:28:17 1444 1

原创 Java并发编程学习 + 原理分析(建议收藏)

个人博客欢迎访问作者总结不易,点赞,关注支持一下。Doug Lea是一个无私的人,他深知分享知识和分享苹果是不一样的,苹果会越分越少,而自己的知识并不会因为给了别人就减少了,知识的分享更能激荡出不一样的火花。目录线程介绍程序、进程、线程基本概念进程与线程的区别什么是上下文切换串行、并行和并发有什么区别使用多线程的优缺点何时需要多线程并发编程的三要素线程实现线程的创建和使用线程的创建和启动扩展问题run()和start()有什么区别为什么我们调用 start() 方法时会执行 run() 方法,

2021-04-25 10:17:12 1403 6

原创 HashMap、ConcurrentHashMap(1.7、1.8)源码分析 + 红黑树

目录HashMap(1.7)内部结构源码分析属性构造方法put方法resize方法get方法remove方法modCount的作用concurrentHashMap(1.7)内部结构源码分析属性构造方法unsafeput方法segment put方法rehashremove方法size方法concurrentHashMap(1.8)内部结构源码分析属性构造方法put方法initTabletreeifyBinTreeNodeaddCount方法helpTransfertryPresizefullAddCoun

2021-04-21 23:30:08 1624 5

原创 实体类的定义规则

文章目录PO EntityVODTO(TO)POJOPO Entitypersisent object 持久对象有时也被称为Data对象,对应数据库中的entity,可以简单的认为一个PO对应数据库中的一条记录VOview project 表现层对象主要对应页面系显示(web页面/swt/swing界面)的数据对象。可以和表对应,也可以不对应,分局业务的需要DTO(TO)data transfer object 数据传输对象比如一张表有100个字段,那么对应的PO就有100个属性,大多数

2021-03-31 17:17:33 257 1

原创 springboot整合Shiro

如果了解springboot如何整合shiro可以跳过介绍这里写目录标题什么是ShiroShiro的三大核心概念Subject:SecurityManager:Realm:Shiro功能介绍Authentication:Authorization:Session Manager:Cryptography:Caching:Concurrency:Testing:Run As:Remember Me:Shiro面试题(待补充)Springboot整合Shiro导入依赖配置javaConfig常用拦截器分类说明

2021-03-29 21:08:50 185 1

原创 SpringMVC核心技术

请求重定向和转发当处理器对请求处理完毕后,向其它资源进行跳转是,有两种跳转方式:请求转发与重定向。而根据索要跳转的资源类型,又可分为两类:跳转到页面与跳转到其他处理器。注意:对于请求转发的页面,可以是WEB-INF中页面,而重定向的页面,是不能为WEB-INF中的,因为重定向相当于用户再次发出一次请求,而用户不能直接访问WEB-INF中的资源。SpringMVC框架把原来Servlet中的请求转发和重定向操作进行了封装,现在可以使用简单的方式实现转发和重定向。forward:表示转发,实

2021-01-24 13:20:45 165 3

原创 springMVC介绍

springMVC简介springMVC又 叫Spring web mvc。是Spring框架中的一部分,是Spring3.0后发布的。SpringMVC框架的优点1、基于MVC架构模式:MVC架构模式2、容易理解上手快,使用简单:可以开发一个注解的SpringMVC项目,SpringMVC也是轻量级的框架,jar包很小,不依赖特定的接口和类。3、作为Spring的一部分,能够使用Spring框架的IOC容器和Aop编程。方便整合Strtus、MyBatis、Hibernate、JPA等

2021-01-16 12:30:50 2471 3

原创 Spring内置监听器

对于 Web 应用来说,ServletContext 对象是唯一的,一个 Web 应用,只有一个ServletContext 对象,该对象是在 Web 应用装载时初始化的。若将 Spring 容器的创建时机,放在 ServletContext 初始化时,就可以保证 Spring 容器的创建只会执行一次,也就保证了Spring 容器在整个应用中的唯一性。当 Spring 容器创建好后,在整个应用的生命周期过程中,Spring 容器应该是随时可以被访问的。即,Spring 容器应具有全局性。而放入 Serv

2021-01-14 14:36:56 929 1

原创 Spring5新特性

整个Spring5框架代码基于java8,运行时兼容JDK9,许多不建议使用的类和方法在代码库中删除Spring5.0框架自带了通用的日志封装1、Spring5移除了Log4jConfigListener,官方建议使用log4j22、Spring框架整合log4j2第一步引入相关的jar包第二步创建log4j2.xml配置文件<?xml version="1.0" encoding="UTF-8"?><!--日志级别以及优先级排序: OFF > FAT

2021-01-11 12:57:32 233 3

原创 Spring详解+代码

Spring5框架概述1、Spring是轻量级的开源的JavaEE框架2、Spring可以解决企业应用开发的复杂性3、Spring有两个核心部分:IOC和AOP (1)IOC:控制反转,把创建对象过程交给Spring进行管理 (2)AOP:面向切面,不修改源代码进行功能增强4、Spring特点 *方便解耦 *Aop编程支持 *方便程序测试 *方便和其他框架进行整合 *方便进行事务操作 *降低API开发难度IOC容器...

2021-01-10 14:01:51 573 2

原创 Mybatis实现CRUD

查1、不传参数,查询数据库中的所有记录在接口中定义方法List<Employee> selectAll();mapper文件<select id="selectAll" resultType="school.xauat.bean.Employee"> select id,last_name,gender,email from tbl_employee</select>主方法 @Test public void selectAl

2021-01-03 12:54:00 138 1

原创 DFS&BFS

图的基本介绍前面我们学了线性表和树线性表局限于一个直接前驱和一个直接后继的关系树也只能有一个直接前驱也就是父节点当我们需要表示多对多的关系时, 这里我们就用到了图图的举例说明图是一种数据结构,其中结点可以具有零个或多个相邻元素。两个结点之间的连接称为边。 结点也可以称为顶点。如图:图的常用概念1、顶点(vertex)2、边(edge)3、路径4、无向图(右图)顶点之间的连接没有方向,比如A-B, 即可以是 A-> B 也可以 B->A . 路径:.

2021-01-02 13:53:59 118 1

原创 AVL自平衡树

因为AVL自平衡树是建立在二叉排序树的基础上的,所以这里我先简单描述一下二叉排序树和代码实现。二叉排序树(Binary Sort(Search) Tree)(BST)二叉排序树:BST: (Binary Sort(Search) Tree), 对于二叉排序树的任何一个非叶子节点,要求左子节点的值比当前节点的值小,右子节点的值比当前节点的值大。 特别说明:如果有相同的值,可以将该节点放在左子节点或右子节点比如针对前面的数据 (7, 3, 10, 12, 5, 1, 9) ,对应的二叉排序树为:

2020-12-29 16:33:37 170 2

原创 赫夫曼编码实现二进制文件压缩解压

赫夫曼树基本介绍1、给定n个权值作为n个叶子结点,构造一棵二叉树,若该树的带权路径长度(wpl)达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree), 还有的书翻译为霍夫曼树。2、赫夫曼树是带权路径长度最短的树,权值较大的结点离根较近。赫夫曼树几个重要概念和举例说明1、路径和路径长度:在一棵树中,从一个结点往下可以达到的孩子或孙子结点之间的通路,称为路径。通路中分支的数目称为路径长度。若规定根结点的层数为1,则从根结点到第L层结点的路径长度为L-12、结点的权

2020-12-24 15:54:20 4004

原创 堆排序

堆排序基本介绍1、堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。2、堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆, 注意 : 没有要求结点的左孩子的值和右孩子的值的大小关系。3、每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆4、大顶堆举例说明大顶堆特点:arr[i] >= arr[2*i+1] && arr[i] >

2020-12-20 15:38:44 213 1

原创 前序、中序、后序线索化二叉树

为什么要线索化二叉树先看一个问题将数列 {1, 3, 6, 8, 10, 14 } 构建成一颗二叉树. n+1=7问题分析:1、当我们对上面的二叉树进行中序遍历时,数列为 {8, 3, 10, 1, 6, 14 }2、但是 6, 8, 10, 14 这几个节点的 左右指针,并没有完全的利用上.3、如果我们希望充分的利用 各个节点的左右指针, 让各个节点可以指向自己的前后节点,怎么办?4、解决方案-线索二叉树线索化二叉树基本介绍1、n个结点的二叉链表中含有n+1 ...

2020-12-20 15:27:03 2640 3

原创 Maven

Maven概述Maven 是 Apache 软件基金会组织维护的一款自动化构建工具,专注服务于 Java 平台的项目构建和依赖管理。Maven 这个单词的本意是:专家,内行。读音是['meɪv(ə)n]或['mevn]。Maven 是目前最流行的自动化构建工具,对于生产环境下多框架、多模块整合开发有重要作用,Maven 是一款在大型项目开发过程中不可或缺的重要工具。Maven 可以整合多个项目之间的引用关系,我们可以根据业务和分层需要任意拆分一个项目;Maven 提供规范的管理各个常用 jar 包及其各

2020-12-12 13:45:33 577 3

原创 常见的排序算法,一篇就够了

排序算法介绍排序也称排序算法(Sort Algorithm),排序是将一组数据,依指定的顺序进行排列的过程。排序的分类:1) 内部排序:指将需要处理的所有数据都加载到内部存储器中进行排序。2) 外部排序法:数据量过大,无法全部加载到内存中,需要借助外部存储进行排序。常见的排序的排序算法分类如图:冒泡排序冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前

2020-12-05 14:52:37 339 4

空空如也

空空如也

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

TA关注的人

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