自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 如何实现布隆过滤器?

布隆过滤器 (Bloom Filter)是由 Burton Howard Bloom 于 1970 年提出,它是一种 space efficient 的概率型数据结构,用于判断一个元素是否在集合中。当布隆过滤器说,某个数据存在时,这个数据可能不存在;当布隆过滤器说,某个数据不存在时,那么这个数据一定不存在。哈希表也能用于判断元素是否在集合中,但是布隆过滤器只需要哈希表的 1/8 或 1/4 的空间复杂度就能完成同样的问题。布隆过滤器可以插入元素,但不可以删除已有元素。

2024-07-21 14:45:22 874

原创 你了解Java异常?

Java 异常是 Java 提供的一种识别及响应错误的一致性机制。Java 异常机制可以使程序中异常处理代码和正常业务代码分离,保证程序代码更加优雅,并提高程序健壮性。在有效使用异常的情况下,异常能清晰的回答What, Where, Why 这3个问题:异常类型回答了“什么”被抛出,异常堆栈跟踪回答了“在哪”抛出,异常信息回答了“为什么”会抛出。Java 的所有异常可以分为受检异常(Checked Exception)和非受检异常(Unchecked Exception)。受检查异常。

2024-07-21 14:33:45 918

原创 Spring MVC底层分析

MVC是三个单词的首字母缩写,它们是Model(模型)、View(视图)和Controller(控制)。模型(Model):就是业务流程/状态的处理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是MVC最主要的核心。目前流行的EJB模型就是一个典型的应用例子,它从应用技术实现的角度对模型做了进一步的划分,以便充分利用现有的组件,但它不能作为应用设计模型的框架。它仅仅告诉你按这种模型设计就可以利用某些技术组件,从而减少了技术上的

2024-07-14 11:32:09 1063

原创 什么是Nginx?

Nginx是一个高性能的http和反向代理服务器,其特点是占用内存小,并发能力强。Nginx专为性能优化而开发,性能是其最重要的考量,能经受高负载的考验,有报告表明能支持高达50000个并发连接数。Nginx 是开源、高性能、高可靠的 Web 和反向代理服务器,而且支持热部署,几乎可以做到 7 * 24 小时不间断运行,即使运行几个月也不需要重新启动,还能在不间断服务的情况下对软件版本进行热更新。

2024-07-14 11:31:14 1377

原创 了解Synchronized对象头?

HotSpot虚拟机中,对象在内存中存储的布局可以分为三块区域:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)。

2024-06-08 16:52:15 834

原创 如何实现进制转换呢?

将某个十进制数除16得到的整数部分保留,作为第二次除16时的被除数,得到的余数依次记下,重复上述步骤,直到整数部分为16就结束,将所有得到的余数最终逆序输出,则为该十进制对应的二进制数。将某个十进制数除8得到的整数部分保留,作为第二次除8时的被除数,得到的余数依次记下,重复上述步骤,直到整数部分为8就结束,将所有得到的余数最终逆序输出,则为该十进制对应的二进制数。得到结果:12.534Q.将796除8取得第一个余数为4,将除8得到的整数部分99作为第二次的被除数,重复上述步骤,直至最终整数部分为0就结束。

2024-06-08 11:58:10 805

原创 接口幂等性如何解决?

在HTTP/1.1中,对幂等性进行了定义。它描述了一次和多次请求某一个资源对于资源本身应该具有同样的结果(网络超时等问题除外),即第一次请求的时候对资源产生了副作用,但是以后的多次请求都不会再对资源产生副作用。这里的副作用是不会对结果产生破坏或者产生不可预料的结果。也就是说,其任意多次执行对资源本身所产生的影响均与一次执行的影响相同,多次提交同一个接口请求不会影响到DB的数据就是幂等性的。

2024-06-02 16:30:18 870

原创 你知道SPI的原理以及实现?

是JDK内置的一种服务提供发现机制,可以用来启用框架扩展和替换组件,主要是被框架的开发人员使用,比如 java.sql.Driver 接口,其他不同厂商可以针对同一接口做出不同的实现,MySQL 和 PostgreSQL 都有不同的实现提供给用户,而Java的SPI机制可以为某个接口寻找服务实现。Java中SPI机制主要思想是将装配的控制权移到程序之外,在模块化设计中这个机制尤其重要,其核心思想就是解耦。Java SPI 实际上是“基于接口的编程+策略模式+配置文件”组合实现的动态加载机制。

2024-06-02 11:16:46 630

原创 如何理解AQS呢?

AQS是AbstractQueueSynchronizer是缩写,其意思就是抽象队列同步器。原理就是通过一个FIFO队列维护一个state同步状态值,只需要继承该抽象类重写对应的方法便可实现一套线程同步机制。AQS抽象类在java.util.concurrent.locks包下定义。如上图所示,AQS属于一个抽象类,主要是用来构建锁结构以及同步器的一个抽象类。AQS继承了AbstractOwnableSynchronizer,其作用为设置和获取独占锁的拥有者线程方法。

2024-05-26 12:16:55 1076

原创 Spring 手写框架

提到 IOC,初次接触的人可能会觉得非常高大上,觉得是一种很高深的技术,然而事实呢?事实是 IOC 其实仅仅只是一个 Map 集合而已。IOC 全称为:Inversion of Control。控制反转的基本概念是:不用创建对象,但是需要描述创建对象的方式。

2023-07-31 21:56:13 165

原创 Mybatis手写框架

Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。程序员直接编写原生态sql,可以严格控制sql执行性能,灵活度高。

2023-07-31 21:45:51 548

原创 JDK1.8 Stream流操作

Stream 是 Java8 中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。使用Stream API 对集合数据进行操作,就类似于使用 SQL 执行的数据库查询。也可以使用 Stream API 来并行执行操作。简而言之,Stream API 提供了一种高效且易于使用的处理数据的方式。特点不是数据结构,不会保存数据。不会修改原来的数据源,它会将操作后的数据保存到另外一个对象中。(保留意见:毕竟peek方法可以修改流中元素)

2023-07-27 09:10:19 369

原创 Linux 常见命令

是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。使用 “+” 设置权限,使用 “-” 用于取消。(向一个命令启动的进程发送一个信号)pwd 显示当前工作的路径。

2023-07-27 08:56:43 45

原创 Spring 框架底层原理

继承 DefaultSingletonBeanRegistry 默认的单例抽象类,同时也具备了使用单例注册类的方法。重点:实现了接口 BeanFactory 的实现,方法 getBean 的实现过程中可以看到,主要是对单例 Bean 对象的获取以及在获取不到时需要拿到 Bean 的定义做相应 Bean 实例化操作。那么 getBean 并没有自身的去实现这些方法,而是只定义了调用过程以及提供了抽象方法,由实现此抽象类的其他类做相应实现。那 AbstractBeanFactory 的实现类有哪些?

2023-07-26 19:49:04 1098 1

原创 OAuth2

OAuth就是一种授权机制,数据的所有者告诉系统,统一授权第三方应用进入系统,获取部分数据。系统产生短期有实效和权限范围的令牌(token)给第三方应用,用来代替密码,供第三方使用。OAuth2.0授权的核心就是颁发访问令牌、使用访问令牌。也可以认为OAuth2.0是一个安全协议,按照OAuth2.0的规范来实施,就可以用来保护互联网中受保护资源。在OAuth2.0中“O”是Open的简称,表示“开放”的意思。

2023-07-17 14:18:22 137 1

原创 RSA & ECDHE 算法

对称加密算法和非对称加密算法。对称加密在对称加密技术中,对信息的加密和解密都使用了相同的密钥Key,也就是说使用同一个密钥Key对数据进行加密和解密。这种加密方法可简化加解密的处理过程,信息交换双方都不必彼此研究和交换专用的加解米算法。如果在交换阶段,密钥Key没有泄露,那么加密数据的机密性和报文的完整性就可以得到保证。非对称加密在非对称加密中,不再只有一个密钥Key了。在非对称加密算法中,密钥被分解为一对,一个称为公开密钥,另一个称为私有密钥。对于公钥,可以通过非保密方式向他人公开,而私钥。

2023-07-13 19:33:04 2361 1

原创 线程池 && 异步编排

文章主要是针对线程池和异步编排进行简单的使用讲解

2022-11-29 17:24:17 729

原创 了解JWT(跨域)

什么是JWT呢?1、JWT(JSON Web Token)是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准。它定义了一种紧凑且独立的方式,可以在各方之间作为JSON对象安全地传输信息。此信息可以通过数字签名进行验证和信任。JWT可以使用秘密(使用HMAC算法)或使用RSA或ECDSA的公钥/私钥对进行签名。简单的讲就是,JWT是一个带签名及用户相关的信息加密成串,页面请求校验登录接口时,请求头中携带JWT串到后端服务,后端通过签名加密串匹配校验,保证信息未被篡改。校验通过则认为是可靠的

2021-11-22 19:28:43 2037

原创 SpringMVC框架

了解MVC框架的底层原理?1、什么是MVC?MVC是三个单词的首字母缩写,它们是Model(模型)、View(视图)和Controller(控制)。1.1、Model(模型)模型(Model):就是业务流程/状态的处理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是MVC最主要的核心。目前流行的EJB模型就是一个典型的应用例子,它从应用技术实现的角度对模型做了进一步的划分,以便充分利用现有的组件,但它不能作为应用

2021-11-11 01:39:21 632

原创 Java IO流的那些事

Java IO流介绍IO流的概念IO流的概念Java的IO是实现输入和输出的基础,可以方便的实现数据的输入和输出操作。在Java中把不同的输入/输出(Input/output)源(键盘,文件,网络连接等)抽象表述为“流”(stream)。通过流的形式允许Java程序使用相同的方式来访问不同的输入/输出源。stream是从起源(source)到接收的(sink)的有序数据。...

2021-05-22 23:31:02 653 3

原创 你能区分这几种Java集合类型?

Java 集合, 也叫作容器,主要是由两大接口派生而来:一个是 Collection接口,主要用于存放单一元素;另一个是 Map 接口,主要用于存放键值对。对于Collection 接口,下面又有三个主要的子接口:List、Set 和 Queue。

2021-04-03 14:31:34 1747 9

空空如也

空空如也

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

TA关注的人

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