自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(96)
  • 资源 (6)
  • 收藏
  • 关注

原创 2021届双非本科的心酸秋招经历总结及经验分享

前言本人2021年应届毕业生,秋招时间线为8-11月,拿了几个offer,写下这篇文章对自己的秋招做一个总结,如果能给别人带来启发那更好了。文章分为几个部分:背景偏:主要讲述自己的一些基本情况简历篇:主要讲述下根据自己秋招的心得,简历要如何准备知识篇:主要讲述下应该储备的知识面经篇:主要分享自己的一些面经个人背景双非二本计算机专业,求职的方向也是互联网行业,岗位是Java研发,一段小公司实习经历,两个比较一般般的项目(SpringBoot+redis+kafka),获奖经历的话三个水水的省

2021-01-20 10:26:02 7177 15

原创 详解redis的持久化机制

本文目录一、RDB持久化二、AOF持久化1、redis4.0对持久化的优化2、关于AOF重写3、AOF重写过程很多时候我们需要将Redis进行持久化也就是说将存储在内存中的数据写入到硬盘中,大部分原因是为了之后重用数据(比如说机器重启),或者是为了防止系统故障而进行的备份。Redis提供两种持久化的机制,一种是快照持久化(RDB) ,另一种是只追加文件持久化(AOF) 。下面我们分别来介绍下面两种持久化机制。一、RDB持久化我们可以通过创建快照来获取存储在内存中的数据在某个时间点上的副本,Redis

2020-10-06 20:34:40 429

原创 详解缓存雪崩,缓存穿透,缓存击穿及其解决方案

目录如下:一、正常情况二、缓存雪崩1、解决方法三、缓存击穿1、解决方法四、缓存穿透1、解决方法一、正常情况正常情况下的流程是这样的,先查缓存,缓存无就查数据库。二、缓存雪崩缓存雪崩是指缓存中的数据大批量的过期 ,而查询量巨大,造成数据库压力过大而崩溃。1、解决方法尽量保证redis集群的高可用性,当发现机器坠机时尽快补上。选择合适的缓存淘汰策略。缓存的过期设置随机时间,防止大量数据同时过期。利用redis持久化机制保存的数据尽快恢复缓存。三、缓存击穿缓存击穿是指缓存中没有数据,而

2020-10-06 20:30:38 815

原创 详解布隆过滤器,并教你自己实现一个布隆过滤器

最近在学习Redis缓存穿透等知识的时候看到了布隆过滤器可以用于解决缓存穿透问题,因此对布隆过滤器进行了学习,并记录下此篇笔记。文章目录如下:一、简介二、布隆过滤器的原理1、添加元素2、判断元素是否在过滤器中三、自己实现一个布隆过滤器一、简介根据百度百科可知,布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都比一般的算法要好的多,缺点是有一定的误识别率和删除困

2020-10-06 17:06:54 2898

原创 设计模式 | 详解代理模式

代理模式1、代理模式的基本介绍2、静态代理静态代理模式的基本介绍静态代理案例静态代理的优缺点3、JDK代理JDK模式的基本介绍JDK生成代理对象的APIJDK代理案例4、Cglib代理Cglib代理的基本介绍Cglib代理实现步骤cglib代理案例1、代理模式的基本介绍1、代理模式:为一个对象提供一个替身 ,以控制对这个对象的访问。即通过代理对象访问目标对象。这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。2、被代理的对象可以有三种:远程对象、创建开销大的对象 或

2020-09-05 20:59:29 374

原创 从源码角度解析ArrayList扩容的原理

从源码角度解析ArrayList扩容的原理1、ArrayList的构造方法2、ArrayList的add方法3、总结1、ArrayList的构造方法看源码先看构造方法,我们首先看看ArrayList 的构造方法,它有三个构造方法:public ArrayList(int initialCapacity); //传入一个数组的大小public ArrayList(); //空参构造public ArrayList(Collection<? extends E> c); //传入一个Col

2020-08-06 11:17:56 272

原创 Java多线程 | 详解ThreadLocal实现原理

一、ThreadLocal的简介:一般情况下,我们创建的变量都是可以给任何线程访问并修改的,如果我们想让线程拥有自己的私有本地变量,那我们就可以使用ThreadLocal类是实现这样的想法。ThreadLocal类主要解决的是让每个线程绑定自己的值,可以将ThreadLocal类形象的比喻成存放数据的盒子,盒子中可以存储每个线程的私有数据。我们来看看一个示例代码了解它的使用:import ...

2020-08-05 19:29:09 332

原创 Gradle的下载与安装教程

一、下载Gradle下载地址:https://services.gradle.org/distributions/选择合适的版本下载即可,然后解压(自己想解压到哪就到哪,但是注意后面配置环境变量的时候需要用到)二、配置环境变量三、测试打开cmd,输入gradle -v,测试下安装成功了没...

2020-07-16 10:13:10 13298 1

原创 设计模式 | 用实际案例详解装饰者模式

一、星巴克订单案例有下面的需求:咖啡种类/单品咖啡:Espresso(意大利浓咖啡)、ShortBlack、LongBlack(美式咖啡)、Decaf(无因咖啡)调料:Milk、Soy(豆浆)、Chocolate要求在扩展新的咖啡种类时,具有良好的扩展性、改动方便、维护方便使用OO来计算不同种类咖啡的费用:客户可以点单品咖啡,也可以单品咖啡+调料组合二、咖啡案例的第一个方案设计一...

2020-06-07 20:09:09 595

原创 设计模式 | 用实际案例详解工厂模式

我们来看一个具体需求看一个披萨的项目,要便于披萨种类的扩展,要便于维护,有以下要求:披萨的种类很多(比如GreekPizz、CheesePizz等)披萨的制作有prepare,bake,cut,box完成披萨店订购功能首先我们先编写一个Pizza抽象类:package com.cxc.factory.simplefactory.pizzastore.pizza;/** * 抽...

2020-06-06 22:22:45 1359

原创 设计模式 | 详解单例模式(饿汉式、懒汉式、静态内部类、枚举、JDK源码剖析)...

一、单例模式介绍所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对于某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。比如Hibernate的SessionFactory,它充当数据存储源的代理,并负责创建Session对象。SessionFactory并不是轻量级的,一般情况下,一个项目通常只需要一个SessionFactory就够,这时就会使用...

2020-06-06 19:15:39 359

原创 UML | 详解UML类图

UML基本介绍UML(统一建模语言)是一种用于软件系统分析和设计的语言工具,它用于帮助软件开发人员进行思考和记录思路的结果。UML本身是一套符号的规定,就像数学符号和化学符号一样,这些符号用于描述软件模型中的各个元素和他们之间的关系,比如类、接口、实现、泛化、依赖、组合、聚合等。UML类图用于描述系统中的类(对象)本身的组成和类(对象)之间的各种静态关系类之间的关系:依赖、泛化(继承)...

2020-06-06 16:42:25 497

原创 设计模式 | 详解设计模式的七大原则

一、设计模式的目的编写软件的过程中,程序员面临着来自耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性等多方面的挑战,设计模式是为了让程序具有更好的:代码重用性(即相同功能的代码,不用多次编写)可读性(即编程规范性,便于其他程序员的阅读和理解)可扩展性(即当需要增加新功能时,非常方便,称为可维护)可靠性(即当我们增加新的功能后,对原来的功能没有影响)使程序呈现高内聚,低耦合的特性...

2020-06-06 11:06:25 542

原创 Redis | Redis五大常用数据类型及命令

一、五大常用数据类型String、Hash、List、Set、ZsetHash是一个键值对集合,适合用于存储对象,类似于Java里面的MapList是简单的字符串列表,可以添加一个元素到列表的头部或者尾部,底层实际是个链表Zset与set相比的区别是每个元素都会关联一个double类型的分数,通过分数来为集合中的成员进行从小到大的排序,Zset的成员是唯一的,但分数却可...

2020-04-22 22:59:03 196

原创 从0到1详解阿里云服务器部署springboot应用(安装java环境 | Mysql环境)

购买阿里云服务器的步骤就省略了,购买后进去重置密码然后连接示例即可进入服务器终端。1、配置Java环境(安装jdk)由于官方下载太慢了,因此我选择了镜像网站:https://repo.huaweicloud.com/java/jdk将下载的压缩包拷贝进虚拟机中,并在虚拟机中使用scp -r jdk-8u202-linux-x64.tar.gz root@ip地址...

2020-04-03 14:08:42 715 1

原创 SpringBoot | 关于SpringBoot2.x以上版本废弃EmbeddedServletContalnerCustomizer

springboot1.x版本中修改嵌入式Servlet容器配置的方法在Springboot1.x的版本中有EmbeddedServletContalnerCustomizer类,该类可以来修改嵌入式Servlet容器的配置。当我学习到此处时,由于教程使用的SpringBoot版本是1.x,所以自己在实践时没有找到EmbeddedServletContalnerCustomizer类,通过网上...

2020-03-23 20:28:51 353

原创 通过git上传项目到github上&&更新项目到github上

目录一、安装git二、在github上新建仓库三、通过git上传项目到github上四、通过git更新项目到github上一、安装git可以点此去官网下载安装git,但是官网的下载很慢,因此在此推荐在此下载:点此下载。下载之后就安装,此处很简单就不叙述。二、在github上新建仓库在github中点击new,然后在下面填入信息:...

2019-12-23 09:11:36 288

原创 SpringBoot | SpringBoot入门介绍及其分析HelloWorld项目

目录一、SpringBoot介绍1、SpringBoot简介2、微服务二、使用maven创建SpringBoot项目1、创建一个maven工程2、导入Springboot依赖3、编写一个主程序:启动SpringBoot4、编写Controller5、启动方式6、简化部署三、对上述项目的探究1、POM文件2、主程序类(主入口类)四、使用Spri...

2019-12-21 19:43:02 191

原创 SpringBoot | 使用Spring Initializr来快速创建一个SpringBoot项目

目录一、新建项目二、编码三、测试一、新建项目新建项目,选择Spring Initializr选择模块,我们选择一个Web模块:自动给我们创建了整个目录架构:二、编码新建c...

2019-12-21 19:36:17 293

原创 SpringBoot | 详解SpringBoot配置文件及其原理

目录一、配置文件二、YAML语法1、基本语法2、值的写法(1)、字面量:普通的值(数字,字符串,布尔)(2)、对象、Map(属性和值)(3)、数组(List、Set)三、配置文件值注入1、一个简单的示例2、@Value获取值和@ConfigurationProperties获取值比较3、数据校验4、使用@PropertySource加载指定的配...

2019-12-21 19:29:56 4635

原创 JavaWeb | 基于maven整合SSM框架(Spring+SpringMVC+MyBatis)

目录一、目录总览二、创建maven项目三、完善项目目录1、新建目录2、添加web目录3、配置tomcat四、maven添加依赖1、添加数据库驱动依赖2、添加SpringMVC依赖3、添加spring的一系列依赖4、添加MyBatis及其与Spring整合的依赖5、添加其它依赖五、配置1、新建数据源资源文件dbconfig.propert...

2019-12-18 16:01:50 508

原创 解决IDEA使用maven导入依赖时卡在Resolving Maven dependencies

选择File-Settings,然后设置VM options for importer的值为-Xms1024m -Xmx2048m。参考自文章:Idea卡在Resolving Maven dependencies的解决方案

2019-12-14 20:49:40 2829 2

原创 MyBatis | MyBatis中使用插件、使用PageHelper插件、自定义类型处理器

目录一、插件原理二、插件编写(单个插件)1、编写Interceptor的实现类2、使用@Intercepts注解完成插件的签名3、将写好的插件注册到全局配置文件中三、多个插件时的执行顺序四、使用PageInterceptor插件1、导包2、在全局配置文件中注册PageInterceptor插件3、编码五、使用BatchExecutor进行批量操作...

2019-12-14 19:46:12 794

原创 MyBatis | 详解MyBatis的运行流程

目录一、MyBatis的运行流程1、获取SqlSessionFactory对象2、获取SqlSession对象3、获取接口的代理对象4、执行增删改查二、总结一、MyBatis的运行流程1、获取SqlSessionFactory对象根据配置文件创建SqlSessionFactory对象,解析全局配置文件和sql映射文件。最后创建的对象包含了一个Configurat...

2019-12-13 19:03:39 496 1

原创 Mybatis | 逆向工程(创建一个逆向工程并分析)

目录一、创建一个逆向工程的步骤1、环境的准备(1)、准备mybatis-config.xml文件:(2)、创建数据库配置文件dbconfig.properties(3)、准备其它相关的包2、导入相关的包3、配置逆向工程的xml文件4、创建方法来运行我们配置的逆向工程二、分析1、指定创建的映射文件2、配置需要连接的数据库3、配置类型解析器4、...

2019-12-12 21:53:49 764

原创 MyBatis | Mybatis整合第三方缓存包(EHcache)

目录一、导入jar包1.下载2.导包二、编写chcache.xml文件三、在SQL映射文件中配置标签四、MyBatis的缓存运行示意图(与第三方缓存包结合)一、导入jar包1.下载需要下载第三方缓存包及其与MyBatis整合的适配包。可以点此下载所需jar包2.导包图1:导入的包二、编写ehcache.xml文件<...

2019-12-12 16:12:36 560

原创 MyBatis笔记 | 详解MyBatis缓存机制

目录概述一级缓存(本地缓存)一级缓存失效的四种情况1.当sqlSession不同时2.当SqlSession相同,但是查询条件不同时3.当SqlSession相同,但是多次查询之间进行了增删改时4.SqlSession相同,手动清除了一级缓存(缓存清空)二级缓存工作机制使用步骤与缓存有关的设置及属性缓存原理概述Mybatis包含一个非常强大的...

2019-12-11 19:08:58 344

原创 MyBatis笔记 | 详解动态SQL

目录环境的准备使用if标签实现表达式判断使用trim标签实现字符串截取使用choose标签来实现分支选择使用if与set标签来实现动态的update语句foreach标签使用foreach标签来遍历集合mysql下使用foreach实现批量插入的两种方式两个内置参数使用bind标签来进行动态绑定使用sql标签来抽取重用的sql片段我们想,对于SQL映...

2019-12-11 13:20:19 416

原创 MyBatis笔记 | 详解MyBatis映射文件

目录MyBatis映射文件简单的增删改查示例insert获取自增主键的值MyBatis的参数处理select元素MyBatis映射文件映射文件指导着MyBatis如何进行数据库增删改查,有着非常重要的意义,有以下标签:cache:命名空间的二级缓存配置cache-ref:其他命名空间缓存配置的引用resultMap:自定义结果集映射sql:抽取可重用语句块insert:...

2019-11-28 21:52:39 336

原创 MyBatis笔记 | 详解参数处理(多种类型的参数处理、源码分析、读取参数的两种格式的区别)...

目录一、MyBatis的参数处理1、单个参数2、多个参数3、命名参数4、参数处理(1)传入POJO(2)传入Map(3)传入List二、从源码来看参数处理的过程(即如何封装Map)1、 确定names的值2、封装Map四、参数处理中#{}与${}的区别五、#{}取值时指定参数的相关规则一、MyBatis的参数处理从参数的个数来看,可分为单...

2019-11-28 21:51:18 507

原创 MyBatis笔记 | 详解resultType和resultMap

目录一、resultType1、select返回List2、select记录封装Map3、返回单个实体类的Map4、返回多个实体类的Map二、resultMap1、通过resultMap实现高级结果映射集2、使用resultMap进行关联查询3、使用级联属性封装结果来进行关联查询4、使用association定义关联对象封装规则5、使用associati...

2019-11-28 21:41:03 1415

原创 MyBatis小工具 | 使用log4j在控制台输出SQL语句

目录1.下载log4j-1.2.17.jar2.在项目中添加jar包3.配置log4j.properties文件4.测试我们在使用MyBatis时候想看看其发送的SQL语句,可以使用log4j-1.2.17.jar和log4j.properties来显示。1.下载log4j-1.2.17.jar点此进入官网下载,然后选择对应的版本:...

2019-11-28 13:55:04 302

原创 MyBatis笔记 | 详解MyBatis全局配置文件

目录一、properties标签二、settings标签三、typeAliases标签四、environments标签五、databaseIdProvider标签六、mappers标签一、properties标签作用:可以引入外部的资源文件有两个属性:resource:引入类路径下的资源文件 url:引入网络或者磁盘路径下的资源对昨天的案例我们进行修改,首...

2019-11-21 19:18:52 290

原创 MyBatis学习笔记 | MyBatis的下载、编写一个HelloWorld的MyBatis、使用接口式编程改进HelloWorld...

目录一、MyBatis下载二、建立一个HelloWorld1.建表2.创建项目3.创建全局配置文件4.配置sql映射文件5.编码三、改进:使用接口式编程1、接口式编程2、如何绑定3、上面HelloWorld的改进(1)、新建接口(2)、修改EmployeeMapper.xml配置文件(3)、编码四、总结MyBatis是一个半自动化,轻...

2019-11-20 22:53:10 406

原创 SpringMVC学习笔记 | SpringMVC的运行流程图、Spring整合SpringMVC

目录一、SpringMVC的运行流程图二、Spring整合SpringMVC一、SpringMVC的运行流程图二、Spring整合SpringMVCSpring整合SpringMVC的原因通常情况下,类似于数据源、事务、整合其他框架都是放在Spring的配置文件中,而不是放在SpringMVC的配置文件中。实际上放入Spring配置文件对应的IOC容...

2019-11-20 15:24:59 191

原创 SpringMVC学习笔记 | 关于异常处理

目录一、概述二、ExceptionHandlerExceptionResolver三、ResponseStatusExceptionResolver四、DefaultHandlerExceptionResolver五、SimpleMappingExceptionResolver一、概述SpringMVC通过HandlerExceptionResolver处理程序的...

2019-11-20 13:26:56 270

原创 SpringMVC学习笔记 | SpringMVC拦截器详解:自定义拦截器、拦截器执行顺序的分析

一、自定义拦截器SpringMVC可以使用拦截器对请求进行拦截处理,用户可以自定义拦截器来实现特定的功能,自定义拦截器必须实现HandlerInterceptor接口。1、步骤编写一个拦截器类,需要实现HandlerInterceptor接口。package com.cerr.springmvc.interceptor;import org.springframework.w...

2019-11-19 21:45:24 457

原创 SpringMVC学习笔记 | 在SpringMVC中的国际化

目录一、国际化需要解决的问题1、使用jstl的fmt标签来对文本进行本地化处理2、在bean中获取国际化资源文件Locale对应的消息3、通过超链接切换Locale一、国际化需要解决的问题 在页面上能够根据浏览器语言设置的情况对文本,时间,数值进行本地化处理 解决:使用JSTL的fmt标签 可以在bean中获取国际化资源文件Locale对应的消息 解决...

2019-11-19 19:14:37 308

原创 SpringMVC学习笔记 | SpringMVC中文件的上传

文件的上传SpringMVC为文件上传提供了直接的支持,这种支持是通过MultipartResolver实现的,其中有一个其实现类:CommonsMultipartResovler。SpringMVC上下文中默认没有装配MultipartResolver,因此默认情况下不能处理文件的上传工作,如果想使用SpringMVC的文件上传功能,需在上下文中配置MultipartResolver。...

2019-11-19 19:14:11 159

原创 SpringMVC学习笔记 | 返回JSON数据 、HttpMessageConverter<T>

处理JSON的步骤加入jar包 编写目标方法,使其返回JSON对应的对象或集合package com.cerr.springmvc.test;import com.cerr.springmvc.crud.dao.EmployeeDao;import com.cerr.springmvc.crud.entities.Employee;import org.springframewo...

2019-11-19 15:32:00 165

apache-tomcat-8.5.53.tar.gz(tomcat安装包).zip

tomcat8.5.53在linux系统的安装包。Tomcat 服务器是一个开源的轻量级Web应用服务器,在中小型系统和并发量小的场合下被普遍使用,是开发和调试Servlet、JSP 程序的首选

2020-05-16

editor.md-master(markdown编辑器集成插件).rar

editor.md-master这插件包是一个markdown编辑器插件包,用该插件包就可以轻松的开发出漂亮的支持markdown语法的编辑器,可适用于各种博客、新闻网站的开发

2020-05-16

mysql-5.6.47-linux-glibc2.12-x86_64.tar.gz

MySQL 是最流行的关系型数据库管理系统之一,该压缩包是mysql-5.6.47的linux版本安装包,可用于在linux系统上安装mysql5.6.47

2020-05-16

mysql与java连接的适配包(mysql-connector-java-5.1.47)

mysql与java连接的JDBC驱动连接,mysql与java连接的JDBC驱动连接,导入该包后并进行配置后即可使用。

2019-12-12

MyBatis包下载(mybatis-3.5.2.rar)

MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。

2019-12-12

ehcache.zip

Ehcache 是现在最流行的纯Java开源缓存框架,配置简单、结构清晰。该资源有ehcache-2.10.2.jar、slf4j-api-1.6.1.jar、slf4j-log4j12-1.6.2.jar及与mybatis整合的适配包mybatis-ehcache-1.0.3.jar

2019-12-12

空空如也

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

TA关注的人

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