自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ayu的博客

学习记录

  • 博客(54)
  • 收藏
  • 关注

原创 MySQL高级3--性能优化

性能优化1.应用优化1.1 使用数据库连接池1.2 减少对MySQL的访问1.2.1 避免数据重复检索1.2.2 增加cache层1.3负载均衡1.3.1 MySQL读写分离1.3.2 采用分布式数据库架构2.MySQL内存管理及优化2.1 内存优化原则2.2 MyISAM内存优化2.3 InnoDB内存优化3. MySQL并发参数调整4. MySQL锁4.1 锁概述4.2 锁分类4.3 MySQL锁1.应用优化1.1 使用数据库连接池使用数据库连接池,避免数据库连接频繁的创建和销毁,进而减少资源的

2020-08-13 15:58:30 2146

原创 Docker学习笔记

文章目录1. 了解linux基础2. Docker概述2.1 Docker简介2.2 Docker架构2.3 Docker架构图3. Docker的安装和简单测试CentOS7下Docker安装文档3.1 卸载旧的Docker版本(未使用过docker不必操作)3.2 安装Docker3.3 镜像加速(购买过阿里云服务器的读者)docker镜像加速参考文档4. Docker的常用命令4.1 镜像相关命令4.2 容器相关命令5. Docker安装Nginx6.Docker安装TomcatDockerHub地址

2020-05-29 22:16:08 599

原创 Redis学习笔记(面试+实战)

文章目录概念(面试)1.什么是Redis2.Redis的优缺点3.Redis为什么这么快4.Redis的持久化4.1 什么是Redis持久化4.2 Redis持久化机制4.2.1RDB(快照)4.2.2AOF实战1.Redis安装(Linux)概念(面试)1.什么是Redis    Redis即远程字典服务,是一个开源的用c语言编写,基于内存,亦可持久化的key-value型非关系型数据库,...

2020-05-08 10:25:00 1999 3

原创 Mac常用终端命令

目录操作命令名 功能描述 使用举例mkdir 创建一个目录 mkdir dirnamermdir 删除一个目录 rmdir dirnamemvdir 移动或重命名一个目录 mvdir dir1 dir2cd 改变当前目录 cd dirnamepwd 显示当前目录的路径名 pwdls 显示当前目录的内容 ls -ladircmp 比较两个目录的内容 dircmp dir1 dir2Korn Shell 命令命令名 功能描述 .

2022-04-01 10:21:43 226

原创 SpringBoot自定义校验注解

注解 :@InList 用来校验属性值是否在指定数组中是:通过校验否:抛异常@Constraint(validatedBy = {InListConstraintValidator.class}) 指定校验器,可以是数组String message() default “{com.study.hsst.anno.InList.message}”:指定的默认异常信息@Documented@Constraint(validatedBy = {InListConstraintValidator.cl.

2022-03-31 14:54:08 754

原创 SpringBoot校验异常统一处理

Controller:参数添加@Valid注解,保证实体属性校验生效@RestController@RequestMapping("/product")public class ProductController { @RequestMapping("/save") public Map<String, String> save(@Valid @RequestBody Product product){ //业务逻辑 return Maps

2022-03-31 11:30:21 920

原创 力扣-539 最小时间差

题目:题解:class Solution { public int findMinDifference(List<String> timePoints) { if(timePoints.size()>1440){ return 0; } Collections.sort(timePoints); int minutesO = getMinutes(timePoints.get(0));

2022-01-18 19:37:27 136

原创 建造者模式

建造者模式定义:建造者模式又被称为生成器模式,这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。@Slf4j@ToString//@Builder 工作中可使用该注解直接生成建造者public class UserInfo { private Long userId; private String userName; private Long cityId; private String cityName; private String

2022-01-14 10:52:57 150

原创 力扣-03 无重复字符的最长子串

题目:代码: public static int lengthOfLongestSubstring(String s) { int start = 0; int maxlength = 0; Map<Character, Integer> hash = new HashMap<>(); char[] charArray = s.toCharArray(); for (int end = 0;

2022-01-13 20:25:42 3378

原创 力扣-747 至少是其他数字两倍的最大数

题目:代码:class Solution { public int dominantIndex(int[] nums) { if (nums.length < 2) { return 0; } int max = -1; int maxIndex = -1; //记录第二大数 int second = -1; for (int i = 0; i <

2022-01-13 17:23:39 119

原创 JVM-执行引擎

JVM-执行引擎1.执行引擎2.Java程序编译和解释执行3. 已经内置JIT编译器了,那为什么还需要使用解释器来“拖累”程序的执行性能呢?4.热点代码及探测方式5.HotSpot设置程序执行方式6.AOT编译器1.执行引擎执行引擎是Java虚拟机核心的组成部分之一“虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行的能力,其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的,而虚拟机的执行引擎是由软件自行实现的,因此可以不受物理条件制约地制定指令集与执行引擎的结构体

2022-01-13 14:15:34 147

原创 力扣-02 两数相加

Give you two non empty linked lists to represent two non negative integers. Each number is stored in reverse order, and each node can only store one digit.Please add the two numbers and return a linked list representing sum in the same form.You can assu.

2022-01-11 20:40:36 93

原创 力扣-01 两数之和

Given an integer array nums and an integer target value target, please find the two integers with and as the target value target in the array and return their array subscripts. You can assume that each input will correspond to only one answer. However, th.

2022-01-11 19:48:43 94

原创 Spring基本知识点

1.什么是BeanDefinition?BeanDefinition表示Bean定义,Spring根据BeanDefinition来创建对象BeanDefinition重要属性:beanClass:表示一个类的类型,Spring在创建过程中会根据此属性来实例化得到对象scope:表示一个bean的作用域,例如:scope为singleton表示该bean是一个单例bean,scope为prototype表示该bean是一个原型beanisLazy:表示一个bean需不需要懒加载,懒

2022-01-04 19:09:40 500

原创 Spring Cloud基本概念

1.Spring Cloud是什么Spring Cloud为开发者提供了一套快速开发分布式系统的组件,Spring Cloud并不推荐重复造轮子,主张利用Spring Boot将其他公司比较成熟的组件进行封装核心概念:配置中心注册中心服务网关负载均衡RPC调用服务熔断服务降级服务限流全局锁控制总线分布式事务服务安全链路追踪集群管理事件驱动任务调度云连接器函数计算2.分布式配置中心由来:微服务系统开发中,存在很多功能开关和各种参数的配置项,传统的配置文件、

2022-01-03 19:06:22 489

原创 观察者模式

观察者模式定义了对象之间的一对多依赖,让多个观察者对象同时监听某一个主题对象,当主题对象发生变化时,它的所有依赖者都会收到通知并更新优点:可以在运行时建立对象之间的关系代码参考Spring Boot源码 AbstractApplicationEventMulticaster类、ApplicationListener类 //事件发布者public class EventMulticaster { private final ListenerRetriever listenerRetrie

2022-01-03 16:02:12 178

原创 JVM-类加载子系统

JVM-类加载子系统1.类加载子系统的作用从文件系统或者网络中加载字节码文件(.class后缀)将字节码文件的信息存放到JVM运行时数据区的方法区中,将字节流所代表的静态存储结构转化为方法区的运行时数据结构在内存中生成代表该class文件对应类的java.lang.Class对象,作为该类在方法区的数据入口2.类加载器的执行过程加载:通过类文件的全限定名获取该文件对对应的二进制字节流,将字节流所代表的静态存储结构转化为JVM运行时数据结构,并在内存中生成对应的java.lang.Clas

2021-12-01 19:26:09 307

原创 20201120-leetcode2

给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。...

2020-11-20 18:31:29 174

原创 20201119-leetcode1

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。...

2020-11-19 17:23:22 147

原创 python-virtualenv的使用

学习目标:python-virtualenv的使用学习内容:1、 了解virtualenv的作用2、 安装virtualenv3、 使用virtualenv学习时间:1、 2020/9/29 16:00-18:00学习产出:1.virtualenv的作用如果我们同时开发多个python应用程序,这些应用程序会使用一个python运行环境。由于不同应用程序所需要的运行环境不同,此时可能造成python中库不兼容的问题。我们使用virtualenv就可以解决这个问题,virtuale

2020-10-10 17:11:43 284

原创 JVM面试题-篇二

1.class文件在内存中是如何存储的?        磁盘中的class文件通过类加载子系统加载后生成class content存储在操作系统内存中,class content通过class文件规范解析生成instanceKlass存储在方法区中,同时生成instanceMirrorKlass镜像类存储在堆区,Class对象就是instanceMirrorKlass类的实例。拓展:方法区、元空间、永久代三者的关系

2020-08-31 18:44:14 125

原创 JVM面试题-篇一

JVM散记1.JVM两个子系统和两个组件2.类的加载3.运行时数据区(详)4.对象创建的主要流程5.对象内存分配6.内存分配时的并发安全问题7.对象的访问定位8.句柄访问9.直接指针访问1.JVM两个子系统和两个组件两个子系统:类装载子系统:根据给定的全限定类名来装载class文件到运行时数据区的方法区中。执行引擎:执行classes中的指令两个组件:运行时数据区:jvm内存本地接口:与本地方法库交互,是Java语言与其它编程语言交互的接口。2.类的加载将类的.class文件中的

2020-08-25 18:01:24 326

原创 java基础知识面试必知必会--篇一

文章目录1.什么是Java拓展静态编程语言和动态编程语言:2. Java语言和C++语言的区别与联系:拓展解释型语言和编译型语言:3.Java语言的跨平台性原理是什么?拓展JDK、JRE、JVM1.什么是JavaJava时一门面向对象的计算机编程语言,可以将其称之为c+±-,它吸收了c++语言的许多优点,同时摒弃了c++语言多继承,指针等难以理解的概念。Java语言是静态面向对象编程语言的代表...

2020-08-14 16:24:38 226

原创 MySQL高级2--SQL优化

SQL优化1.体系结构图2.存储引擎2.1查看数据库中的存储引擎2.3存储引擎的选择3.SQL语句优化3.1SQL语句优化步骤3.1.1查看SQL语句的执行频率(借鉴性指标)3.1.2 定位低效率执行SQL3.1.3 explain分析执行计划3.1.4 show profilefe分析SQL3.1.5 trace分析优化器执行计划3.2 正确使用索引法则3.3SQL优化3.1 优化insert语句3.2 优化group by语句3.3 优化嵌套查询(子查询)3.4 优化or查询3.5 优化分页查询1.

2020-08-07 17:41:05 648

原创 MySql高级1--索引

索引1.索引概述2.索引优劣势3.索引结构拓展:4.索引分类5.索引语法5.1创建索引5.2查看索引5.3删除索引5.4修改索引6.索引设计原则1.索引概述        索引是是帮助MySQL高效获取数据的一种数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式指向数据,这样就可以通过这些数据结构实现对数据的高效查找。这种数据结构就是索引。2.索引优劣势优势类似与书籍的目录索引,提高数据检索效

2020-08-06 17:28:17 241

原创 线程池中到底创建多少线程合适?

文章目录@[TOC]1.线程池中线程数目不当造成的问题2.如何创建线程数目合适的线程池1.线程池中线程数目不当造成的问题过小会导致程序不能充分地利用cpu资源,容易导致饥饿。过大会导致更多的线程上下文切换,占用更多内存。2.如何创建线程数目合适的线程池想要创建合适线程数目的线程最主要的参考因素便是我们程序的类型,不同类型的程序有不同的对策。2.1 cpu密集型运算对于cpu运算密集的程序,我们通常采用cpu核心数+1能够实现最优的cpu利用率,为什么不是cpu核心数个线程,是保证当前线程

2020-08-06 14:50:10 629

原创 自定义线程池代码实现--2

文章目录原理代码实现测试结果原理代码实现测试类//自定义线程池public class TestPool {public static void main(String[] args) { //test ThreadPool threadPool = new ThreadPool(3, 5, TimeUnit.MICROSECONDS, 6); for (int i = 0; i < 10; i++) { int j = i;

2020-07-27 11:25:51 205

原创 自定义线程池代码实现--1

//连接池public class Pool {//定义线程池的大小private final int poolSize;//连接对象数组private Connection[] connections;//连接池中连接对象状态 0:可用 1:不可用private AtomicIntegerArray states;//初始化连接池对象public Pool(int poolSize) { this.poolSize = poolSize; for (int i =

2020-07-24 15:57:10 138

原创 最好的单例模式?

单例模式饿汉枚举懒汉双重检测静态内部类饿汉1.为什么要加final?防止子类继承父类,子类中的一些不适当操作破坏单例。2.如果实现了序列化接口,还要做什么来防止反序列化破坏单例?private Object readResolve() {return instance;}这个方法在反序列化创建对象时会直接return当前的对象,而不会将字节码生成对象当成结果返回而破坏单例。3.为什么要设置私有?是否能反射创建新的实例?防止其它类通过构造方法直接创建对象不能,任然可以通过暴力反

2020-07-17 18:03:26 397

原创 异步生产者-消费者设计模式(多线程设计模式)

异步生产者-消费者设计模式介绍使用场景代码实现执行结果介绍生产者负责产生数据,将数据存入消息队列,不关系数据该如何处理,当消息队列满时不再生产数据消费者负责从消息队列中取数据,对数据进行处理,当消息队列为空时,停止消费消息队列用来平衡生产和消费的消息资源,消费队列有容量限制使用场景JDK中各种阻塞队列代码实现主类import java.util.LinkedList;//异步生产者/消费者模式public class ProducerConsumerModel { pub

2020-07-16 10:58:32 232

原创 Java后台开发面试题整理1-10(2020年)

文章目录1.Http和Https的区别2.对称加密和非对称加密1.Http和Https的区别Http : Http运行在TCP之上,明文传输,不安全,端口是80。相比于Https没有加减密操作以及证书的需求,所以对资源的消耗较小。Https : Https运行在SSL之上,SSL运行在TCP之上,所以Https相当于是添加了加密操作和认证机制的Http,Https的端口是443。Https需要进行加减密操作以及证书的购买,对资源的消耗大。2.对称加密和非对称加密对称加密:加密和解密使用同

2020-06-06 20:30:09 403

原创 Redis安装及环境搭建(保姆级教学)

文章目录1. 下载安装包2. 解压3. 环境准备4. redis的启动与测试1. 下载安装包wget http://download.redis.io/releases/redis-5.0.8.tar.gz2. 解压3. 环境准备4. redis的启动与测试4.1.复制redis配置文件1)mkdir myconfig2)cp /opt/redis-5.0.8/red...

2020-04-30 12:42:01 198

原创 后台开发必懂的Linux知识

文章目录什么是LinuxLinux基本思想Linux主要特性拓展Linux的优点什么是Linux内核Linux的基本组件Linux的体系结构Linux中的目录及其含义Linux常用命令(CentOS7)1.开关机常用命令sync:将数据从内存同步到硬盘shutdown:关机(重启)命令2.目录管理常用命令cd : 切换目录命令cd .. : 返回上一级命令./ :当前目录ls : 列出当前目录下的...

2020-04-26 13:57:12 742

原创 Java并发编程学习笔记--基础篇一

文章目录线程基础知识1.1 什么是线程1.2线程的创建方式1.3线程的创建方式对比1.4线程上下文切换1.5线程死锁1.5.1什么是线程死锁1.5.2死锁产生必须具备的四个条件1.5.3如何避免线程死锁1.6守护线程和用户线程1.7简单了结ThreadLocal线程基础知识1.1 什么是线程    操作系统分配资源时是把资源分配给进程的,一个进程中至少...

2020-04-16 11:43:26 206

原创 Spring基础知识简单回顾

Spring框架概述   Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。   目的:解决企业应用开发的复杂性。   功能:使用基本的javaBean来代替EJB,并提供了更多...

2020-04-13 20:45:24 316

原创 剑指offer--矩形覆盖--10

我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?public class Solution {public int RectCover(int target) { if(target==0){ return 0; } if(target==1){ return 1...

2020-04-13 18:22:01 111

原创 剑指offer--4.13--树相关

输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)/**public class TreeNode {int val = 0;TreeNode left = null;TreeNode right = null;public TreeNode(int val) { this.val = val;}}*/public clas...

2020-04-13 18:16:14 134

原创 剑指offer--合并两个有序链表--14

输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。public class Solution {public ListNode Merge(ListNode list1,ListNode list2) { ListNode list = new ListNode(-1); ListNode listTemp = list; wh...

2020-04-12 20:01:20 121

原创 剑指offer--调整数组顺序使奇数位于偶数前面--13

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变import java.util.*;public class Solution {public void reOrderArray(int [] array) { //存放数据的集合 List<Integer&...

2020-04-10 12:28:57 100

原创 剑指offer--数值的整数次方--12

给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。保证base和exponent不同时为0public class Solution {public double Power(double base, int exponent) { if(base==0.0){ return 0; } //如...

2020-04-10 11:59:36 81

空空如也

空空如也

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

TA关注的人

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