开发君

你眼里的星辰大海,是我从未见过的皓月明空。

布隆过滤器

布隆过滤器 1、什么是布隆过滤器 布隆过滤器是1970年由布隆提出的。它实际上是一个很长的二进制向量(位数组)和一系列随机映射函数(哈希函数)。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。 2、布隆过滤器的原理 2.1、添加元素 将一个元素添加到布隆过滤器中: 使用布隆过滤器中的...

代理模式

代理模式 1、代理模式 代理模式是指,为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户类和目标对象之间起到中介的作用。 换句话说,使用代理对象,是为了在不修改目标对象的基础上,增强主业务逻辑。客户类真正的想要访问的对象是目标对象,但客户类真正可以访问的对象是代理对象。客户类对目标对象的访问是通过访问代理对...

面向对象的三大特性和五大原则

面向对象的三大特性和五大原则 面向对象的三大特性和五大原则是非常重要的内容,我们需要在使用面向对象编程中结合自己的理解,从实际生活中的例子出发,去思考三大特性和五大原则。 1、三大特性 1.1、封装  封装就是隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别,将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代...

浅析CSRF和XSS

浅析CSRF和XSS 前言 ​ 博主最近面试,遇到一个问题:CSRF和XSS的原理是什么?如何防止CSRF和XSS的发生?由于博主这一块了解的不够深入,面试中回答得不够全面。今天就带大家来探讨一下CSRF和XSS背后的奥秘! ​ 这部分知识点在面试中主要是围绕项目中的认证授权(cookie,session,token)来问,还是希望大家在学习CSRF(重点)和XSS之前,先...

浅析SpringMVC的工作流程

浅析SpringMVC的工作流程 前言 ​ 在面试中,经常会遇到一个很经典的问题,SpringMVC的工作流程是什么?初次遇到这个问题,可能显得非常棘手。我相信大家结合SpringMVC的流程图和实际代码去理解,一定能够很完美的回答这个问题。 1、SpringMVC的执行流程简介 (1)浏览器提交请求到DispatcherServlet中央调度器。 (2)中央调度器直...

Spring中Bean的生命周期

Spring中Bean的生命周期 1、Spring对Bean进行实例化; 2、Spring将值和Bean的引用注入到Bean对应的属性中; 3、如果bean实现了BeanNameAware接口,Spring将bean的ID传递给setBean-Name()方法; (实现BeanNameAware清主要是为了通过Bean的引用来获得Bean的ID,一般业务中是很少有用到Be...

事务的ACID特性

事务的ACID特性 1、什么是事务 事务是指满足ACID特性的一组操作,这组操作要么全部成功,要么全部失败。 举个简单的例子,小张给小明转账100块钱,这个转账会包含两个操作: 1、将小张的余额减少100块; 2、将小明的余额增加100块。 事务会将上述两个操作看作一个整体,1和2必须都成功或者都失败。 2、ACID特性 2.1、原子性(Atomicity) 事务是...

Java创建对象的方式

Java创建对象的方式 1、new 通过new关键字创建对象。 定义一个Student类: public class Student { private int name; private int age; //set,get方法及构造方法 } 创建Student类对象: new Student(); 2、反射机制 通过Class类的ne...

Java如何创建线程

Java如何创建线程? 1、继承Thread类 自定义一个线程类,该线程继承Thread类,并重写run方法。 public class MyThread extends Thread { public void run() { System.out.println("MyThread.run()"); } } MyThread myThread = new ...

序列化

序列化 1、什么是序列化 序列化:把对象转化为可传输的字节序列过程称为序列化。 反序列化:把字节序列还原为对象的过程称为反序列化。 序列化是将一个Java对象变成字节序列,方便持久化存储到磁盘,避免程序运行结束后对象就从内存里消失,另外变换成字节序列也更便于网络运输和传播。而且序列化机制从某种意义上来说也弥补了平台化的一些差异,毕竟转换后的字节流可以在其他平台上进行反序列化来...