![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
随记
文章平均质量分 85
一颗白菜o
GitHub:https://github.com/Cerr146417
展开
-
2021届双非本科的心酸秋招经历总结及经验分享
前言本人2021年应届毕业生,秋招时间线为8-11月,拿了几个offer,写下这篇文章对自己的秋招做一个总结,如果能给别人带来启发那更好了。文章分为几个部分:背景偏:主要讲述自己的一些基本情况简历篇:主要讲述下根据自己秋招的心得,简历要如何准备知识篇:主要讲述下应该储备的知识面经篇:主要分享自己的一些面经个人背景双非二本计算机专业,求职的方向也是互联网行业,岗位是Java研发,一段小公司实习经历,两个比较一般般的项目(SpringBoot+redis+kafka),获奖经历的话三个水水的省原创 2021-01-20 10:26:02 · 6901 阅读 · 15 评论 -
详解redis的持久化机制
本文目录一、RDB持久化二、AOF持久化1、redis4.0对持久化的优化2、关于AOF重写3、AOF重写过程很多时候我们需要将Redis进行持久化也就是说将存储在内存中的数据写入到硬盘中,大部分原因是为了之后重用数据(比如说机器重启),或者是为了防止系统故障而进行的备份。Redis提供两种持久化的机制,一种是快照持久化(RDB) ,另一种是只追加文件持久化(AOF) 。下面我们分别来介绍下面两种持久化机制。一、RDB持久化我们可以通过创建快照来获取存储在内存中的数据在某个时间点上的副本,Redis原创 2020-10-06 20:34:40 · 312 阅读 · 0 评论 -
详解缓存雪崩,缓存穿透,缓存击穿及其解决方案
目录如下:一、正常情况二、缓存雪崩1、解决方法三、缓存击穿1、解决方法四、缓存穿透1、解决方法一、正常情况正常情况下的流程是这样的,先查缓存,缓存无就查数据库。二、缓存雪崩缓存雪崩是指缓存中的数据大批量的过期 ,而查询量巨大,造成数据库压力过大而崩溃。1、解决方法尽量保证redis集群的高可用性,当发现机器坠机时尽快补上。选择合适的缓存淘汰策略。缓存的过期设置随机时间,防止大量数据同时过期。利用redis持久化机制保存的数据尽快恢复缓存。三、缓存击穿缓存击穿是指缓存中没有数据,而原创 2020-10-06 20:30:38 · 682 阅读 · 0 评论 -
详解布隆过滤器,并教你自己实现一个布隆过滤器
最近在学习Redis缓存穿透等知识的时候看到了布隆过滤器可以用于解决缓存穿透问题,因此对布隆过滤器进行了学习,并记录下此篇笔记。文章目录如下:一、简介二、布隆过滤器的原理1、添加元素2、判断元素是否在过滤器中三、自己实现一个布隆过滤器一、简介根据百度百科可知,布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都比一般的算法要好的多,缺点是有一定的误识别率和删除困原创 2020-10-06 17:06:54 · 2765 阅读 · 0 评论 -
设计模式 | 详解代理模式
代理模式1、代理模式的基本介绍2、静态代理静态代理模式的基本介绍静态代理案例静态代理的优缺点3、JDK代理JDK模式的基本介绍JDK生成代理对象的APIJDK代理案例4、Cglib代理Cglib代理的基本介绍Cglib代理实现步骤cglib代理案例1、代理模式的基本介绍1、代理模式:为一个对象提供一个替身 ,以控制对这个对象的访问。即通过代理对象访问目标对象。这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。2、被代理的对象可以有三种:远程对象、创建开销大的对象 或原创 2020-09-05 20:59:29 · 185 阅读 · 0 评论 -
从源码角度解析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 · 207 阅读 · 0 评论 -
设计模式 | 用实际案例详解工厂模式
我们来看一个具体需求看一个披萨的项目,要便于披萨种类的扩展,要便于维护,有以下要求:披萨的种类很多(比如GreekPizz、CheesePizz等)披萨的制作有prepare,bake,cut,box完成披萨店订购功能首先我们先编写一个Pizza抽象类:package com.cxc.factory.simplefactory.pizzastore.pizza;/** * 抽...原创 2020-06-06 22:22:45 · 1182 阅读 · 0 评论 -
设计模式 | 详解单例模式(饿汉式、懒汉式、静态内部类、枚举、JDK源码剖析)...
一、单例模式介绍所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对于某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。比如Hibernate的SessionFactory,它充当数据存储源的代理,并负责创建Session对象。SessionFactory并不是轻量级的,一般情况下,一个项目通常只需要一个SessionFactory就够,这时就会使用...原创 2020-06-06 19:15:39 · 345 阅读 · 0 评论 -
设计模式 | 详解设计模式的七大原则
一、设计模式的目的编写软件的过程中,程序员面临着来自耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性等多方面的挑战,设计模式是为了让程序具有更好的:代码重用性(即相同功能的代码,不用多次编写)可读性(即编程规范性,便于其他程序员的阅读和理解)可扩展性(即当需要增加新功能时,非常方便,称为可维护)可靠性(即当我们增加新的功能后,对原来的功能没有影响)使程序呈现高内聚,低耦合的特性...原创 2020-06-06 11:06:25 · 355 阅读 · 0 评论 -
通过git上传项目到github上&&更新项目到github上
目录一、安装git二、在github上新建仓库三、通过git上传项目到github上四、通过git更新项目到github上一、安装git可以点此去官网下载安装git,但是官网的下载很慢,因此在此推荐在此下载:点此下载。下载之后就安装,此处很简单就不叙述。二、在github上新建仓库在github中点击new,然后在下面填入信息:...原创 2019-12-23 09:11:36 · 280 阅读 · 0 评论 -
JavaWeb学习笔记 | 关于JSP
1.JSP的概述1.JSP是简化Servlet编写的一种技术,将Java代码和HTML语句混合在同一个文件中编写。只对网页中的要动态产生的内容采用java编写。而对静态内容采用普通静态HTML页面来编写。2.JSP简单来说就是在HTML页面中编写Java代码的页面,其文件的扩展名为.jsp3.JSP中编写Java代码的位置在body节点内:<% java代码 %>De...原创 2019-07-31 21:57:00 · 147 阅读 · 0 评论 -
解决IDEA使用maven导入依赖时卡在Resolving Maven dependencies
选择File-Settings,然后设置VM options for importer的值为-Xms1024m -Xmx2048m。参考自文章:Idea卡在Resolving Maven dependencies的解决方案原创 2019-12-14 20:49:40 · 2700 阅读 · 2 评论 -
JavaWeb学习笔记 | 监听器(Listener)
1.监听器的简介1.监听器:专门用于对其他对象身上发生的事件或状态改变进行监听或相应处理的对象,当被监视的对象发生情况时立即采取相应的行动。2.Servlet监听器:Servlet规范中定义的一种特殊类。它用于监听web应用程序中的ServletContext,HttpSession和ServletRequest等域对象的创建与销毁事件,以及监听这些域对象中的属性发生修改的时间。...原创 2019-07-07 22:06:52 · 193 阅读 · 0 评论 -
JavaWeb学习笔记 | Servlet
目录1.Servlet的简介2.Servlet的生命周期方法3.Servlet容器响应客户服务器的过程4.运行第一个Servlet程序(1).新建一个Java类HelloServlet,用于实现Servlet,如下:(2).Servlet的注册和映射(配置在web.xml文件)5.关于web.xml配置中的load-on-startup参数1.Servlet的简介...原创 2019-05-10 15:00:19 · 251 阅读 · 0 评论 -
JDBC学习笔记 | 数据库连接池(DBCP、C3P0)
目录1.简介2.工作原理3.两种开源的数据库连接池4.DBCP数据库连接池(1).使用步骤 (a).加入jar包(有两个) (b).创建数据库连接池 (c).为数据源实例初始化必要的属性 (d).从数据源中获取数据库连接(2).使用DBCP的两种方法: (a).直接使用 (b).通过配置文件来使用5.C3P0数据库连接池(1...原创 2019-05-09 23:59:00 · 244 阅读 · 0 评论 -
JDBC学习笔记 | DBUtils的使用
目录一、简介二、使用1.需要的jar包2.一些准备工作3.QueryRunner(1).使用update方法进行更新操作(2).使用query方法进行查询操作4.BeanHandler5.BeanListHandler6.MapHandler7.MapListHandler8.ScalarHandler一、简介commons-dbutils...原创 2019-05-09 23:26:08 · 212 阅读 · 0 评论 -
mysql安装及配置过程
1.mysql下载:https://dev.mysql.com/downloads/windows/installer/8.0.html官网下载,目前最新版本是8.0我这里下载的是老的版本5.7。要下载老版本可以点此2.如果之前有安装过,确保把mysql卸载彻底 (1).在服务中将mysql删除:sc delete mysql (2).打开注册表删除:...原创 2019-04-04 10:43:35 · 122 阅读 · 0 评论 -
poj1190:生日蛋糕(DFS+剪枝)
描述7月17日是Mr.W的生日,ACM-THU为此要制作一个体积为Nπ的M层生日蛋糕,每层都是一个圆柱体。设从下往上数第i(1 <= i <= M)层蛋糕是半径为Ri, 高度为Hi的圆柱。当i < M时,要求Ri > Ri+1且Hi > Hi+1。由于要在蛋糕上抹奶油,为尽可能节约经费,我们希望蛋糕外表面(最下一层的下底面除外)的面积Q最小。令Q = Sπ...原创 2018-10-04 23:30:34 · 185 阅读 · 0 评论 -
poj2815:城堡问题(DFS)
描述 1 2 3 4 5 6 7 #############################1 # | # | # | | # #####---#####---#---#####---#2 # # | # # # # # #---#####---#####---#####---...原创 2018-09-05 23:22:10 · 811 阅读 · 0 评论 -
DP算法之最长上升子序列
1.问题描述描述一个数的序列bi,当b1 < b2 < ... < bS的时候,我们称这个序列是上升的。对于给定的一个序列(a1, a2, ..., aN),我们可以得到一些上升的子序列(ai1, ai2, ..., aiK),这里1 <= i1 < i2 < ... < iK <= N。比如,对于序列(1, 7, 3, 5, 9, 4, 8)...原创 2018-09-04 21:14:11 · 1404 阅读 · 2 评论 -
动态规划 | 数字三角形
题目重述描述73 88 1 02 7 4 44 5 2 6 5上面给出了一个数字三角形。从三角形的顶部到底部有很多条不同的路径。对于每条路径,把路径上面的数加起来可以得到一个和,你的任务就是找到最大的和。注意:路径上的每一步只能从一个数走到下一层上和它最近的左边的那个数或者右边的那个数。输入输入的是一行是一个整数N (1 < N <= 100),给出三角形的行数。...原创 2018-08-02 11:22:04 · 277 阅读 · 0 评论 -
分治算法之求排列的逆序数
描述在Internet上的搜索引擎经常需要对信息进行比较,比如可以通过某个人对一些事物的排名来估计他(或她)对各种不同信息的兴趣,从而实现个性化的服务。对于不同的排名结果可以用逆序来评价它们之间的差异。考虑1,2,…,n的排列i1,i2,…,in,如果其中存在j,k,满足 j < k 且ij> ik, 那么就称(ij,ik)是这个排列的一个逆序。一个排列含有逆序的个数称...原创 2018-08-01 10:59:14 · 11486 阅读 · 5 评论 -
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 · 181 阅读 · 0 评论 -
MyBatis | Mybatis整合第三方缓存包(EHcache)
目录一、导入jar包1.下载2.导包二、编写chcache.xml文件三、在SQL映射文件中配置标签四、MyBatis的缓存运行示意图(与第三方缓存包结合)一、导入jar包1.下载需要下载第三方缓存包及其与MyBatis整合的适配包。可以点此下载所需jar包2.导包图1:导入的包二、编写ehcache.xml文件<...原创 2019-12-12 16:12:36 · 441 阅读 · 0 评论 -
Mybatis | 逆向工程(创建一个逆向工程并分析)
目录一、创建一个逆向工程的步骤1、环境的准备(1)、准备mybatis-config.xml文件:(2)、创建数据库配置文件dbconfig.properties(3)、准备其它相关的包2、导入相关的包3、配置逆向工程的xml文件4、创建方法来运行我们配置的逆向工程二、分析1、指定创建的映射文件2、配置需要连接的数据库3、配置类型解析器4、...原创 2019-12-12 21:53:49 · 496 阅读 · 0 评论 -
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 · 218 阅读 · 0 评论 -
MyBatis笔记 | 详解参数处理(多种类型的参数处理、源码分析、读取参数的两种格式的区别)...
目录一、MyBatis的参数处理1、单个参数2、多个参数3、命名参数4、参数处理(1)传入POJO(2)传入Map(3)传入List二、从源码来看参数处理的过程(即如何封装Map)1、 确定names的值2、封装Map四、参数处理中#{}与${}的区别五、#{}取值时指定参数的相关规则一、MyBatis的参数处理从参数的个数来看,可分为单...原创 2019-11-28 21:51:18 · 423 阅读 · 0 评论 -
MyBatis笔记 | 详解MyBatis映射文件
目录MyBatis映射文件简单的增删改查示例insert获取自增主键的值MyBatis的参数处理select元素MyBatis映射文件映射文件指导着MyBatis如何进行数据库增删改查,有着非常重要的意义,有以下标签:cache:命名空间的二级缓存配置cache-ref:其他命名空间缓存配置的引用resultMap:自定义结果集映射sql:抽取可重用语句块insert:...原创 2019-11-28 21:52:39 · 236 阅读 · 0 评论 -
Struts2学习笔记 | Action类
1.概述1.Action:能够处理Struts2请求的类2.Action类的属性的名字必须遵守与JavaBeans属性名相同的命名规则属性的类型可以是任意类型,从字符串到非字符串(基本数据库类型)之间的数据转换可以自动发生3.必须有一个不带参的构造器:通过反射创建实例4.至少有一个供Struts在执行这个action时调用的方法5.同一个Action类可以包含多个action方法...原创 2019-07-31 17:00:39 · 176 阅读 · 0 评论 -
Struts2学习笔记 | 部署第一个Struts2项目及其解析(IDEA版)
1.Struct2概述Struct2是一个用来开发MVC应用程序的框架2.Struct2的环境配置1.下载及解压网址:https://struts.apache.org/进去后下载下图文件,下载好后进行解压2.建立一个项目(struts2)在IDEA下新建一个项目取个名字后创建成功3.对该项目进行配置1.新建lib文件夹和classes文件夹在web/WEB-INF目录...原创 2019-07-30 20:12:13 · 619 阅读 · 0 评论 -
JavaWeb学习笔记 | 国际化
1.概述1.软件的本地化一个软件在某个国家或地区使用时,采用该国家或地区的语言,数字,货币,日期等习惯。2.软件的国际化软件开发时,让它能支持多个国家和地区的本地化应用。3.本地敏感数据随用户区域信息而变化的数据称为本地信息敏感数据,例如数字,货币,日期,时间等数据2.软件国际化的特征1.对于程序中的本地信息敏感的数据(日期、货币等)能根据当前所在的国家或地区的文化习惯进行显示。...原创 2019-07-30 11:02:10 · 101 阅读 · 0 评论 -
JavaWeb学习笔记 | 文件的上传与下载
1.进行文件上传时,表单需要做的准备1.请求方式为POST<form action="uploadServlet" method="post"></form>2.使用file的表单域<input type="file" name = "file" />3.使用新的编码方式(enctype=“multipart/form-data”)设定了enct...原创 2019-07-29 16:59:23 · 147 阅读 · 0 评论 -
JavaWeb学习笔记 | Filter简介
1. Filter简介Filter的基本功能是对Servlet容器调用Servlet的过程进行拦截,从而在Servlet进行响应处理的前后实现一些特殊的功能。在Servlet API中定义了三个接口类来供开发人员编写Filter程序:Filter,FilterChain,FilterConfigFilter程序是一个实现了Filter接口的Java类,与Servlet程序相似,它由Ser...原创 2019-05-27 21:31:27 · 133 阅读 · 0 评论 -
周结(2018-10-7)
这篇纯粹记录个人学习本周已学: 1.dfs+剪枝 例题: https://blog.csdn.net/qq_14810195/article/details/82941381 2.bfs 例题: https://blog.csdn.net/qq_14810195/article/details/82941481 3.了解S...原创 2018-10-07 22:16:03 · 104 阅读 · 0 评论