Hellooo,long time|

fengzeng

园龄:4年9个月粉丝:17关注:5

随笔分类 -  Java

最容易懂的策略模式消除if-else分支,实现开闭原则,提高可扩展性
摘要:1 介绍 策略模式最常用的场景就是用于消除代码中的if-else,这里所说的if-else并不是说任何简单的判断都引入策略模式来优化,这样反而会增加代码的复杂度。 反例:使用策略模式对一个boolean类型的变量进行优化 2 背景 我负责的有一个基于流程引擎开发的项目,有一个功能模块是查看申请单的详
532
2
1
深入浅出Java异常机制
摘要:一次对Java异常机制的理解 近期有一个对接三方接口的任务,在这个过程中用到了许多 try-catch 处理,发现自己对异常处理是一知半解,浅浅研究了一下,记录一下,也帮助小伙伴如何正确使用 try-catch 达到预期的结果。 写在前面 java的异常处理机制,用得好,可以达到预期的效果,用得不好
77
0
0
Dubbo实战教程
摘要:“Dubbo是阿里巴巴开源的基于 Java 的高性能 RPC(一种远程调用) 分布式服务框架(SOA),致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。” RPC翻译过来叫做远程过程调用(Remote Process Call),我们为什么需要RPC框架? HTTP了解过吧
706
0
0
使用 CompeletedFuture 实现异步调用
摘要:在我们平时写的项目中,异步调用是一个比较重要的优化手段,在 Java 中,提供了 CompletedFuture 供我们使用,具体实现如下: 例子 假如现在有一个需求,我需要去淘宝、天猫和京东去搜索某样商品的价格,哪个平台价格低我就去哪个平台购买。 代码 现在我模拟了三个方法:分别是去淘宝、天猫和京
435
0
0
关于ThreadLocal最直白的解释
摘要:ThreadLocal 底层原理如下: 实线是强引用,虚线是弱引用 Thread 持有 ThreadLocal 对象的引用,ThreadLocalMap 是 Thread 的成员变量,它是一个 Map,key 是 ThreadLocal 对象, value 是我们 set 进去的值 和 Map 一样
117
0
0
每日一题(2022-5-24):经典搜索算法
摘要:题目 给定一个文件目录的路径,统计这个目录下所有的文件数并返回 分析 这道题很容易想到深搜或者广搜,不仅考察了对搜索算法的应用,还考察了对文件的操作,这道题在面试的时候还是很常见的 直接看代码吧,边看注释边讲。 代码 深度搜素: public static int dfs(String folder
80
0
0
我使用Spring AOP实现了用户操作日志功能
摘要:我使用Spring AOP实现了用户操作日志功能 今天答辩完了,复盘了一下系统,发现还是有一些东西值得拿出来和大家分享一下。 需求分析 系统需要对用户的操作进行记录,方便未来溯源 首先想到的就是在每个方法中,去实现记录的逻辑,但是这样做肯定是不现实的,首先工作量大,其次违背了软件工程设计原则(开闭原
488
3
0
SpringBoot自定义拦截器(多个拦截器)
摘要:在 Spring Boot 中要实现自定义拦截器需要实现 HandlerInterceptor 接口,并重写 preHandle、postHandle 和 afterCompletion 方法: import org.springframework.stereotype.Component; imp
2715
1
0
浅谈Java-String到底是值传递还是引用传递?
摘要:参数传递 如果你学过 **C/C++**应该很好理解,就是所谓的 "值传递" 和 "指针传递" 首先声明一点:Java 中的参数传递,只有值传递,没有所谓的引用传递。 所谓的这个值,就大有学问了,主要分为了两种类型:基本数据类型和对象 基本数据类型 众所周知,Java 有 8 种基本数据类型,分别是
2396
7
0
浅谈一下流式处理平台Flink
摘要:浅谈一下流式处理平台(Flink) 大数据框架听过很多,比如 Hadoop,HDFS...不过自己的项目都没有上过 为什么突然提到 Flink,因为最近一个项目需要用到,所以学习最好的方式就是项目驱动 以前总觉得自己要学会了某样东西再去做,等学会了,也许又用不上,久而久之,又忘了 下面我结合项目,浅
550
0
0
SpringBoot2.x修改Redis序列化方式
摘要:添加一个配置类即可: /** * @Author FengZeng * @Date 2022-03-22 13:43 * @Description TODO */ @Configuration public class RedisConfig { @Bean public RedisTemplate
353
0
0
Java类型转换详解
摘要:Java类型转换详解 最近有同学问:自动类型转换老是记不住,到底是大转小,还是小转大 其实这个不用死记硬背,很好理解,我们拿 int 和 short 来举例: int 是 4 字节,也就是 32 bit,所以 int 的范围在 [-231,231-1] 也就是大概 [-21亿,21亿] short
57
0
0
接口和抽象类的区别(不讲废话,干货满满,JDK1.8最新整理)
摘要:接口和抽象类的区别(不讲废话,干货满满,JDK1.8最新整理) 1、抽象类 以下说辞可能不太准确,但是会让你醍醐灌顶 抽象类是把一些具有共同属性(包括行为)的东西抽象出来,比如: 小狗有身高,体重,颜色,会叫,会跑 小猫有身高,体重,颜色,会叫,会跑 这个时候我们发现小猫和小狗都有共同的属性(包括行
270
0
0
为什么HashMap使用红黑树而不使用AVL树
摘要:为什么HashMap使用红黑树而不使用AVL树? 红黑树适用于大量插入和删除;因为它是非严格的平衡树;只要从根节点到叶子节点的最长路径不超过最短路径的2倍,就不用进行平衡调节 AVL 树是严格的平衡树,上述的最短路径与最长路径的差不能超过 1,AVL 允许的差值小;在进行大量插入和删除操作时,会频繁
1077
0
0
用数组实现循环队列(不用前后指针)
摘要:用数组实现循环队列(新思路) 用数组实现一个循环队列,比较难的一个点就是如何判断数组是否满了,不论是书上的方法,还是一些大佬的写法,都是利用一个计算去判断:(rear + maxSize - front) % maxSize 有的小伙伴天资聪颖一下就理解了,有的小伙伴可能理解不够深刻,只能牢牢记住这
94
0
0
使用 NIO 搭建一个聊天室
摘要:使用 NIO 搭建一个聊天室 前面刚讲了使用 Socket 搭建了一个 Http Server,在最后我们使用了 NIO 对 Server 进行了优化,然后有小伙伴问到怎么使用 Socket 搭建聊天室,这节仍然使用 NIO 为基础进行搭建。 一、NIO 聊天室入门案例 该案例只有三个类:NioSe
207
0
0
使用Socket实现HttpServer(三)
摘要:使用Socket实现HttpServer(三) 这一章继续对我们的服务器进行优化,引入 NIO package com.fengsir.network.step4; import java.io.IOException; import java.net.InetSocketAddress; impo
84
0
0
使用Socket实现HttpServer(二)
摘要:使用Socket实现HttpServer(二) 前面我们使用 Socket 实现了一个简易的 HttpServer,接下来我们将对我们的服务器进行优化: 面向对象的封装 优化线程模型(引入多线程) Request/Response 对象抽象 Step1(面向对象的封装) 对我们之前所写的 HttpS
151
0
0
使用Socket实现HttpServer(一)
摘要:使用Socket实现HttpServer(一) Socket 编程 socket 翻译过来叫插槽,一张图你就明白 socket 就插在 TCP 也就是传输层上,对用户的请求和服务器的响应进行处理。 下面我使用 socket 实现一个简易的 HttpServer package com.fengsir
216
0
0
JWT&RSA实现单点登录(详细介绍)
摘要:今天给大家讲一下基于JWT&RSA的单点登录(Single Sign On,简称SSO)解决方案 ##概念 首先要了解几个概念 单点登录(Single Sign On) JWT RSA ##背景 为什么需要单点登录?简单的来说就是http请求是无状态的,你的上一次请求和下一次请求都是没有关联的,那么
1570
0
0
点击右上角即可分享
微信分享提示
深色
回顶
收起