摘要:
问题产生的原因 Long类型的数据,如果我们在后端将结果序列化为json,直接传给前端的话,在Long长度大于17位时会出现精度丢失的问题。 java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值),比如此案例中Id最后两位直接变成了0 解决方案 添 阅读全文
摘要:
第一章节:IO流简介 概述: I(Input,输入)/O(Output,输出)流,是Java中用来传输数据的方式。 分类: 根据流的方向分(相对于内存,输入和输出): 输入流:读数据 输出流:写数据 根据流的格式分: 字节流(一个字节占8位):以字节为单位来操作数据。 字符流:以字符为单位来操作数据 阅读全文
摘要:
缓存穿透问题的解决思路 缓存穿透 :缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在,这样缓存永远不会生效,这些请求都会打到数据库。 常见的解决方案有两种: 缓存空对象 优点:实现简单,维护方便 缺点: 额外的内存消耗 可能造成短期的不一致 布隆过滤 优点:内存占用较少,没有多余key 缺点: 阅读全文
摘要:
进程 概念 进程是操作系统资源分配的最小单元。一个进程拥有的资源有⾃⼰的堆、栈、虚存空间(页表)、文件描述符等信息。 从编程的角度来理解进程,可以把它看作是⼀个类或一个 PCB(Process Control Block,进程控制块的结构体)。 进程是操作系统对一个正在运行的程序的一种抽象,可以把进 阅读全文
摘要:
概念 Java里的拦截器是动态拦截Action调用的对象,它提供了一种机制可以使开发者在一个Action执行的前后执行一段代码,也可以在一个Action执行前阻止其执行,同时也提供了一种可以提取Action中可重用部分代码的方式。 拦截器使用步骤 创建一个实现了HandlerInterceptor的 阅读全文
摘要:
Session 共享实现 为什么要实现session共享呢 随着互联网公司的项目在微服务和分布式的环境下进行的搭建,导致一个项目可能分别部署在几个甚至很多的服务器集群下,此时就会出现一个问题: 当用户进行一个session会话的时候,比如一个用户去登录项目,一般的大公司的项目都是有Nginx进行反向 阅读全文
摘要:
引入Swagger 步骤 引入依赖(Swagger 或 Knife4j:官方文档https://doc.xiaominfo.com/knife4j/documentation/get_start.html) <!--引入Knife4j的官方start包,Swagger2基于Springfox2.10 阅读全文
摘要:
通用返回类 一般后端需要将数据封装成通用返回类再传递给前端 /** * 通用返回类 * @param <T> */ @Data public class BaseResponse<T> implements Serializable { //状态码 private int code; //数据 pr 阅读全文
摘要:
封装全局异常处理 1.定义业务异常类 作用: 1.相对于java的异常类,支持更多字段 2.自定义构造函数,更灵活/快捷的设置字段 /** * 自定义异常类 * @author LL */ public class BusinessException extends RuntimeException 阅读全文
摘要:
字节序基础概念 字节序,顾名思义,指字节在内存中存储的顺序。比如一个int32_t类型的数值占用4个字节,这4个字节在内存中的排列顺序就是字节序。字节序有两种: (1)小端字节序(Little endinan),数值低位存储在内存的低地址,高位存储在内存的高地址; (2)大端字节序(Big endi 阅读全文