上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 73 下一页
摘要: 对于一些用户请求,在某些情况下是可能重复发送的,如果是查询类操作并无大碍,但其中有些是涉及写入操作的,一旦重复了,可能会导致很严重的后果,例如交易的接口如果重复请求可能会重复下单。 重复的场景有可能是: 黑客拦截了请求,重放 前端/客户端因为某些原因请求重复发送了,或者用户在很短的时间内重复点击了。 阅读全文
posted @ 2023-03-24 14:22 残城碎梦 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 当需要从数据库查询的表有上万条记录的时候,一次性查询所有结果会变得很慢,特别是随着数据量的增加特别明显,这时需要使用分页查询。对于数据库分页查询,也有很多种方法和优化的点。 为了对下面列举的一些优化进行测试,下面针对已有的一张表进行说明: 表名:order_history 描述:某个业务的订单历史表 阅读全文
posted @ 2023-03-24 08:54 残城碎梦 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 字符串的内容是由一个字符数组 char[] 来存储的,由于数组的长度及索引是整数,且String类中返回字符串长度的方法length() 的返回值也是int ,所以通过查看java源码中的类Integer我们可以看到Integer的最大范围是2^31 -1,由于数组是从0开始的,所以数组的最大长度可 阅读全文
posted @ 2023-03-23 13:46 残城碎梦 阅读(306) 评论(0) 推荐(0) 编辑
摘要: DispatcherServlet:前端控制器,作为整个SpringMVC的控制中心。用户发出请求,DispatcherServlet接收请求并拦截请求。 HandlerMapping:处理器映射器,DispatcherServlet调用HandlerMapping,HandlerMapping根据 阅读全文
posted @ 2023-03-23 09:13 残城碎梦 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 阿里巴巴Java开发手册规定 只要重写 equals,就必须重写 hashCode。 因为 Set 存储的是不重复的对象,依据 hashCode 和 equals 进行判断,所以 Set 存储的对象必须重写这两个方法。 如果自定义对象做为 Map 的键,那么必须重写 hashCode 和 equal 阅读全文
posted @ 2023-03-23 09:12 残城碎梦 阅读(72) 评论(0) 推荐(0) 编辑
摘要: 为什么使用消息队列 消息队列的常见使用场景有很多个,但是核心的有三个:解耦、异步、削峰 解耦:那种不需要直接同步调用接口的,可以考虑异步化解耦 异步:主业务执行结束后从属业务通过MQ,异步执行,减低业务的响应时间 削峰:高并发场景下,延缓用户请求,缓解应用压力 消息队列的优点和缺点? 优点: 特殊场 阅读全文
posted @ 2023-03-21 13:57 残城碎梦 阅读(37) 评论(0) 推荐(0) 编辑
摘要: 什么是反射 反射是一种能够在程序运行时动态访问、修改某个类中任意属性(状态)和方法(行为)的机制(包括private实例和方法),java反射机制提供了以下几个功能: 在运行时判断任意一个对象所属的类; 在运行时构造任意一个类的对象; 在运行时判断任意一个类所具有的成员变量和方法; 在运行时调用任意 阅读全文
posted @ 2023-03-21 12:58 残城碎梦 阅读(14) 评论(0) 推荐(0) 编辑
摘要: AOP是什么? 与OOP对比,AOP是面向切面编程。传统OOP开发中,代码逻辑是至上而下的,过程中会出现一些横切性问题,这些横切性的问题和我们的主业务逻辑关系散落在代码的各个地方,造成难以维护,AOP的编程思想就是把业务逻辑和横切的问题进行分离,从而达到解耦的目的,使代码的重用性和开发效率高(目的是 阅读全文
posted @ 2023-03-21 08:57 残城碎梦 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 为什么需要缓存 存储如MySQL通常支持完整的ACID特性,因为可靠性,持久性等因素,性能普遍不高,高并发的查询会给MySQL带来压力,造成数据库系统的不稳定。同时也容易产生延迟。根据局部性原理,80%请求会落到20%的热点数据上,在读多写少场景,增加一层缓存非常有助于提升系统吞吐量和健壮性。 存储 阅读全文
posted @ 2023-03-20 22:30 残城碎梦 阅读(16) 评论(0) 推荐(0) 编辑
摘要: Redis两种持久化的方式 1)RDB持久化可以在指定的时间间隔内生成数据集的时间点快照 2)AOF持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集,AOF文件中全部以redis协议的格式来保存,新命令会被追加到文件的末尾,redis还可以在后台对AOF文件进 阅读全文
posted @ 2023-03-20 22:01 残城碎梦 阅读(23) 评论(0) 推荐(0) 编辑
摘要: SimpleDateFormat(下面简称sdf)类内部有一个Calendar对象引用,它用来储存和这个sdf相关的日期信息,例如sdf.parse(dateStr), sdf.format(date) 诸如此类的方法参数传入的日期相关String, Date等等, 都是交由Calendar引用来储 阅读全文
posted @ 2023-03-20 13:50 残城碎梦 阅读(25) 评论(0) 推荐(0) 编辑
摘要: es 写数据过程 客户端选择一个 node 发送请求过去,这个 node 就是 coordinating node (协调节点)。 coordinating node 对 document 进行路由,将请求转发给对应的 node(有 primary shard,主分片)。 实际的 node 上的 p 阅读全文
posted @ 2023-03-20 11:21 残城碎梦 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 异步复制 多线程复制 增强半同步复制 异步复制 MySQL的复制默认是异步的,主从复制至少需要两个MySQL服务,这些MySQL服务可以分布在不同的服务器上,也可以在同一台服务器上。 MySQL主从异步复制是最常见的复制场景。数据的完整性依赖于主库binlog的不丢失,只要主库的binlog不丢失, 阅读全文
posted @ 2023-03-20 09:43 残城碎梦 阅读(88) 评论(0) 推荐(0) 编辑
摘要: 常见的受检异常如下: java.lang.ClassNotFoundException 找不到某个类 java.lang.CloneNotSupportedException 不支持克隆异常,当没有实现Cloneable接口或者不支持克隆方法时,调用其clone()方法则抛出该异常。 java.la 阅读全文
posted @ 2023-03-20 09:02 残城碎梦 阅读(147) 评论(0) 推荐(0) 编辑
摘要: NoClassDefFoundError 是一个 Error 类型的异常,是由 JVM 引起的,不应该尝试捕获这个异常。 引起该异常的原因是 JVM 或 ClassLoader 尝试加载某类时在内存中找不到该类的定义,该动作发生在运行期间,即编译时该类存在,但是在运行时却找不到了,可能是编译后被删除 阅读全文
posted @ 2023-03-20 08:47 残城碎梦 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 在一个方法中如果发生异常,这个方法会创建一个异常对象,并转交给 JVM,该异常对象包含异常名称,异常描述以及异常发生时应用程序的状态。创建异常对象并转交给 JVM 的过程称为抛出异常。可能有一系列的方法调用,最终才进入抛出异常的方法,这一系列方法调用的有序列表叫做调用栈。 JVM 会顺着调用栈去查找 阅读全文
posted @ 2023-03-20 08:42 残城碎梦 阅读(36) 评论(0) 推荐(0) 编辑
摘要: 分布式事务的实现主要有以下 5 种方案: XA 方案 TCC 方案 本地消息表 可靠消息最终一致性方案 最大努力通知方案 两阶段提交方案/XA方案 所谓的 XA 方案,即:两阶段提交,有一个事务管理器的概念,负责协调多个数据库(资源管理器)的事务,事务管理器先问问各个数据库你准备好了吗?如果每个数据 阅读全文
posted @ 2023-03-19 21:46 残城碎梦 阅读(23) 评论(0) 推荐(0) 编辑
摘要: Spring Boot目的是用来简化Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。 在过去,我们要让一个Spring项目启动,往往需要配置很多的xml配置文件,但是在使用SpringBoot之后,我们甚至无需写一行xml,就可以直接 阅读全文
posted @ 2023-03-19 21:25 残城碎梦 阅读(26) 评论(0) 推荐(0) 编辑
摘要: controller默认是单例的,不要使用非静态的成员变量,否则会发生数据逻辑混乱。正因为单例所以不是线程安全的。 如何保证并发的安全? 不要在controller中定义成员变量。 万一必须要定义一个非静态成员变量时候,则通过注解@Scope("prototype"),将其设置为多例模式。 在Con 阅读全文
posted @ 2023-03-19 21:04 残城碎梦 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 引用拷贝 创建一个指向对象的引用变量的拷贝。 对象拷贝 创建对象本身的一个副本。 注:深拷贝和浅拷贝都是对象拷贝 浅拷贝 被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。即对象的浅拷贝会对“主”对象进行拷贝,但不会复制主对象里面的对象。”里面的对象“会在原 阅读全文
posted @ 2023-03-19 21:02 残城碎梦 阅读(18) 评论(0) 推荐(0) 编辑
上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 73 下一页