自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 算法-滑动窗口

【代码】算法-滑动窗口。

2024-01-17 23:22:26 426

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

【代码】力扣-无重复字符的最长子串。

2024-01-16 23:16:22 425

原创 力扣-三数之和

注意:答案中不可以包含重复的三元组。

2024-01-14 23:45:38 603

原创 力扣-盛最多水的容器

给定一个长度为 n 的整数数组 height。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i])。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。11.盛最多水的容器。说明:你不能倾斜容器。

2024-01-14 16:54:07 495

原创 力扣-移动零

【代码】力扣-移动零。

2024-01-12 23:11:29 499

原创 128. 最长连续序列

【代码】128. 最长连续序列。

2024-01-12 00:16:43 390

原创 力扣-字母异位词分组

【代码】力扣-字母异位词分组。

2024-01-11 00:02:12 459 1

原创 四步解决联想电脑摄像头打不开问题

四、第四步 在桌面助手中,查看摄像头是否关闭,如果关闭,请开启即可。二、第二步 打开联想电脑管家,找到工具包,并打开。1、第一步 先检查电脑摄像头是否开启。三、第三步 选择桌面助手,并开启。

2023-03-23 09:27:07 3375 2

原创 java8新特性“Lambda&Stream“

java8的新特性Lambda&Stream流

2022-12-23 00:03:39 376

原创 轻量级RPC框架‘dubbo’

高性能RPC框架

2022-08-14 23:29:19 516

原创 docker部署容器

docker部署容器docker部署容器一、docker 安装 nginx二、docker 安装 tomcat三、docker部署es+kibana3.1、可视化portainer四、docker镜像详解4.1、镜像是什么?4.2、镜像的获取途径4.3、 联合文件系统4.4、提交自己的镜像五、容器数据卷5.1 、为什么用卷技术?5.2 、如何使用数据卷?5.3 、安装MySql5.4、具名挂载和匿名挂载匿名挂载具名挂载小结扩展六、初始Dockerfile6.1、什么是Dockerfile?构建步骤:doc

2022-05-28 10:35:31 746

原创 认识docker

认识docker认识docker一 、什么是docker?二、docker组成架构三、安装Docker3.1 安装docker run hello-world3.2 阿里云镜像加速3.3 hello-world执行流程四、docker底层原理4.1 docker是如何工作的?4.2 Docker为什么比VM快?4.3 docker常用命令1、镜像命令2、容器命令3、其他命令一 、什么是docker?docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布

2022-05-11 15:53:45 307

原创 春日限定,欣赏春之美

![在这里插入图片描述](https://img-blog.csdnimg.cn/6982e690f58c4564b4ce159e024475f7.jpg?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAR2l0c2hpbGU=,size_20,color_FFFFFF,t_70,g_se,x_16(https://img-blog.csdnimg.cn/90ab938c40594cb49a9a971cb623

2022-04-06 01:02:53 258

原创 idea后端开发快捷键整理

代码格式化 ctrl + alt + l代码重构重命名  shift +f6代码import优化 ctrl + alt + o查看一般对象的方法实现 ctrl + 鼠标左键查看接口/抽象类的对象的方法实现 ctrl + alt +鼠标左键生成测试类 ctrl +shift + t代码粘贴板 ctrl +shift +v查看当前对象的引用情况  alt +f7查看当前所看文件在工程中的位置 alt +f1 然后选择第一个选项代码查看前进/后退  ctrl + a

2022-04-02 23:07:32 504

原创 SpringBoot: Could not resolve placeholder ‘XXXX‘ in value “${XXXX}“

SpringBoot: Could not resolve placeholder ‘XXXX’ in value “${XXXX}”错因:通过@Value("${aliyun.oss.file.endpoint}")读取application.properties配置文件的内容报错:Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enab

2022-03-12 15:07:21 2467

原创 在浏览器中输⼊url地址显示主⻚的过程

在浏览器中输⼊url地址显示主⻚的过程这里写目录标题1、DNS解析2、建立TCP三次握手3、发送HTTP请求3.1、http协议的流程?3.2、HTTP状态码3.3、GET和POST区别==区别==数据样式:参数类型;数据大小:安全性Get、Post请求发送的数据包有什么不同吗?3.4、响应头信息cookie和session的区别==区别:==存取方式:安全性:浏览器支持不同:3.5、HTTP 1.0和HTTP 1.1 、HTTP 2.0区别==HTTP 1.0和HTTP 1.1区别:==长连接、短连接

2021-11-24 13:12:03 2406

原创 String 、StringBuffer 、 StringBuilder区别

String 、StringBuffer 、 StringBuilder区别目录1、String2、StringBuilder、StringBuffer共同点:区别:1、运行速度2、线程安全性1、StringString是字符常量,一旦确定就不可变,原因是String 类中使⽤ final 关键字修饰字符数组来保存字符串,private final char value[] ;2、StringBuilder、StringBufferStringBuilder和StringBuffer均为字符.

2021-11-22 20:27:45 265

原创 强引用、软引用、弱引用、虚引用和OOM分析

JVM GC进阶目录1.认识GC roots?2、引用可达与引用不可达3、java中可用作GC roots的对象4、JVM调优和参数配置如何理解两个经典参数: -Xms和-XmxJVM默认值5、强引用、软引用、弱引用、虚引用分别时什么?认识weakHashMap6、OOM错误分析1.StackOverflowError2、OutOfMemoryError: java heap space3、OutofMemoryError: GC overhead limit exceeded4、OutofMemoryE

2021-11-21 16:00:49 611

原创 锁、volatile、CAS底层理解

面试题分享m一、volatile部分1.请你说说volatile的理解?2,JMM的理解案例1: 数据可见性案例2: 不保证原子性3、如何解决原子性操作:4.线程安全如何保证?5、哪些地方使用volatile?二、CAS理解1、谈谈你对CAS的理解?2.认识CAS底层 unsafe .getAndAddInt三、集合类HashSet1、hashset的底层是hashmap,为什么new HashSet<>.add("a")不出错(HashMap是基于key value形式存储数据)?2、为什么

2021-11-18 15:44:50 405

原创 hashcode、equals()、==之间的关系

hashcode、equals()、==之间的关系目录一、== 和 equals()区别?1、==2、equals()3、hashcode4、hashcode() 的返回值和 equals() 区别:问题:为什么重写equals()方法时候一定要重写hashCode()方法 ?一、== 和 equals()区别?1、==判断两个对象的地址是否相等,有以下两种情况?情况1、基本数据类型基本数据类型中,“==”比较的是值。情况2、引用类型*引用数据类型中,“” 比较的是内存地址。*例如:

2021-11-15 23:20:05 261

原创 redis实现分布式锁

一、分布式锁redis实现分布式锁一、分布式锁1、为什么要使用分布式锁?2、什么是分布式锁?3、分布式锁的分类和实现方式?4、分布式锁具备条件:二、如何设计一个分布式锁?如何对锁性能进行优化?1、用redis实现分布式锁的好处?1、最简单的分布式锁: SETNX加锁,DEL解锁2、给锁设置过期时长1、为什么要使用分布式锁?为保证一个方法或者属性在高并发情况下的同一时间只能被同一个进程执行。2、什么是分布式锁?控制分布式系统有序的去对共享资源进行操作,通过互斥来保持一致性。3、分布式锁的分类和实

2021-10-30 17:25:31 121

原创 MySQL和Redis数据一致性

MySQL和Redis数据一致性双写一致性1.什么是双写一致性?2.数据读取的过程3.保证双写一致性的策略:1.什么是双写一致性?当我们更新了数据库的数据之后,同时保证redis的数据库同时更新。2.数据读取的过程当有请求读取数据库的时候,首先从缓存中读取,如果命中缓存直接返回数据,如果没有命中缓存,则从数据中查询数据,然后将查询的数据写入缓存,之后返回查询后的数据。3.保证双写一致性的策略:先更新缓存,再更新数据库先更新数据库,再更新缓存先删除缓存,再更新数据库先更新数据库,再删缓存

2021-10-30 15:48:12 139

原创 mysql主从复制

mysql主从复制主从复制1.什么是主从复制?2.为什么需要主从复制?3.主从复制的原理4.主从复制作用5.主从复制的形式6.主从复制类型1.什么是主从复制?将数据从一个mysql数据库服务器的主节点复制到多个从节点。主节点负责读,从节点负责写,这样就会降低服务器的压力,从而提高效率。2.为什么需要主从复制?在大数据时代的到来,随着业务的不断在增加,会造成数据库的负载过重,如果使用单一的服务器,会容易造成宕机,此时保存在mysql的数据就可能会丢失,为了解决这个问题,mysql的主从复制出现了。

2021-10-06 12:57:08 94

原创 线程池面试

java线程池面试最近在面试中,经常被问到线程池,于是将线程池的知识点总结起来…秋招,冲冲冲!!!线程池1.为啥用线程池?2.线程池的特点3.线程池创建的四种方法?4.线程池的四大拒绝策略?5.线程池的七大参数?6.线程池的执行流程7.如何合理分配线程池7.1 CPU密集7.2 IO密集1.为啥用线程池?引入线程池的作用主要是控制运行的线程的数量,处理的过程中将任务放入到队列里,然后线程创建后启动这些任务,如果线程数量超过最大线程数。需要线程排列等待,等到其他线程执行完毕后,再从队列里取出任务来执

2021-09-17 11:27:56 124

原创 学习nginx

nginx学习nginx一.什么是nginx?二.nginx能干什么?2.1 什么是正向代理?2.2 什么是反向代理?2.3负载均衡2.4 动静分离三.nginx基本操作3.1 nginx配置文件 nginx/conf/nginx.conf3.2 防火墙设定四.反向代理实现案例4.1.Nginx反向代理的实现案例11.hosts 文件域名配置2.nginx里进行请求转发的配置(反向代理配置) nginx.conf4.2Nginx反向代理的实现案例21.准备工作2.找到nginx配置文件 nginx.co

2021-08-29 22:12:34 1138 7

原创 hashMap底层原理

Hashmap原理1.hashmap中的put方法?怎样查找元素插入位置?HashMap 中 put一对键值时,它会根据 key的 hashCode 值计算出一个位置, 该位置就是此对象准备往数组中存放的位置.通过hash计算出来的值将会使用indexFor方法找到它应该所在的table下标。当两个key通过hashCode计算相同时,则发生了hash冲突(碰撞).2.怎样解决hash碰撞?通过链表 表头插入法 解决hash冲突,(比如A和B都hash映射到下标i中,之前已经有A了,当map.pu

2021-08-16 09:16:54 225

原创 Synchronized底层原理

synchronized底层原理一、synchronized的使用场景1.1、某个对象实例内 public void test3(){ synchronized (this){ } }通过字节码分析synchronized底层如何实现先用javac -encoding utf-8 SynchronizeTest.java编译出class文件再用javap –v SynchronizeTest.class查看字节码文件分析字节码文件通过字节

2021-07-29 10:00:48 134

原创 TCP三次握手和四次挥手

三次握手和四次挥手**注意:**三次握手建立链接,四次挥手断开链接.一、三次握手当客户端向服务端发送连接时,会先发一包连接请求数据,表示能否与你建立连接,这包数据称为SYN包,如果对端同意连接,则会回复一包SYN+ACK包,客户端收到之后回复一包ACK包,连接建立。该过程中互相发送了三包数据,因此称之为三次握手。[SYN 是为了告诉发送端,发送方到接收方的通道没问题;ACK 用来验证接收方到发送方的通道没问题]为啥要连带发送SYN报文?TCP是全双工通信,协议规定当收到建立链接请求后必须返回序列

2021-07-24 20:45:55 229

原创 msql锁机制

MySQL锁机制锁机制和主从复制一、什么是锁?二、锁的分类1.对数据操作类型(读、写)三、表锁分析1.查看哪些表被锁?2.如何分析表锁3.对数据操作的粒度分(表锁、行锁)四、行锁分析(偏写)1.特点==注意==:2.行锁简单操作3、行锁两个SESSION同时对不同记录进行写操作4.索引失效行锁变成表锁4.间隙锁的危害五、三锁1.表锁(偏读)特点:加读锁:加写锁:2.页锁特点六、主从复制一、什么是锁?锁是计算机协调多个进程或线程并发访问某一资源的机制。(防止资源的争抢)二、锁的分类1.对数据操作类型

2021-07-20 09:07:55 123

原创 函数式接口、链式编程、Stream流式计算

函数式接口、链式编程、Stream流式计算一、函数式接口函数式接口:只有一个方法的接口在jdk1.8之后,引入了函数式接口,它们主要在 java.util.function 包中,主要有4中函数式接口。1.Supplier接口 只有输出,没有输入Supplier接口是对象实例的提供者,定义一个get的方法,package java.util.function;@FunctionalInterfacepublic interface Supplier<T> { T

2021-07-18 23:07:12 333

原创 认识JUC

学习JUCJUC学习目录一、JUC概述1.什么是JUC2.进程3.线程4.线程的状态5.wait 和sleep6.并行和并发7.管程8,用户线程和守护线程的区别二、Lock接口1.lock 和 Synchronized 区别2.集合线程安全ArrayList集合线程不安全案例HashSet线程不安全演示hashMap线程不安全演示案例三、多线程锁(8种锁)3.1 锁的八种情况3.2 公平锁和非公平锁特点:3.3 可重入锁3.4 死锁1.概念:2.产生原因:3.验证是否是死锁:四、Callable接口Fut

2021-07-18 17:18:58 218

原创 哈希表的创建方式及用法

创建哈希表1.使用数组进行哈希表的创建String [] hashTable = new String[4];2.使用hashMap创建哈希表HasnMap<Integer,String> map = new HashMap<>();向哈希表中添加元素 Add elementhashTable[1] = "xiaohua";hashTable[2] = "xialli";hashTable[3] = "xiao";hashTable[4] = "an";m

2021-07-10 08:47:45 2062

原创 链表、队列、栈基本操作

链表、队列、栈常用操作链表LinkedList1.创建链表LinkedList<Integer> list = new LinkedList<>();2.添加元素//time complexity :O(1)list.add(1);list.add(2);list.add(3);//指定位置插入元素//time complexity :O(N)list.add(1,34);3.访问元素//time complexity :O(N)list.get(9

2021-07-03 11:11:58 151

原创 jvm内存优化

怎样进行jvm内存调优1.堆内存分区情况jdk1.6之前:永久区,常量池在方法区中jdk1.7:永久区,常量池在堆中jdk1.8:无永久区,常量池在元空间在jvm中,堆空间里的元空间逻辑存在,实际并不存在。public static void main(String[] args) { //设置最大内存 long memory = Runtime.getRuntime().maxMemory(); // 总内存 long to

2021-06-27 11:29:55 341

原创 数组常用方法

数组常用方法4种创建数组方式int []a = {1,2,3};int []b = new int[]{1,2,3};int []c = new int[3];//开辟一个数组为3大小的空间ArrayList<Integer> arr = new ArrayList<>();添加元素 //time Complexity = O(1) or O(N)arr.add(4); //存在多余的空间时O(1),开辟新的数据大小空间是O(N)访问某个元素 //time

2021-06-27 08:44:24 49

原创 认识JVM及面试题整理

JVMJVM目录1.JVM1.1 java程序执行流程?2、java运行时数据区2.1 程序计数器2.2 虚拟机栈2.3 本地方法栈2.4 java堆2.5 方法区3.什么是类加载器?3.1 类加载的过程3.4 类加载器的分类4、栈4.1 栈基本知识4.2 栈运行原理?5、堆(heap)5.1 什么是堆?5.2 堆内存分区6、堆和栈区别?6.1 物理地址6.2 内存分配6.3 存放内容6.4 程序的可见度7、垃圾回收机制(gc)7.1 什么是GC?7.2 什么时候用Gc?7.2 GC两类及应用场景?7.3

2021-06-19 10:53:21 298

原创 redis发布订阅、主从复制、缓存穿透、缓存雪崩、缓存击穿

1、redis发布订阅角色: 发送者 、 订阅者定义:发送者发送消息,订阅者接受消息命令subscribe channel # 订阅一个频道 channelpublish channel "hello,world" # 发布者发布消息到指定频道应用:聊天室微信公众号文章的发布实时提醒2、redis主从复制主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master/leader),后者称为从节点(slave/follower);数

2021-06-01 17:16:27 153 4

原创 认识redis

认识redis认识redis1、什么是redis?2、redis能干什么3、Linux环境下的安装redis 的基本操作命令redis的知识4、redis的五大基本类型Redis-keyString (字符串)List(列表)Set(集合)Hash(哈希)Zset(有序集合)5、redis三种特殊数据类型Hyperloglog(基数统计)什么是基数?优点方法Geospatial(地理位置)1.相关命令参数3.作用:(获得地理位置的信息)BitMaps(位图)什么是bitmaps用法应用6、事务redis是

2021-06-01 15:17:44 205

原创 服务器防火墙使用方法

阿里云服务器开启防火墙及端口信息查看防火墙的状态:firewall-cmd --state开启防火墙systemctl start firewalld.service重启防火墙systemctl restart firewalld.service关闭防火墙systemctl stop firewalld.service禁止开启自动重启防火墙systemctl disable firewalld.service开机自动重启防火墙systemctl enable firewal

2021-05-26 19:19:46 475

原创 设计模式--桥接模式

桥接模式桥接模式什么是桥接模式?桥接模式的目的桥接模式运用常景什么是桥接模式?桥接模式是将抽象部分与他实现部分分离,使得他们都可以独立的变化,这是一种对象结构型模式,又称(interface)接口模式。桥接模式的目的通过组合的方式建立两个类之间的联系,而不是继承桥接模式运用常景一个类存在两个或多个独立变化的维度,而这两个或者多个维度都需要独立的进行扩展当类型进行扩展时,它自带品牌;当品牌扩展时,它自带类型。案例:package com.model.bridge;/** * 品牌类

2021-05-15 22:05:20 69

空空如也

空空如也

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

TA关注的人

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