自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Redis实现持久化

aof文件只记录写命令,不记录读命令,当服务端接收到写命令后,redis会将命令写入到aof缓冲区中,之所以写入缓冲区而不直接写入aof文件中是因为如果每次都将命令直接写入到文件中,那么redis的性能将完全取决于硬盘的读写能力,这与redis性能至上的理念不符,另外,写入缓冲区中也便于使用不同的同步策略。3、在子进程生成新的aof文件过程中主进程执行的新命令同时会被写入到aof重写缓冲区中,当新aof文件生成后再将这一部分命令写入到新aof文件中,防止数据丢失;e.同时发送信号给主进程。

2022-12-11 22:32:39 352 1

原创 Spring框架的AOP实现原理

AOP:面向切面编程,是将那些与业务无关(比如有事务处理,日志管理,权限控制等),但要为业务模块共同调用的逻辑封装成一个可重用的模块,这个模块被称为切面,便于减少系统的重复代码,降低模块间的耦合度,有利于未来的可拓展性和可维护性。另一个为Proxy类,我们可以通过这个类的newProxyInstance()方法,返回一个代理对象,生成的代理类实现了原来类的所有接口,然后对这些接口进行代理,通过代理对象调用这些方法,底层通过反射来调用我们实现的invoke()方法。此通知可以在方法调用前后完成自定义的行为。

2022-11-20 18:51:08 2019

原创 TCP协议与UDP协议的区别

3、UDP协议在传输数据的时候,如果遇到了丢包情况,它也不负责重发,数据包的达到顺序出现混乱或者其他情况的时候,也没有解决的能力,除非采用UDP的应用程序去处理。1.校验和:发送方在传输数据之前,会对数据进行校验和,而接收方在收到数据之后也会对数据进行一个校验和,如果前后两次校验和没有错误,那么证明传输中没有出现错误。包含源端口,目的端口,序号,确认号,数据偏移,保留字段,控制位字段,窗口,检验和,紧急指标,以及可变的选项和填充。1、TCP协议是基于传输层的协议,是一个面向连接并且可靠的一种协议。

2022-10-29 18:02:03 6321

原创 MD5和AES在项目中的使用方式和区别

AES:而AES算法是一种分组加密算法,把明文分成一组一组的形式,保证每组的长度相等,每组加密一组数据,直到加密完整个明文。在AES标准中,分组长度只能为128位,16个字节,并且是按照字节进行加密的。从图中我们能看出通过AES算法我们将密码转为字符串方便存储在配置文件中从而进行加密,对加密后的数据进行base64编码,然后在重新设置密码的时候对其进行解密。我们在使用MD5主要在于项目的注册登录页面,要输入密码,当我们将密码存入数据库的时候就可以利用MD5算法加密后存入,用于保证数据的安全性。

2022-10-24 22:17:40 553

原创 Java操作mongodb增删改查的基本操作

删除一条数据:db.集合名称.remove({name:“张三”},{justOne:true});db.集合名称.find().limit(number).skip(number);增加多条数据:db.集合名称.insert({name:“张三”,sex:"男"});db.集合名称.update({查询条件},{$inc:{字段名:number(1)}})9.修改数据:db.集合名称.update({查询条件},{$set:{更新内容}},包含张的内容:db.集合名称.find({name:/张/})

2022-10-07 21:16:54 2212

原创 描述Servlet生命周期,Servlet是线程安全的吗,为什么?

当Servlet容器启动后,它必须要知道所需的Servlet类在什么位置,Servlet容器可以从本地文件系统、远程文件系统或者其他的网络服务中通过类加载器加载Servlet类,成功加载后,容器创建Servlet的实例。因为容器是通过Java的反射API来创建Servlet实例,调用的是Servlet的默认构造方法(即不带参数的构造方法),所以我们在编写Servlet类的时候,不应该提供带参数的构造方法。b.重写init()方法,doGet()方法,doPost()方法,destroy()方法。

2022-09-25 11:33:12 514

原创 Mybatis一级缓存和二级缓存分别是什么,区别是什么?

二级缓存的作用域为SqlSessionFactory,是一个映射器级别的缓存,针对不同namespace的映射器。一个会话中,查询一条数据,这个数据会被放到一级缓存中,但是一旦这个会话关闭,一级缓存汇总的数据就会被保存到二级缓存。在同一个SqlSession中,执行相同的sql语句,那么第一次就会去数据库中进行查询,并写到缓存中,如果我们后面还想去访问数据库查询,就直接去一级缓存中获取就可以了。mybatis的的一级缓存是SqlSession级别的缓存,一级缓存缓存的是对象,当SqlSession提。

2022-09-18 12:32:09 3341

原创 数据库基本增删改查语法和多表链接查的方式

select field1,field2 from 表1,表2 where 表1.field=表2.field;select field1,field2 from 表1 right join 表2 on 表1.field=表2 field;统计表中最大,最小,数据总和:select sum(field) ,max(field),min(field) from 表名;子查询: select from 表1 where field = ( select field from 表1。

2022-09-12 09:28:45 222

原创 MySQL的事务是什么?什么是脏读?幻读?不可重复读?

在一个事务还没有结束的时候,另外一个事务也访问该同一数据,那么在第一个事务中的两次读数据之间,由于第二个事务的修改,第一个事务两次读到的数据可能是不一样的。是指当事务不是独立执行时发生的一种现象,当第一个事务对表中的数据进行了修改,这种修改涉及到表中的全部数据行,此时第二个事务也在修改这个表中的数据,这种修改是向表中插入一行新数据,那么就会发生操作第一个事务的用户发现还有没有修改的数据行,跟出现了幻觉一样。(故障不包括硬盘损坏等)2.不要在事务的中途进行提交操作,不仅会破坏事务的原子性,还会使事务结束。

2022-09-04 17:20:36 350

原创 Synchronized底层的锁(偏向锁,无锁,轻量级锁,重量级锁)

大部分情况下,锁不仅仅不存在多线程竞争,而是总是由同一个线程多次获得,为了让线程获取锁的代价更低时,这才引入了偏向锁的概念。当一个线程访问了同步锁的代码块时,会在对象头中存储当前线程的id。后续这个线程进入和退出这段加了同步锁的代码块时,不需要再次加锁和释放锁,而是直接比较对象头里面是否含有存储了指向当前线程的偏向锁。...

2022-08-28 19:50:59 885

原创 线程池的拒绝策略

丢弃队列中的末尾任务(最旧的任务,也就是最早进入队列的任务)后,继续当前的任务提交给线程池。3、阻塞队列存满后,在启动超过核心线程数量到最大线程数量之间的线程。从执行结果来看,这个拒绝策略丢弃队列中的末尾任务继续当前的任务。4、当线程的数量达到最大线程数量时,再来任务就会启动拒绝策略。6.handler:线程池饱和时,封装被拒绝任务的处理策略。2、当核心线程数用完后,会把新来的线程任务存入阻塞队列中去。交给调用线程池的线程进行处理(谁调用,谁处理)丢弃当前被拒绝的任务,且不抛出异常。

2022-08-21 21:12:22 922

原创 简述哈希表

首先Hashtable是早期Java累库提供的一个哈希表实现,本身是同步的,不支持null键和值,由于同步导致的性能开销,所以现在很少被使用。如图能看到,我们要插入一个新的元素,使用put(key,value)方法,如果我们加入了两个相同的元素,则只存入一个。首先哈希表的功能与HashMap一致,都具有无序性且不具有重复性,其次哈希表线程安全,常常使用synchroized方法,但是效率低下。哈希表有properties,Entry等子类,虽然哈希表现在我们不经常使用,但是它的子类我们用的较多。...

2022-08-14 18:07:14 429 1

原创 继承关系下构造方法的访问特点

而且在本例中我并没有写super(参数),此时会默认赠送一个super()。如上图代码块所示,我们在子类中用this()调用了父类中的method()方法,所以独处的结论肯定是10.1.在子类的构造方法中,如果没有显示的写super(参数),则默认赠送一个super()。以上就是继承关系下构造方法的访问特点以及this()访问本类其他成员方法的概念以及举例。2.必须是第一个语句,this(参数)和super(参数)还不能同时存在。3.写类this(参数)之后就不在赠送super()4.构造方法不能递归。..

2022-08-07 18:19:50 138

原创 为什么四个字节的float表示的范围比八个字节的long要广

从图中我们能清晰的看出用float的最大范围减去long整型的最大范围所得出的数是一个整数,所以表示float所表示的范围的确是比long整型要广。而2*8^38转换一下就能成为2*2^3^38=2*2^114>2^63-1。long是长整型值,占8个字节,所以它的范围是-2^63~2^63-1。这个数字是远大于2^63-1的,所以我们能看到long的范围没有float范围广。long占8个字节,1个字节是8bit,所以long2^63-1,其中符号位决定浮点数的正负,0正1负;...

2022-07-31 16:28:57 1018

原创 CSS盒子模型及属性

它包括边距,边框,填充和实际内容,所有的HTML元素都可以被看作一个盒子,并且盒子模型允许我们在其他元素和周围元素边框之间的空间放元素。例如border-top-style表示上边框的样式,可以是实线(solid),圆点(dotted),虚线(dashed)等等。例如border-top-color表示上边框的颜色,也可调整其他几个方向的(bottom下,left左,right右)而padding和margin的用法相似,只不过padding是调整方块内的的边距,而margin调整整个布局的边距。...

2022-07-24 08:58:49 1287 1

原创 查看Linux系统负载命令

Tasks—任务(进程),系统现在共有192个进程,其中处于运行中的有1个,191个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个。首先Linux系统负载命令由许多命令构成,今天我们主要来说一说这五个命令uptime,free,mpstat,ifstat,df,top等。top命令是用来监控Linux的系统状况,其中包括cpu,内存以及进程的使用情况,并且他的内容是实时更新,方便我们查看内容。2556kused—使用的交换区总量(2.5M)......

2022-07-14 21:09:32 915 4

空空如也

空空如也

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

TA关注的人

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