-
hutool工具包——一个小而美的Java工具类库( hutool 是如何简便实现 JWT 认证的)
是的,你没看错,没看错,它就是 hutool !相信很多做java开发的朋友应该都已经认识并使用过它了,今天带大家再重温一下它都有哪些功能,并以示例来看看 hutool 是如何简便实现 JWT 认证的。关于JWT大家可以参考之前的文章。 简介 Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以…...- xiawuyouke
- 0
- 0
- 597
-
CompletableFuture详解(深入解析CompletableFuture的功能和用法)
1. CompletableFuture 简介 1.1 概述 CompletableFuture是 Java 8 中引入的一个类,它实现了CompletionStage接口,提供了一组丰富的方法来处理异步操作和多个任务的结果。它支持链式操作,可以方便地处理任务的依赖关系和结果转换。相比于传统的Future接口,CompletableFuture更加灵活和强大。 1.2 优势与特点 Completa…...- xiawuyouke
- 0
- 0
- 22
-
springboot启动流程简述(万字长文带你了解springboot启动及执行流程)
本文分析的是 Spring Boot 在基于 Tomcat 的 Servlet 环境下的整体启动及运行流程, 使用到的框架及版本号如下表: 框架 版本号 Spring 5.3.5 Spring Boot 2.5.0-SNAPSHOT Spring MVC 5.3.5 Spring Boot Starter AOP 2.5.0-SNAPSHOT Spring Boot Starter Actuato…...- xiawuyouke
- 0
- 0
- 55
-
Java基础知识:抽象类和接口知识详解(抽象类和接口的区别)
什么是抽象类? 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,那么这样的类称为抽象类。 如何构造出一个抽象类? 在Java中,一个类如果被 abstract 修饰称为抽象类,抽象类中被 abstract 修饰 的方法称为抽象方法,抽象方法不用给出具体的实现体。 //抽象类 public abstr…...- xiawuyouke
- 0
- 0
- 72
-
Java基础知识:JSP运行原理及运行过程详解
JSP的工作模式是请求/响应模式,客户端首先发出HTTP请求,JSP程序收到请求后将进行处理并返回处理结果。在一个JSP文件第一次被请求的时候,JSP引擎(容器)把该JSP文件转换成一个Servlet,而这个引擎本身也是一个Servlet。JSP的运行原理如图1所示。 图1 JSP的运行原理 JSP的运行过程具体如下。 (1)客户端发出请求,请求访问JSP文件。 (2)JSP容器先将JSP文件转换…...- xiawuyouke
- 0
- 0
- 88
-
Java面试题:限流算法有哪些?(计数器算法、漏桶算法和令牌桶算法)
限流的实现算法有很多,但常见的限流算法有三种:计数器算法、漏桶算法和令牌桶算法。 1.计数器算法 计数器算法是在一定的时间间隔里,记录请求次数,当请求次数超过该时间限制时,就把计数器清零,然后重新计算。当请求次数超过间隔内的最大次数时,拒绝访问。 计数器算法的实现比较简单,但存在“突刺现象”。 突刺现象是指,比如限流 QPS(每秒查询率)为 100,算法的实现思路就是从第一个请求进来开始计时,在接…...- xiawuyouke
- 0
- 0
- 136
-
Java基础知识:ConcurrentHashMap是如何保证线程安全的?(JDK1.7实现原理)
ConcurrentHashMap相当于是HashMap的多线程版本,它的功能本质上和HashMap没什么区别。因为HashMap在并发操作的时候会出现各种问题,比如死循环问题、数据覆盖等问题。而这些问题,只要使用ConcurrentHashMap就可以完美地解决。那问题来到了,ConcurrentHashMap它是如何保证线程安全的呢? 1、JDK1.7实现原理 首先,我们来看JDK 1.7中C…...- xiawuyouke
- 0
- 0
- 59
-
Java面试题:抽象类可以用final修饰吗?(抽象类知识点剖析和演示面试)
面试官提了这样一个问题: 抽象类可以用final修饰吗? 这个题也是没什么可深入挖掘的,面试的时候遇到这样的问题,你直接了当用几句话说清楚就完了。 不能。定义抽象类就是让其他类继承的,而final修饰的类不能被继承。 final 在 Java 中有什么作用? final 修饰的类叫最终类,该类不能被继承。 final 修饰的方法不能被重写。 final 修饰的变量叫常量,常量必须初始化,初始化之后…...- xiawuyouke
- 0
- 0
- 128
-
Java基础知识:为什么ConcurrentHashMap 读操作不需要加锁?(ConcurrentHashMap简介)
我们知道,ConcurrentHashmap(1.8)这个并发集合框架是线程安全的,当你看到源码的get操作时,会发现get操作全程是没有加任何锁的,这也是这篇博文讨论的问题——为什么它不需要加锁呢? 一、ConcurrentHashMap的简介 我想有基础的同学知道在jdk1.7中是采用Segment + HashEntry + ReentrantLock的方式进行实现的,而1.8中放弃了Seg…...- xiawuyouke
- 0
- 0
- 64
-
Java面试题:接口和抽象类有什么区别(接口和抽象类知识点剖析和演示面试)
面试官提了这样一个问题: 接口和抽象类有什么区别? 技术点剖析 关于接口和抽象类的区别,这个问题网上有大量的文章进行说明,但大多数的文章描述的都有种盲人摸象的感觉,就是好像问你印度神话里的湿婆和梵天有什么区别?你憋了半天说,湿婆有四条胳膊,梵天有八条胳膊。要说吧,你说的没错,这是区别,但你跟我这样描述湿婆和梵天的区别,我还是没法理解湿婆和梵天都是干啥的。 我们来看看接口和抽象类的区别的。 1 接口…...- xiawuyouke
- 0
- 0
- 71
-
Java面试题:Java的IO流有哪几种(IO流知识点剖析和演示面试)
面试官提了这样一个问题: Java的IO流有哪几种? 知识点剖析 IO流,即输入输出流,是比较明确的知识点,也没有啥难理解的。我先简单说一点,然后再做演示面试。 1 输入输出流是干什么的? 输入输出流是做数据读写的,比如读写文件、读键盘信号、读鼠标信号、输出信息到显示器、网络上传下载、浏览网页、微信聊天发信息、抖音播放小视频,这些都要用到输入输出流。 2 输入到哪里?从哪里输出? 我们用读写文件来…...- xiawuyouke
- 0
- 0
- 68
-
Java面试题:BIO、AIO、NIO的区别(BIO、AIO、NIO知识点剖析和演示面试)
面试官提了这样一个问题: 请说说BIO、AIO、NIO的区别? 知识点剖析 IO是什么 用中国话说,IO = 输入/输出 英文全写,IO = in/out 从表现上来看,IO = 读写文件,微信发消息,网上看电影,键盘信号,信息显示在显示器上,这些都是基于输入输出的。 从技术核心来说,IO = 一个个的字节从一个地方进入内存,或者从内存传到另一个地方。 IO的中心是内存,是针对内存的方向说的in(…...- xiawuyouke
- 0
- 0
- 124
-
Java面试题:File类有哪些常用方法(File类知识点剖析和演示面试)
面试官提了这样一个问题: 请说说File类有哪些常用方法? 知识点剖析: 首先说File类是干什么的。File类是用来操作文件和目录的,这里注意,不仅仅是文件,也包括目录的操作File都提供了很多方法。比如创建、删除、重命名,都是可以的。但并不提供文件内容的操作,如果需要操作文件内容必须基于IO来实现。 File还有两个常量很有用,PathSeparator 和 speparator ,第一个常量…...- xiawuyouke
- 0
- 0
- 62
-
Java性能优化:ConcurrentHashMap有十个提升性能的地方,你都知道吗?
如何在高并发下提高系统吞吐是所有后端开发者追求的目标,Java并发的开创者Doug Lea在Java 7 ConcurrentHashMap的设计中给出了一些参考答案,本文详细的总结了ConcurrentHashMap源码中影响并发性能的十个细节,有常见的自旋锁,CAS的使用,也有延迟写内存,volatile语义退化等不常见的技巧,希望对大家的开发设计有所帮助。 由于ConcurrentHashM…...- xiawuyouke
- 0
- 0
- 34
-
Java性能优化:Stream如何提高遍历集合效率?
什么是Stream? 现在很多大数据量系统中都存在分表分库的情况。 例如,电商系统中的订单表,常常使用用户ID的Hash值来实现分表分库,这样是为了减少单个表的数据量,优化用户查询订单的速度。 但在后台管理员审核订单时,他们需要将各个数据源的数据查询到应用层之后进行合并操作。 例如,当我们需要查询出过滤条件下的所有订单,并按照订单的某个条件进行排序,单个数据源查询出来的数据是可以按照某个条件进行排…...- xiawuyouke
- 0
- 0
- 34
-
Java基础教程:Javatrim方法——去除字符串中的空格
trim() 方法用于删除字符串的头尾空白符。 语法 public String trim() 参数 无 返回值 删除头尾空白符的字符串。 字符串中存在的首尾空格一般情况下都没有任何意义,如字符串“ Hello ”,但是这些空格会影响到字符串的操作,如连接字符串或比较字符串等,所以应该去掉字符串中的首尾空格,这需要使用 String 类提供的 trim() 方法。trim() 方法的语法形式如下:…...- xiawuyouke
- 0
- 0
- 44
-
Java基础教程:从String中移除空白字符的多种方式
字符串,是Java中最常用的一个数据类型了。我们在日常开发时候会经常使用字符串做很多的操作。比如字符串的拼接、截断、替换等。 这一篇文章,我们介绍一个比较常见又容易被忽略的一个操作,那就是移除字符串中的空格。 其实,在Java中从字符串中删除空格有很多不同的方法,如trim,replaceAll等。但是,在Java 11添加了一些新的功能,如strip、stripLeading、stripTrai…...- xiawuyouke
- 0
- 0
- 62
-
Java基础教程:String 方法中 replace 和 replaceAll 详解
String 方法中 replace 和 replaceAll 详解 我们先做一个简单的概述: replace() 和 replaceAll() 都是常用的替换字符串的方法; 两者都是全部替换,可以把源字符串中的某一字符或字符串全部换成指定的字符或字符串; 如果只想替换第一次出现的,可以使用 replaceFirst(); 这个方法也是基于规则表达式的替换,但与replaceAll()不同的是,只…...- xiawuyouke
- 0
- 0
- 325
-
Java正则表达式详细解析
元字符 正则表达式使用一些特定的元字符来检索、匹配和替换符合规则的字符串 元字符:普通字符、标准字符、限定字符(量词)、定位字符(边界字符) 正则表达式引擎 正则表达式是一个用正则符号写出来的公式 程序对正则表达式进行语法分析,建立语法分析树 再根据语法分析树结合正则表达式引擎生成执行程序(状态机),用于字符匹配 正则表达式引擎是一套核心算法,用于建立状态机 小结 正则表达式 => 语法分析…...- xiawuyouke
- 0
- 0
- 47
-
Java基础:什么是工作流(Workflow)?Workflow具体有什么作用?
1.工作流概念 工作流(Workflow),就是通过计算机对业务流程自动化执行管理。它主要解决的是“使在多个参与者之间按照某种预定义的规则自动进行传递文档、信息或任务的过程,从而实现某个预期的业务目标,或者促使此目标的实现”。 2.工作流系统 一个软件系统中具有工作流的功能,我们把它称为工作流系统,一个系统中工作流的功能是什么?就是对系统的业务流程进行自动化管理,所以工作流是建立在业务流程的基础上…...- xiawuyouke
- 0
- 0
- 300
幸运之星正在降临...
点击领取今天的签到奖励!
恭喜!您今天获得了{{mission.data.mission.credit}}积分
我的优惠劵
-
¥优惠劵使用时效:无法使用使用时效:
之前
使用时效:永久有效优惠劵ID:×
没有优惠劵可用!