- 博客(57)
- 资源 (4)
- 收藏
- 关注

原创 深入springboot怎么启动tomcat
深入springboot怎么启动tomcat@EnableAutoConfiguration这是中高级工程师面试中常问的问题。知道现在有多卷了吧!我记得我刚找工作那会儿,我只要8000的工资,面试官都要问这个问题。我真TM的醉了!关于SpringBoot自动配置流程请看:深入Springboot启动流程+自动配置原理.如果你对基本的启动原理有大致的了解,那么适合阅读此篇文章。否则请先阅读深入Springboot启动流程+自动配置原理.。@EnableAutoConfiguration
2022-05-09 16:58:17
11536
20

原创 深入Springboot启动流程+自动配置原理
深入Springboot启动流程+自动配置原理🍅写在前面🍅相关常见面试题Springboot启动入口@SpringBootConfiguration解读@ComponentScan解读@EnableAutoConfiguration解读(重点)@AutoConfigurationPackage解读@Import({AutoConfigurationImportSelector.class})解读(重点)🍅写在前面🍅自从SpringBoot问世以来,开发界可以说是乱了套。我还记得我朋友几年前去参加
2022-05-07 10:35:34
12870
13

原创 深入浅出,白话文Docker入门,万字笔记
深入浅出 白话文Docker入门笔记什么是Docker,为什么要用Docker:现在互联网行业大批人员涌入,鱼龙混杂。其中也不乏很多自身硬件条件不好(学历,年龄等)但确非常努力的朋友。也许你实力非凡,但可能就因为一纸文凭,一句年纪太大将你拒之门外。怎么办呢?随着人员的大量涌入,程序员不仅仅只是程序员了,往往还要担任“前端”,“运维”等等多重身份。对我们而言,也许我们在其他方面比不上我们的竞争对手,但我们可以沉下
2022-02-15 16:57:22
7129
8

原创 深入浅出java8 stream流操作,带案例演示(Map集合)
深入浅出java8 stream流操作 基本介绍:关于stream的基本原理这里不介绍了。我之前找到这篇博客,写得很好。java8中stream原理概述无状态:指元素的处理不受之前元素的影响;有状态:指该操作只有拿到所有元素之后才能继续下去。非短路操作:指必须处理所有元素才能得到最终结果;短路操作:指遇到某些符合条件的元素就可以得到最终结果,如 A || B,只要A为true,则无需判断B的结果。 案例演示(串行流):初始化List: static List<Map
2021-11-12 11:06:02
21057
8

原创 java中的反射原理,为什么要使用反射以及反射使用场景(面试常问)
java中的反射原理,为什么要使用反射以及反射使用场景 什么是反射JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。要想解剖一个类,必须先要获取到该类的字节码文件对象。而解剖使用的就是Class类中的方法.所以先要获取到每一个字节码文件对应的Class类型的对象.看下面一段代码在这里插入代码片这里的filter指的是Spring框架
2021-07-17 22:41:14
20921
20
原创 白话@Autowired和@Resource区别和应用场景
白话@Autowired和@Resource区别和应用场景@Autowired@Resource什么时候用@Resource? @Autowired@Autowired是我们平时开发中用的比较多的自动装备bean的注解。@Autowired由Spring提供,根据类的Type(类型)进行IOC容器中的寻找并且装配,如:会去Ioc容器中找到Type为User的对象。如果有多个,只返回第一个。 @Resource@Resource默认根据类的Name(名称)进行IOC容器中的寻找并且
2022-05-10 17:40:35
1388
2
原创 白话@Import注解
白话@Import注解@Import三种使用方式:1.直接使用:2.ImportSelector:3.ImportBeanDefintionRegister:什么时候会用到@Import:🍅你的点赞是我分享的动力🍅面试的时候,面试官经常会问这样一个问题:SpringBoot中,向IOC容器添加对象有哪几种方式?大多数人能回答一下几种:@Configuration+@Bean@Controller @Service @Repository @Component等注解,通过扫描纳入Sprin
2022-04-15 14:30:43
561
原创 elasticsearch+springboot基础API操作笔记
elasticsearch+springboot基础API操作笔记Index相关操作Doc相关操作代码链接: gitHub. Index相关操作package com.example.es.test;import cn.hutool.log.Log;import cn.hutool.log.LogFactory;import org.apache.http.HttpHost;import org.elasticsearch.action.admin.indices.delete.Delet
2022-04-02 16:42:28
2627
原创 elasticsearch关于Restful方式的交互方式笔记
elasticsearch关于Restful方式的交互方式笔记1.index操作创建index(库)查看某个index的具体信息查看所有index删除某个index2.doc文档操作添加数据添加数据(自定义数据的ID)查询数据查询所有数据1.index操作 创建index(库)请求方式参数PUTindex名(小写)如: 查看某个index的具体信息请求方式参数GETindex名(小写)如: 查看所有index请求方式参
2022-04-01 17:05:35
2035
原创 白话@PostConstruct
白话@PostConstruct@PostConstruct是什么:案例:运用场景:面试的时候遇到过一个问题,Spring中,怎么让A对象在初始化的时候调用到B对象的方法?拿到这个问题的时候我一脸懵逼的,这是什么问题,还会有这样的使用场景嘛?当时最先想到的是在A对象的构造方法里手动new一个B对象,然后调用其方法。但当前是在Spring环境中,我们是通过@Autowired自动注入来取到目标对象的,所以不能用手动的new方法来做。这时候就会想:好,我不new ,我@Autowired一个B对
2022-04-01 13:52:52
958
原创 白话Java缓冲流(BufferedInputStream,BufferedOutputStream)
白话缓冲流(BufferedInputStream,BufferedOutputStream)1. 什么是流1.1 读写(复制)文件案例2. 什么是缓冲流2.1 缓冲流的作用。2.1.1 缓冲流的逻辑。2.1.2 输入缓冲流案例:2.1.3 输出缓冲流案例(复制文件):看了整个CSDN,关于缓冲流的文章基本都是模糊不清,晦涩难懂或者复制粘贴的。这里做一个简单的分享,以免面试的时候被问到那可就阴沟里翻船了。🍅你的点赞是我分享的动力🍅其实大多数Java开发人员在工作中很少会接触的IO流。可面试偏
2022-03-24 15:39:39
2687
原创 深入浅出,简述MySql中的各种锁
深入浅出,详解MySql中的各种锁为什么需要锁?对数据操作的类型划分读锁(共享锁)写锁(排他锁)其实对于一个开发人员来说,对数据库的掌握并不需要这么深入。但本人亲身经历,面试的时候来一句“请你说说什么是间隙锁”,一瞬间将我排除在候选人名单外。而我面试的仅仅是中级开发工程师,可见现在的内卷程度有多严重。因此本文章整理了一番Mysql中各种锁的作用和原理,欢迎学习交流。🍅你的关注和点赞对我很重要🍅 为什么需要锁?我们知道Mysql数据库提供了4种隔离级别来预防我们操作数据的时候可能带
2022-03-15 11:16:55
1521
4
转载 MyCat配置文件解析笔记
MyCat配置文件解析笔记1.schema.xml< schema>< table>< childTable >< dataNode>< dataHost>< heartbeat>< writeHost>/ < readHost>2.server.xml< system>< property >< user>< property >当我们在linux上解压完Mac
2022-03-03 17:09:03
400
1
原创 Data truncation: Truncated incorrect DOUBLE value:
我遇到这个错误是在Mysql的 in 关键字中。原因是因为in后面的条件有问题。in(xxx,xxx,xxxx) ,in条件带的是一个逗号隔开的数组,不能是字符串如:改为:
2022-03-02 15:52:51
1049
原创 【ArrayList】白话文源码分析
【ArrayList】白话文源码分析ArrayList类解析全局变/常量构造方法无参构造:有参构造(参数为int)有参构造(参数为Collection集合其他方法add()打好基础,再说其他的,不要整天好高骛远。希望我的分享能帮到一样迷茫但努力的同学。ArrayList类解析首先我想对一些基础不好同学说一句。ArrayList是一个类,不是你们认为的就直接操作内存了。既然ArrayList是一个类,那么类就有类的规则,有规则我们就能学习。我们来看看这个类的结构:public class Ar
2022-02-28 17:07:18
390
原创 白话文Maven中pom.xml笔记
Maven中pom.xml文件笔记pom文件全局一览:1.基本配置2.项目信息3.依赖配置(常用)3.1 dependencies3.2 parent现在由于Sping,SpringBoot,Maven等等框架的主流化,程序员的门槛越来越低。但你会发现,很多程序员其实只会增删改查,很多基础的东西一问三不知。就比如Maven的配置这篇文章跳过maven的安装,setting文件配置等。直接记录开发中接触最多的pom.xml文件的配置,标签的含义。pom文件全局一览:我们用idea创建一个新的sp
2022-02-25 17:15:59
381
原创 sql中 case when then else多个条件
sql中 case when then else多个条件1.案例1.1 场景1(查询)1.2 场景2(查询)1.3 场景3(转义)2.总结2.1 使用场景这在笔试题中是比较常见的一个考法。 很多同学完全不知道这种用法,导致笔试通不过,没机会面试,进不了公司赚不了钱,从而谈不到女朋友结不了婚。可以看到一个小小的sql语法会导致多么严重的后果。1.案例1.1 场景1(查询)初始化一张数据表:student三个字段:id,学生姓名,分数。需求:查出学生姓名(name)以及得分状况(用lev
2022-02-24 16:09:17
9584
原创 SQL中,in和exists详解+案例
SQL中,in和exists详解+案例1. 案例表结构2. 什么是in2.1 执行逻辑3. 什么是exists3.1 执行逻辑1. 案例表结构一张人员表:user一张地区表:area一张中间表:user_area以当前初始数据表示我们知道:张三和李四两个人的地区是”成都“,王五的地区是”湖南“。 2. 什么是inin 操作符允许我们在 where子句中规定多个值。我们在开发中最常用的就是in。现在如果我们有一个需求:用一条sql查出地区属于”成都“的人员的名字。SE
2022-02-23 15:33:08
1182
原创 深入浅出,Nginx的入门与使用案例
深入浅出,Nginx详解与使用1. 服务架构图例:1.1 服务架构的演变2. 什么是nginx:2.1 nginx的作用:2.1.1反向代理:2.1.2正向代理(了解):2.1.3 负载均衡:2.1.4 动静分离:1. 服务架构图例:1.1 服务架构的演变上图描述了最为简单得服务架构方式。 一个服务器,直接接收客户端的请求,然后返回数据。 我们平时使用SpringBoot在本地调试程序的时候就是这样的形式。如果客户端请求较少的话,这种形式是没有问题的。那如果现在客户端请求特别多,并发很高。那怎
2022-02-21 17:13:21
1661
2
原创 Failed to download metadata for repo ‘appstream‘
我在CentOS上运行yum -y install vim的时候报了这样的错。原因就是因为yum远程库的问题,网络不同,需要修改镜像拉取地址为我们国内的阿里云。下面三行命令 执行下就ok# cd /etc/yum.repos.d# sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*# sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.
2022-02-17 17:19:00
682
原创 Docker常用指令,包含解释
Docker常用指令基础指令:基础指令:查看Docker版本(是否安装成功):docker version 或 docker info列出本机的所有 image 文件:docker images 或 docker image ls拉取image文件:docker image pull 【imageName】 如:docker image pull hello-world删除 image 文件: docker image rm 【imageName】 如: docke
2022-02-07 14:41:29
1477
原创 什么是Base64,应用场景有哪些
什么是Base64,应用场景有哪些什么是Base64:Base64到底是加密,还是编码:Base64应用场景:java 开发中使用Base64:我们经常在工作中听到类似的东西。加密,解密,编码,解码之类的字眼。其实很多同学,特别是转行培训出来的在这个时候往往是装聋作哑的,为什么呢? 因为不知道啊,而且很多人也不知道。很多兄的的工作焦虑就是从这里来的。下来也不利用业余时间充电,那么就会被行业慢慢淘汰。所以咱们不能好高骛远,把基础学好。以后不说大富大贵,过上中产生活还是没什么大问题。什么是Base64
2022-01-25 10:28:08
2717
2
原创 防止表单重复提交,重复请求。程序幂等性预防
防止表单重复提交,重复请求。程序幂等性预防防止表单重复提交,重复请求。程序幂等性预防防止表单重复提交,重复请求。程序幂等性预防
2021-12-21 10:45:27
279
1
原创 Spring Aop 5种通知写法及参数JoinPoint详解
Spring Aop切面参数JoinPoint详解 Spring Aop切面参数JoinPoint详解Spring Aop切面参数JoinPoint详解Spring Aop5种代理通知的写法:1.前置通知2.后置通知3.返回后通知4.异常通知5.环绕通知JoinPoint是什么:Signature 是什么:ProceedingJoinPoint是什么:Spring Aop5种代理通知的写法:1.前置通知@Before("method()") public void doBeforeAdvi
2021-12-17 17:10:41
6362
原创 深入浅出:java开发中,字符集编码详解
我相信,这个问题很多人在工作中都不知道也不敢问。说真的我一开始也不知道,我不好意思问同事,因为我觉得这种问题一旦问出口,大家都投来鄙夷的眼神。但最后我才发现,我身边的程序员其实都他妈答不上这个问题。
2021-12-16 18:02:52
1362
原创 Java基本数据类型解析及转换。(面试必问)
Java基本数据类型解析及转换。(面试必问) 很多高级程序员在工作中都会遇到数据类型转换等问题。这种问题不能死记硬背,这里总结一下。工作中有需要可以打开博客看看。 基本数据类型分类:总览图:位数:看了上面的列表我们看到有一列叫做”位数“。那么什么他妈是位数呢?我们知道,计算机不认识我们的代码,代码最后都会被编译为计算机认识的二进制数据(0和1)。那么这里的位数,就是代表这个数据类型占了多少二进制位数。 例如Byte类型,我们通过包装类中的SIZE属性,可以得到其占用二进制的
2021-12-09 16:58:51
13048
1
原创 深入浅出,JWT单点登录实例+原理
深入浅出,JWT单点登录实例先直接上案例,方便工作中拷贝。后面说原理。代码git链接 案例演示:Controller: 登录授权接口,用户输入名字密码后请求此接口。登录成功后返回jwt 模拟认证中心,真实环境中此接口应该是一个单独的服务,这里方便演示,用一个接口代替。 @PostMapping("/login") public Object login(){ return null; } 主业务服务的主接口,返回主页
2021-11-17 16:12:40
22077
7
原创 什么是索引,如何优化索引(explain性能分析)
什么是索引,如何优化索引(explain性能分析) 索引:帮助Mysql高效获取数据的数据结构在数据库中,维护着这样的一种数据结构(索引),这种数据结构(索引)以某种方式指向数据。所以索引一般也很大,存在磁盘中。我们平时说的索引,如果没有特别指明,一般指B树。其中有聚集索引、次要索引、覆盖索引、复合索引、前缀索引、唯一索引、默认都是B+树索引。 索引分类:单值索引:一个索引只包含单个列,一个表可以有多个单列索引。唯一索引:索引列的值必须唯一但允许是空值。复合索引:一个索引包
2021-09-07 19:02:19
849
原创 Sql的执行顺序
Sql的执行顺序From > On > Where > Group By > Having > Select > Distinct > Order By
2021-09-03 13:27:27
140
原创 事务的传播机制(案例演示)
事务的传播机制(案例演示) 案例介绍:数据库表:user表,两条数据:Mapper逻辑:两条sqlupdate1:修改张三的pass字段为2。update2:修改李四的pass字段为2。 @Update("Update user set pass = 2 where id = 1") void update1(); @Update("Update user set pass = 2 where id = 2") void update2();Se
2021-08-08 19:05:21
18321
5
原创 java线程池简述,线程池的7个参数(面试必考)
java线程池简述(面试必考) 线程池的优势:线程池的工作就是控制运行线程的数量,处理过程中将任务放入队列,然后在线程创建后启动这些任务,如果线程数量超过了最大数量,超出数量的线程排队等候,等其他线程执行完毕,再从队列中取出任务来执行。翻译:就是一开始就创建一定数量的线程。来一个用一个,用完了不销毁,返还到池子里等着被下一次调用。 如果需要的线程大于了我线程池准备好的线程,那么久等待,空出来一个,用一个。线程池主要特点:线路复用 :降低资源消耗。复用以创建的线程,降低新线程创建销毁造成的消
2021-08-07 16:01:48
3472
原创 JVM中堆空间简述,JVM调优以及GC垃圾回收算法
JVM堆空间简述以及GC垃圾回收算法和方式 JVM简述(面试之前看一遍).堆(非常重要)堆内存逻辑上分为三个区:1. 新生代伊甸园区幸存者0区幸存者1区2.老年代(养老区)3.元空间(永久区)元空间也就是方法区,储存类信息+普通常量+静态常量+编译器编译后的代码GC垃圾回收流程。现在有一个程序在不间断地创建对象,对象都存在在伊甸园区。某个时间段,伊甸园区满了!第一次GC开始了,有n个对象被GC掉了。剩下了1个就留到了幸存者0区,伊甸园区被清空。由于新的对象不断被创
2021-08-05 17:53:26
3764
原创 JVM简述(面试之前看一遍)
JVM简述(面试之前看一遍) 上图,我们从上往下一一解析:类装载器(ClassLoader)类装载器负责加载由.java 文件生成的.class文件。class文件在文件的开头有特定的文件标识,将class文件字节码加载进内存中,并将这些内容转换成方法区中的运行时数据结构。ClassLoader只会负责class文件的加载,至于它是否可以运行,则由其他模块决定ClassLoader类装载器有4个启动类加载器 Bootstrap, 加载JDK自带的class文件 如Object类扩展类
2021-08-03 18:56:21
251
原创 java中ArrayList为什么线程不安全,解决办法(面试题必问)
java中ArrayList为什么线程不安全,解决办法(面试题必问) 故障现象先写一个demo,看看什么情况下,ArrayList出现线程安全问题: public static void main(String[] args) { List<String> list = new ArrayList<>(); for(int i = 0; i<3 ; i++){ new Thread(()->{
2021-08-02 18:10:56
580
Netty框架+WebSocket+SpringBoot+JSP在线聊天室
2022-04-01
xxlJob原始项目,项目结构清晰易懂,开箱即用
2022-03-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人