- 博客(276)
- 资源 (23)
- 收藏
- 关注
原创 两年Java面试记录和心得
本人是2019年大学毕业,因为校招时收到了体面厂的offer,实习+工作都是在体面厂的,加起来也有两年的开发经验了(2021年),基于自身发展考虑,觉得需要换一份工作了,下面整理了一下我面试时,面试官问到的问题,给其他要找工作的人一些参考,并且,后续我会将自己整理的知识点进行整理,发到博客上。
2021-04-12 21:26:54 4662 1
原创 SpringBoot 深入理解配置文件加载顺序和自定义修改默认的加载顺序
1.背景 之前对于公司统一架构的组件在安装后,有些配置项不会使用classpath下面的application.properties中的值,而是去相应组件的config/config.properties去加载,这样的好处是,本地搭建的测试环境和线程环境对于配置文件是不冲突的,极大方便的开发效率,基于这样的场景,产生了一些关于配置文件加载顺序的一系列问题,在此进行记录和学习。2.配置文件的加载顺序 其实关于SpringBoot配置文件加载顺序的文章有很多,这里就不详细...
2021-04-09 12:43:17 5910
原创 Git IDEA中操作记录
整体可操作的地方使用git管理项目设置远程仓库地址查看某一个文件的修改人和修改时间增加分支,分支切换克隆远程仓库代码到本地中项目克隆到本地后,就需要导入项目,此步骤为上面的后续步骤,自动完成的idea中解决冲突问题方案一:先在代码中手动将冲突的地方去掉方案二:先在代码中手动将冲突的地...
2021-04-09 09:36:22 4596
原创 毕业设计 微信小程序 外卖点餐平台
系统功能概述 经过研究调查和搜集资料,同时考虑到用户体验以及所掌握的知识面,决定将用户和管理员角色所登陆的页面进行分离,这样对于用户来说,只需要关注点餐就行,对于管理员来说,只需要关注营收、订单信息等店铺运营相关即可,系统结构如下图。 从上图可以看出,外卖点餐的系统结构包括两大部分,包括:前台展示、后台管理,分别对应着不用的使用人群。其前台展示对应着用户,主要关注订餐这一核心流程,在前台展示模块中又可以细分为用户登陆授权、商品信息、收获地址、购物...
2021-01-31 18:05:46 11489 14
原创 MVCC下的RR和RC级别的区别和实现
最近在学习MVCC,在学习过程中,很疑惑RC(读已提交)和RR(可重复度)级别都用到了MVCC来进行不加锁的读,但是为什么RR级别可以解决幻读,对于RC级别不行? MVCC即多版本并发控制,能够保证多个读请求之间不会进行阻塞,根据事物隔离级别和事物id来确定当前事物能够查询到的数据的版本。对于每行记录来说,可能会存在多个版本,而这些版本会使用使用链表进行关联起来,从而控制一个事务能够查询到的数据的版本。 首先需要明白事务的隔离级别和MVCC有密切的关系,你能深入事务的隔离级...
2021-01-27 23:06:57 15173 7
原创 LeetCode整理----合集一
一:两个数相加 一:需要考虑进位的问题,需要使用一个变量存储进位标识,每一次都去判断,而且在一个链表判断完成之后,另外一个链表,也是需要单独考虑进位问题的 二:在计算结束后,需要再次判断进位问题,如果有进位,则需要进行处理。class Solution { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { //进位标识 int flag = 0; ...
2021-01-04 20:31:04 505
原创 IDEA中使用正则表达式查找、替换、大小写转换
当您要搜索和替换特定的文本模式时,请使用正则表达式。它们可以帮助您进行模式匹配分析、解析、过滤结果等等。一旦你学会了正则表达式语法,你就可以在几乎任何语言中使用它了。首先你需要了解正则表达式的语法,关于正则表达式可以查看:正则表达式语法和常用表达式列表。下面就看一下,如果在IDEA中使用正则表达式,如下图:这里主要将一下,使用正则表达式进行文本的修改和替换,替换时我们需要使用到捕获组,使用()表示,然后在IDEA中可以获取$n拿到捕获组中的值。如: (\w+)-(\w+) 可以使用..
2020-12-11 15:09:12 12570 6
原创 正则表达式语法和常用表达式列表
为什么需要正则表达式? 文本的复杂处理。正则表达式的优势和用途? 一种强大而灵活的文本处理工具; 大部分编程语言、数据库、文本编辑器、开发环境都支持正则表达式。正则表达式定义· 正如他的名字一样是描述了一个规则,通过这个规则可以匹配一类字符串。 学习正则表达式很大程度上就是学习正则表达式的语法规则。开发中如何使用?开发中使用正则表达式的流程: 分折所要匹配的数据,写出测试用的典型数据 在工具软件中进行匹配测试 在程序中调用通过测...
2020-12-11 10:13:41 2225
原创 多线程顺序执行多次,分别使用synchronized、ReentrantLock、CyclicBarrier、Semaphore实现
分为两种: 1. 只执行一次 2. 执行多次多次执行的方法:多线程编程时,需要特别注意以下几点:线程会存在并行执行的情况,如果不干预肯定是不行的,所以,需要借助一些手段,才能达到线程顺序执行的目的。最主要的是借助共享资源(共享变量)来实现。像ReentrantLock、CyclicBarrier、CountDown都是通过对共享变量进行操作的。在操作时,每个线程都需要清楚,是应该继续执行,还是说睡眠(等待),等待被唤醒,清楚等待的条件和唤醒后继节点的条件,这几点...
2020-11-16 19:18:07 706
原创 使用guava Predicates工具类优雅处理Stream流的filter方法
现在对于集合操作时,我都是使用Stream来进行操作的,感觉贼好用,对于map操作时,一般使用方法引用就能解决,如gradeList.stream() .map(RegionGradeViewForm::getRegionId) .map(String::valueOf) .collect(toList()); Stream流配合方法引用写的代码看着就舒服,所以用久了就不想看见箭头符号,但是在操作filter的时候,因为需要进行复杂的判断,...
2020-11-05 19:24:14 871
原创 MySQL体系学习(索引、MVCC、锁)
推荐几篇博客,关于MySql的加锁和MVCC的理解 Mysql加锁过程和MVCC的理解: https://blog.csdn.net/u013215018/article/details/71404891 MVCC(Multi-Version Concurrent Control,多版本并发控制)简介 ...
2020-10-15 20:24:21 694
原创 JDK8 Stream操作 collectingAndThen ------根据对象的属性进行去重操作
ExportTemperatureDto实体对象:public class ExportTemperatureDto { private String name; private Double morningTemperature; private Double afternoonTemperature; private String classId; private String gradeId; private Integer personId;..
2020-09-30 12:07:12 45901 10
原创 使用Spring AOP、ThreadLocal、自定义注解完成操作日志的记录
之前搞过操作日志的东西,这里简单的使用Spring AOP、ThreadLocal、自定义注解来实现对于操作日志的记录,在学习技术的同时,熟悉对于日志的记录。 一般情况下系统打印的日志分成了三种:1:系统日志(便于研发人员调试排查问题的)。2:追踪日志(多个组件相互调用时单纯只依赖系统日志效率低下,该日志便于追踪复杂业务的调用链)。3:操作日志(也叫业务日志,记录一笔业务)。 这里仅介绍操作日志,操作日志(即业务日志)是在软件运行时记录一笔业...
2020-09-28 22:14:12 2600 1
原创 SQL函数---coalesce 返回传入的多个字段(属性)中第一个非空的值
用途: 将空值替换成其他值,返回第一个非空值表达式: COALESCE是一个函数, (expression_1, expression_2, ...,expression_n)依次参考各参数表达式,遇到非null值即停止并返回该值。如果所有的表达式都是空值,最终将返回一个空值。使用COALESCE在于大部分包含空值的表达式最终将返回空值。使用场景:现需要统计学生上午和下午的测温数据,最终展示效果如下:学生名 上午温度 下午温度上午温度为每天的00...
2020-09-22 11:33:34 1329
原创 使用@ControllerAdvice完成全局异常统一处理
在spring 3.2中,新增了@ControllerAdvice,@RestControllerAdvice 注解,可以用于定义@ExceptionHandler、@InitBinder、@ModelAttribute,并应用到所有@RequestMapping中。参考帮助文档。@RestControllerAdvice是组件注解,他使得其实现类能够被classpath扫描自动发现,如果应用是通过MVC命令空间或MVC Java编程方式配置,那么该特性默认是自动开启的。 @R...
2020-09-15 19:21:36 1460
原创 Spring中@Configuration源码深度解析(二)
在Spring中@Configuration源码深度解析(一)中已经说到了执行代码块4的PostProcessorRegistrationDelegate#invokeBeanFactoryPostProcessors方法的第一个重要方法:invokeBeanDefinitionRegistryPostProcessors(currentRegistryProcessors, reg...
2020-09-14 19:41:56 754
原创 Spring中@Configuration源码深度解析(一)
我们知道@Configuration 和 @Component都可以向String容器中注入bean对象,但是他们之前还是有不同点的。 @Configuration为配置类,@Component为普通组件类,虽然在标注了@Component的bean中也可以使用@bean方法来注册bean,但是和@Configuration还是有很大不同的,其中@Configuration...
2020-09-12 13:54:25 1117
原创 JDK动态代理为什么需要接口?
回答这个问题之前需要首先由JDK动态代理的基础,可以查看大佬写的这篇文章:Java JDK 动态代理(AOP)使用及实现原理分析,然后再来深入思考这个问题。 还有一点,需要特别注意的是,当我们在介绍静态代理的时候,都知道需要被代理的类和代理的类都需要实现同一个接口,这样才能完成静态代理,关于静态代理的内容上面的那篇博客也介绍了,这里只是提一下这个点。 关于JDK动态代理准确的说是对接口进行的代理,创建一个该接口的子类,这个重点突出的是这个接口,而不是某个类需要...
2020-08-30 21:54:07 1382
原创 Spring AOP源码解析二: 根据普通bean创建其动态代理
根据Spring AOP源码解析一里面所讲的内容,在Spring容器启动时,会先创建所有的bean的后置处理器,然后再创建普通bean的时候,在合适的地方调用bean的后置处理器执行相应的逻辑,而对于普通bean在Spring执行的生命周期的initializeBean方法中进行完成AOP动态代理的功能工作。 关于Spring bean创建的流程这里就不再细说了,感兴趣的先参考:Spring中bean的生命周期(最详细),这里仅对Spring AOP进行分析,那么我们的切入点...
2020-08-27 23:19:52 892 1
原创 Spring AOP源码解析一:AOP代理重要bean---AnnotationAwareAspectJAutoProxyCreator的创建
最近在学习Spring AOP,就顺便看了一下Spring AOP的源码,这里记录一下,防止七秒钟的记忆。之前写过一篇关于Spring AOP的基本使用:Spring AOP 基本概念和使用,建议大家先去观看一下,再回来阅读这篇文章。 AOP是一种思想和理念,可以使用这种思想来简化代码开发的耦合性和难度,有句话说的好,天上飞的理念,必有落地的实现,那么实现了AOP这个思想的具体实现由SpringAOP和AspectJ技术,他们都是根据AOP的思想实现的。 Sp...
2020-08-24 22:41:07 431
原创 数组中的逆序对 [Leetcode 剑指offer 归并排序]
在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。示例 1:输入: [7,5,6,4]输出: 5限制:0 <= 数组长度 <= 50000题解: 最简单的方法是两次for循环,依次判断即可,不过这样的时间复杂度为O(N^2),使用这种做法也是比较low的。 ...
2020-08-14 13:14:08 245
原创 解决出现 File: ‘java.lang.CharSequence‘: Invalid byte tag in constant pool: 15 的问题
今天在配置环境时,出现了File: 'java.lang.CharSequence': Invalid byte tag in constant pool: 15的错误,这个错误也碰到过几次,最后不知道怎么就好了,这次遇到同样的问题,记录下来,以防下次出错了再百度。 出现这类问题的原因是JDK配置有误,所以可以通过修改JDK的版本解决这个问题,在eclipse中有下面几处需要修改的地方。 ...
2020-07-23 17:49:40 1867
原创 罗马数字转整数 【LeetCode 字符串】
罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做II,即为两个并列的 1。12 写做XII,即为X+II。 27 写做XXVII, 即为XX+V+II。...
2020-07-14 10:39:49 233
原创 岛屿数量 【LeetCode 深度优先搜索】
给你一个由'1'(陆地)和'0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例 1:输入:[['1','1','1','1','0'],['1','1','0','1','0'],['1','1','0','0','0'],['0','0','0','0','0']]输出:1示例2:输入:[['1','1','0','0','0'...
2020-07-13 16:36:54 180
原创 并查集及题型
l并查集:(union-find sets)一种简单的用途广泛的集合. 并查集是若干个不相交集合,能够实现较快的合并和判断元素所在集合的操作,应用很多,如其求无向图的连通分量个数等。最完美的应用当属:实现Kruskar算法求最小生成树。l并查集的精髓(即它的三种操作,结合实现代码模板进行理解):1、Make_Set(x) 把每一个元素初始化为一个集合...
2020-07-12 22:08:01 535
原创 并查集 【牛客网 朋友圈】
并查集:(union-find sets)一种简单的用途广泛的集合. 并查集是若干个不相交集合,能够实现较快的合并和判断元素所在集合的操作,应用很多,如其求无向图的连通分量个数等。最完美的应用当属:实现Kruskar算法求最小生成树。l并查集的精髓(即它的三种操作,结合实现代码模板进行理解):1、Make_Set(x) 把每一个元素初始化为一个集合初始化后...
2020-07-10 15:16:08 475
原创 CopyOnWriteArrayList使用场景和源码分析
(1)ArrayList和CopyOnWriteArrayList的增删改查实现原理?(2)为什么说ArrayList查询快而增删慢?(3)弱一致性的迭代器原理是怎么样的?(4)CopyOnWriteArrayList为什么并发安全且性能比Vector好?(5)JDK中为什么没有CopyOnWriteLinkedList? 对于CopyOnWriteArrayList面试的话,容易和ArrayList放在一起,让你比较他们之间的异同点,这一点需要有所准备。本文将重点讲解C...
2020-06-20 14:20:59 1771
原创 对于Java线程中断的理解,哪种情况下会响应中断?哪种情况下不响应中断?
最近在学习JUC框架的时候,发现了很多工具类都是支持可中断的,如AQS、FutureTask都是可以在线程执行中,支持对于中断的响应,所以需要对线程中断有个了解,才能更好的学习JUC的源码。线程中断的作用: 线程中断可以使一个线程从等待状态变成就绪状态,如果中断的线程正处于运行状态,那么这个中断是不会用任何作用的(表面上不会影响正在运行的线程),线程恢复到就绪状态后,可以继续执行逻辑代码,想要让一个线程从等待状态中恢复过来有三种发送:一.等待超时,二.得到一个通知...
2020-06-15 20:20:29 5842
原创 FutureTask的使用和源码分析
最近在学习线程池相关的内容,关于并发编程的内容我打算把自己学到的都记录下来,本来个人是赖的记录的,可惜的是学过一遍,当时感觉自己很牛逼,都记住了,但是过了两三个月就啥到不知道了,所以这次再次学习并发编程会记录一些学习的心得,省的下次忘记了。 关于FutureTask可以让一个线程能够拿到其他线程未来某一时刻执行的结果,然后根据结果进一步处理,下面先看一下FutureTask的继承关系。 ...
2020-06-15 09:53:03 360
原创 SpringBoot与Mybatis整合源码深度解析
问题: SpringBoot中没有Mybatis的配置文件是如何完成对Mybatis的整合? 在Mapper接口上不加@component或者是@repository也能将Mapper注入到Spring中,是如何实现的? 所写的Mapper接口是如何关联到xml里面所写的sql语句的? 如果对于上述三个问题的答案不是很清楚的话,可以往下面,本文将从源码的角度分析SpringBoot与Mybatis整合的源码,对于Spring和Mybatis的整...
2020-05-28 17:10:18 1840 1
原创 工具类------让普通类能够获取ApplicationContext和Spring容器中的bean和配置项
在编写Web代码时,可能需要让工具类或者是没有加入到Spring bean工厂的类,能够访问到Spring中的ApplicationContext和、bean和配置项,这时,因为该类没有加入到Spring容器中,所以不能在这个类中使用@Autowired来注入Spring中的bean,这时就需要一个工具类,来完成这件事。 import org.springframework.beans.BeansException;import org.springframework.c...
2020-05-22 12:18:33 438
原创 毕业设计 SpringBoot技术的宣讲会管理系统
大学室友所选的课程题目,获得校级优秀毕业设计(如果你是大佬请绕行),下面简单介绍一下:摘要 随着我国人口数量的增加,国家对教育的大力扶持,科技的高速发展,导致了大学生的数量逐年增加,大学生的就业问题也就一年比一年严峻。本课题基于校招宣讲会流程的基本特点,开发出扩大学生获取招聘信息来源的宣讲会平台。该平台主要由两部分组成:学生模块,公司模块。公司发布自己招聘信息,接受学生们的...
2020-04-14 14:59:08 951
原创 IntelliJ IDEA常用快捷键
1.ctrl快捷键快捷键 英语 介绍 Ctrl + F Find 在当前文件进行文本查找 (必备) Ctrl + R Replace 在当前文件进行文本替换 (必备) Ctrl + Z Undo 撤销 (必备) Ctrl + Y Delete Line at Caret 删除光标所在行 或 删除选中的行 (必备) ...
2020-04-12 20:10:03 331
原创 Thread类的常见方法,join和yield的区别
在 Java 中,创建线程去执行子任务一般有四种方式: 1.继承Thread类,并重写run方法 2.创建一个类去实现Runnable接口,然后将这个类以参数的形式传递给Thread类。 3.实现Callable接口 4.使用线程池的方法创建线程 这四种方法或多或少都要和Thread打交道,所以先研究好T...
2020-04-11 10:39:25 4826
原创 Wireshark基础使用和表达式语法
Wireshark的世界里有2种过滤器,分别是捕获过滤器和显示过滤器,采用恰当的过滤器,不但能提高数据分析的灵活性,而且能让分析者更快看到自己想要的分析对象。 1.在使用Wireshark时,需要先选择一个接口,2.在使用Wireshark进行抓包之前,可以使用捕获过滤器来捕获我们...
2020-04-07 18:25:00 5883
原创 将本地jar包上传到maven私服
使用命令行的方式上传,命令为:mvn deploy:deploy-file -Dmaven.test.skip=true -Dfile=D:\xxx-1.0.2-SNAPSHOT.jar -DgroupId=com.xxx.oversea -DartifactId=cms-adapter -Dversion=1.0.2-SNAPSHOT -Dpackaging=jar -Dr...
2020-03-26 11:59:59 1072
原创 Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:Failed to transfer 错误码code 409
原因: 今天往公司maven私服上传jar时,发现报错,而且错误码不是400、401这种的错误码,而是409,百度中好像没用关于这个错误的,今天就记录一下。 最后,发现409的错误码是因为上传的maven私服有问题,我本地需要上传到maven私服的jar包是SNAPSHOT快照版本的,而私服是release版本的,所以就报错了,快照版本的jar包不能上传到re...
2020-03-26 11:35:14 5324 1
原创 Spring中@Import注解源码分析
Spring中@Import注解是用来向IOC容器出入bean的,关于其使用可以参考:Spring为IOC容器注入Bean的方式,@Import导入的类型分为三种:普通类、实现ImportBeanDefinitionRegistrar接口的类、实现ImportSelector接口的类,而对于ImportSelector、ImportBeanDefinitionRegistrar的实现...
2020-03-24 16:49:14 2943
原创 Spring源码分析@Autowired、@Resource注解的区别
关于Spring中@Autowired、@Resource和@Inject注解的区别请看:@Autowired、@Resource和@Inject注解的区别(最详细),本片文章将会带领你进行源码分析@Autowired、@Resource注解的不同。 在上面所说的那篇博客中,我们知道: Spring对于@Autowired、@Resource注解...
2020-03-17 23:36:20 10099 3
原创 Spring AOP 基本概念和使用
关于AOP AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性...
2020-03-07 16:23:10 655
MobaXterm.11.0_CN.zip
2020-04-21
MobaXterm.11.0.zip
2020-03-27
阿里编程规范华山版1.5.rar
2019-12-07
黑马商城加后端管理。。
2019-03-15
tomcat8解压版(免安装)
2019-03-02
HADOOP权威指南 第3版 中文版 完整版的
2018-02-08
即时通信课程设计
2018-02-08
快学Scala.中文完整版
2018-02-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人