自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 资源 (2)
  • 收藏
  • 关注

原创 手撕大厂面试常问索引原理以及慢查询优化

背景MySQL凭借着出色的性能、低廉的成本、丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库。虽然性能出色,但所谓“好马配好鞍”,如何能够更好的使用它,已经成为开发工程师的必修课,我们经常会从职位描述上看到诸如“精通MySQL”、“SQL语句优化”、“了解数据库原理”等要求。我们知道一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,所以查询语句的优化显然是重中之重。一个慢查询引发的思考select

2021-06-01 10:45:51 199

转载 java线程池实现原理

线程池是什么线程池(Thread Pool)是一种基于池化思想管理线程的工具,经常出现在多线程服务器中,如MySQL。线程过多会带来额外的开销,其中包括创建销毁线程的开销、调度线程的开销等等,同时也降低了计算机的整体性能。线程池维护多个线程,等待监督管理者分配可并发执行的任务。这种做法,一方面避免了处理任务时创建销毁线程开销的代价,另一方面避免了线程数量膨胀导致的过分调度问题,保证了对内核的充分利用。而本文描述线程池是JDK中提供的ThreadPoolExecutor类。当然,使用线程池可以带来一系

2021-03-31 14:48:06 218

转载 Apache Kafka内核深度剖析

关于Apache Kafka内核摘要目前来说市面上可以选择的消息队列非常多,像activemq,rabbitmq,zeromq已经被大多数人耳熟能详,特别像activemq早期应用在企业中的总线通信,基本作为企业级IT设施解决方案中不可或缺的一部分。目前来说Kafka已经非常稳定,并且逐步应用更加广泛,已经算不得新生事物,但是不可否认Kafka一枝独秀如同雨后春笋,非常耀眼,今天我们仔细分解一下Kafka,了解一下它的内幕。以下的内容版本基于当前最新的Kafka稳定版本2.4.0。文章主要包含以下内容

2021-03-30 18:29:03 211

原创 十分钟速攻设计模式面试(建议收藏)

设计模式分为三大类:创建型模式(5种):单例模式、工厂方法模式和抽象工厂模式、建造模式 、原型模式结构型模式(7种):适配器模式、装饰模式、代理模式、门面模式、桥梁模式、组合模式、享元模式行为型模式(11种):策略模式、模板方法模式 、观察者模式、迭代器模式、责任链模式、命令模式 、备忘录模式 、状态模式 、访问者模式、中介者模式、解释器模式 。十分钟想学会设计模式是不太可能的,但如果面试的话十分钟可以速记一下每个模式的概念。以下:设计模式传送门单例模式确保

2021-01-29 09:55:26 148

原创 速记java设计模式(模板方法模式)

定义:Define the skeleton of an algorithm in an operation,deferring somesteps to subclasses.Template Method lets subclasses redefine certainsteps of an algorithm without changing the algorithm’sstructure.(定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该.

2021-01-29 09:17:09 85

原创 速记java设计模式(命令模式)

模板方法模式(Template Method Pattern)定义:Define the skeleton of an algorithm in an operation,deferring somesteps to subclasses.Template Method lets subclasses redefine certainsteps of an algorithm without changing the algorithm’sstructure.(定义一个操作中的算法的框架,而将一些

2021-01-29 09:08:41 103

原创 速记java设计模式(桥梁模式)

桥梁模式(Bridge Pattern)定义:Decouple an abstraction from its implementation so that the two canvary independently.(将抽象和实现解耦,使得两者可以独立地变化。)组成:抽象(Abstraction )角色:它定义了抽象类的接口而且维护着一个指向实现(Implementor)角色的引用。精确抽象(RefinedAbstraction)角色:实现并扩充由抽象角色定义的接口。实现(Implem

2021-01-29 09:08:32 114

原创 速记java设计模式(享元模式)

享元模式(Flyweight Pattern)定义:Use sharing to support large numbers of fine-grained objectsefficiently.(使用共享对象可有效地支持大量的细粒度的对象。)对象的信息分为两个部分:内部状态(intrinsic)与外部状态(extrinsic)。享元模式中区分了内蕴状态和外蕴状态。内蕴状态就是共性,外蕴状态就是个性了。享元模式分为:单纯享元模式和复合享元模式。单纯享元模式的结构。抽象享元角色:为具体享元

2021-01-28 16:22:14 130

原创 速记java设计模式(解释器模式)

解释器模式(Interpreter Pattern) (少用)定义:Given a language, define a representation for its grammar alongwith an interpreter that uses the representation to interpret sentences in the language. (给定一门语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。)组成:抽象表达式角色:声明一

2021-01-28 16:11:07 109

原创 速记java设计模式(状态模式)

状态模式(复杂)定义:Allow an object to alter its behavior when its internal statechanges.The object will appear to change its class.(当一个对象内在状态改变时允许其改变行为,这个对象看起来像改变了其类。) 状态模式可以有效的替换充满在程序中的 if else 语句:将不同条件下的行为封装在一个类里面,再给这些类一个统一的父类来约束他们。组成使用环境(Context)角色:客户程

2021-01-28 16:05:32 99

原创 速记java设计模式(访问者模式)

访问者模式(Visitor Pattern)定义:Represent an operation to be performed on the elements of an objectstructure. Visitor lets you define a new operation without changingthe classes of the elements on which it operates.(封装一些作用于某种数据结构中的各元素的操作,它可以在不改变数据结构的前提下定义作用于

2021-01-28 15:57:27 96

原创 速记java设计模式(备忘录模式)

备忘录模式(Memento Pattern)定义:Without violating encapsulation,capture and externalize an object’sinternal state so that the object can be restored to this statelater.(在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。)备忘录(Memento)模式又称标记(Token)模式。

2021-01-28 15:55:30 100

原创 速记java设计模式(门面模式)

门面模式(Facade Pattern)定义:Provide a unified interface to a set of interfaces in asubsystem.Facade defines a higher-level interface that makes thesubsystem easier touse.(要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。)门面模式(facade)又称外观模式。组成:

2021-01-28 14:50:50 88

原创 速记java设计模式(观察者模式)

观察者模式(Observer Pattern)定义:Define a one-to-many dependency between objects so that whenoneobject changes state,all its dependents are notified and updatedautomatically.(定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。)观察者(Observer)模式又名发布-订阅(Publish

2021-01-28 14:46:09 83

原创 速记java设计模式(组合模式)

组合模式(Composite Pattern)定义:Compose objects into tree structures to represent part-wholehierarchies.Composite lets clients treat individual objects andcompositions of objectsuniformly.(将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。)组合(Composite)模式的其

2021-01-28 09:28:32 113

原创 速记java设计模式(迭代器模式)

迭代器模式(Iterator Pattern)定义:Provide a way to access the elements of an aggregate objectsequentially without exposing its underlyingrepresentation.(它提供一种方法访问一个容器对 象中各个元素,而又不需暴露该对象的内部细节。)组成:Iterator 抽象迭代器抽象迭代器负责定义访问和遍历元素的接口,而且基本上是有固定的 3 个方法:first()获

2021-01-28 09:12:08 94

原创 速记java设计模式(适配器模式)

适配器模式(Adapter Pattern)定义:Convert the interface of a class into another interface clientsexpect.Adapter lets classes work together that couldn’t otherwisebecause of incompatibleinterfaces.(将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。)组成:目

2021-01-28 09:11:57 95

原创 速记java设计模式(策略模式)

策略模式(Strategy Pattern)定义:Define a family of algorithms,encapsulate each one,and make theminterchangeable.(定义一组算法,将每个算法都封装起来,并且使它们之间可以互换。)角色组成:算法使用环境(Context)角色:算法被引用到这里和一些其它的与环境有关的操作一起来完成任务。抽象策略(Strategy)角色:规定了所有具体策略角色所需的接口。在 java 它通常由接口或者抽象类来实现。

2021-01-27 15:50:41 123

原创 速记java设计模式(装饰模式)

装饰模式(Decorator Pattern)定义:Attach additional responsibilities to an object dynamically keepingthe same interface.Decorators provide a flexible alternative tosubclassing for extendingfunctionality.(动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。)装饰模式的组成:抽

2021-01-27 15:34:51 97

原创 速记java设计模式(责任链模式)

责任链模式定义:Avoid coupling the sender of a request to its receiver by givingmore than one object a chance to handle the request.Chain thereceiving objects and pass the request along the chain until an objecthandles it.(使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系

2021-01-27 15:24:00 100

原创 速记java设计模式(命令模式)

命令模式定义:Encapsulate a request as an object,thereby letting you parameterizeclients with different requests,queue or log requests,and supportundoable operations.(将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。)组成Receive 接收者角色 该角色就是干活的角

2021-01-27 15:11:18 89

原创 速记java设计模式(中介者模式)

中介者模式(Mediator Pattern),也有成为调停者模式、定义:Define an object that encapsulates how a set of objects interact.Mediator promotes loose coupling by keeping objects from referring to each other explicitly,and it lets you vary their interaction independently.(用一个中介对

2021-01-27 14:36:22 86

原创 速记java设计模式(原型模式)

原型模式(Prototype Pattern)定义:Specify the kinds of objects to create using a prototypicalinstance,and create new objects by copying thisprototype.(用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。) 原型模式属于对象创建模式,GOF给它的定义为:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象工厂模式对新产品的适应能力比较弱:创

2021-01-27 14:12:53 99

原创 速记java设计模式(代理模式)

代理模式(Proxy Pattern)定义:Provide a surrogate or placeholder for another object to control access to it.(为其他对象提供一种代理以控制对这个对象的访问。)说白了就是,在一些情况下客户不想或者不能直接引用一个对象,而代理对象可以在客户和目标对象之间起到中介作用,去掉客户不能看到的内容和服务或者增添客户需要的额外服务。代理模式分为 8 种,这里将几种常见的、重要的列举如下:远程(Remote)代理:为一

2021-01-27 11:27:27 110

原创 速记java设计模式(建造模式)

建造者模式(Builder Pattern)定义:Separate the construction of a complex object from its representation sothat the same construction process can create different representations.(将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。)GOF 给建造模式的定义为:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创

2021-01-27 11:01:23 113

原创 速记java设计模式(工厂模式)

工厂模式定义:Define an interface for creating an object,but let subclasses decide which class to instantiate.Factiory Method lets a class defer instantiation to subclasses(定义一个用于创建对象的借口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。)角色:Product 为抽象产品类负责定义产品的共性,实现对事物最抽象的定

2021-01-27 10:29:16 113

原创 速记java设计模式(单例模式)

单例模式(Singleton Pattern)定义:Ensure a class has only one instance, and provide a global point ofaccess to it.(确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实 例。)目的:控制特定的类只产生一个对象,当然也允许在一定情况下灵活的改变对象的个数。通用代码:(是线程安全的)public class Singleton { private static final Singlet

2021-01-27 10:05:46 103

原创 #2021

2020经历了许多事情,2021希望会更好。待续。

2021-01-04 11:06:09 140

原创 redis读书笔记(redis数据结构)

1.redis结构与对象redis的默认字符串是 SDS(simple dynamic string)对象中分别包含raw编码和embstr编码皆为sds字符串对象实现。1.1 redis的数据类型 :数据库键总是一个字符串对象。键值则是:①string字符串对象②列表对象 list③哈希对象 hash object④集合对象 set object⑤有序集合对象 sorted set object1.2 关于SDSSDS除了作为redis的默认字符串外还用作于缓冲区(buffer)

2020-12-16 17:46:54 96

原创 一直使用中强大的dateUtil (建议收藏)

S包含日期偏移、生日计算、某个时间年月、是否是今天、计算第几周、时间差、比较大小以及间隔等常用业务时间计算方法、此处是完整代码链接资源地址https://download.csdn.net/download/plqaxx/13183113/** * 获得当前日期(年月日) * * @author ccc @creationDate. 2010-8-27 下午05:11:23 * @return 当前时间(yyyy-MM-dd) */ public static Date

2020-11-24 09:48:24 1282

原创 linux常用命令-centos

centos常用命令CentOS 查看/监测网卡流量的命令第一种:watch more /proc/net/dev第二种:watch ifconfig第三种:iptraf[root@yan-001 ~] # uname -a # 查看内核/操作系统/CPU信息的linux系统信息命令[root@yan-001 ~] # head -n 1 /etc/issue # 查看操作系统版本,是数字1不是字母L[root@yan-001 ~] # cat /proc/cpuinfo # 查看CPU.

2020-11-10 09:46:30 228

原创 linux常用命令大全-ubuntu

Ubuntu常用命令大全sudo apt-get upgrade (更新软件源之后记得更新一下系统的软件包列表,可使用此命令或者下一个)sudo apt-get dist-upgrade清除所以删除包的残余配置文件dpkg -l |grep ^rc|awk ‘{print $2}’ |tr ["\n"] [" "]|sudo xargs dpkg -P -编译时缺少 h 文件的自动处理sudo auto-apt run ./configure查看安装软件时下载包的临时存放目录l.

2020-11-10 09:40:51 191

原创 jenkins安装详细最新全过程-1

jenkins具体是什么可以自行百度,对于普通开发而言最直白的就是一键部署。准备工作下载#官方下载地址http://ftp-nyc.osuosl.org/pub/jenkins/war/cd /usr/localwget http://ftp-nyc.osuosl.org/pub/jenkins/war/latest/jenkins.war修改配置#修改jenkins home 目录(视磁盘情况,默认是 “~/.jenkins” )vi /etc/profile#最后一行增

2020-11-03 13:52:12 155

原创 java雪花算法springboot引用

两个步骤1.yml添加配置2.configyml文件# 用于雪花算法生成idapplication: datacenterId: 2 workerId: 1config文件/** * 雪花算法订单号生成 */@Configurationpublic class SnowflakeConfig { @Value("${application.datacenterId}") private Long datacenterId; @Va

2020-10-29 16:50:28 2765 2

原创 java对接支付宝支付-最新全过程

先按照步骤一步步来。1.先申请一个账号·注册蚂蚁金服开发者账号(免费)注册地址:https://open.alipay.com,用你的支付宝账号扫码登录,完善个人信息,选择服务类型(选自研)。2.注册完之后进入沙箱环境配置秘钥2.1https://openhome.alipay.com/platform/appDaily.htm 此处直达沙箱。2.2https://opendocs.alipay.com/open/291/105971到达此地址生成秘钥2.3直接生成秘钥

2020-10-29 14:46:44 4747 7

原创 java 运行指定类的main函数

运行jar文件的方法是:java -jar xxx.jar但是有时,我们希望运行里面的具体某个类,这时可以通过:java -cp xxx.jar xxx.com.xxxx它会找到这个类的main函数,开始执行其中-cp命令是将xxx.jar加入到classpath,这样java class loader就会在这里面查找匹配的类。...

2020-10-14 18:01:37 1612

原创 关于DBeaver的简易操作和常用按钮

一。下载地址:https://dbeaver.jkiss.org/download/主要界面你会用到的设置:值得关注的地方:

2020-10-14 16:56:21 3439

原创 java/springboot 浏览器获取不到header值( cros 跨域问题)

在前后端分离的开发中,浏览器只会返回默认的header参数。如果有自定义的参数的,需要如下解决解决办法1在跨域做特殊处理这个方法是主要针对option请求。在正式跨域的请求前,浏览器会根据需要,发起一个“PreFlight”(也就是Option请求),用来让服务端返回允许的方法(如get、post),被跨域访问的Origin(来源,或者域),还有是否需要Credentials(认证信息)所以if (httpRequest.getMethod().equals("OPTIONS")) {

2020-10-14 10:49:40 2560

原创 java、springboot 接口导出txt

就写两个方法。@Log @ApiOperation(value = "导出单码/箱码",produces = "application/octet-stream") @GetMapping(value = "/export") public void exportExcel(TraceBatchPageQuery page HttpServletResponse response){ Page<TraceBatchDto> pages = traceBa

2020-10-12 10:54:57 3197

原创 int,bigint,mediumint,smallint和tinyint之间的区别 mysql

MySQL支持SQL标准整数类型INTEGER(或INT)和SMALLINT。作为对该标准的扩展,MySQL还支持整数类型TINYINT,MEDIUMINT和BIGINT。它们具有不同的存储大小和可接受值的范围。接下来是图表TypeStorage (Bytes)Minimum Value SignedMinimum Value UnsignedMaximum Value SignedMaximum Value UnsignedTINYINT1-1280127255.

2020-09-29 17:15:10 518

强大的DateUtil

包含日期偏移、生日计算、某个时间年月、是否是今天、计算第几周、时间差、比较大小以及间隔等常用业务时间计算方法、

2020-11-24

Redis-x64-3.2.100.rar

这是redis绿色无须安装包,即开即用,直接解压就可以用。直接点击redis-server启动即可用。初始无密码,端口6379。

2020-10-14

空空如也

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

TA关注的人

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