• Java面试题以及答案(二)集合

    2023-01-02 Java 0 ℃
    2.1常见的数据结构(了解) 常用的数据结构有:数组,栈,队列,链表,树,散列,堆,图等 数组是最常用的数据结构,数组的特点是长度固定,数组的大小固定后就无法扩容了 ,数组只能存储一种类型的数据 ,添加,删除的操作慢,因为要移动其他的元素。 栈是一种基于先进后出(FILO)的数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。它按照先进后出的原则存储数...
  • Java面试题以及答案(三)多线程(必会)

    2023-01-02 Java 0 ℃
    3.1什么是线程?线程和进程的区别?(了解) 线程:是进程的一个实体,是 cpu 调度和分派的基本单位,是比进程更小的 可以独立运行的基本单位。 进程:具有一定独立功能的程序关于某个数据集合上的一次运行活动,是操作 系统进行资源分配和调度的一个独立单位。 特点:线程的划分尺度小于进程,这使多线程程序拥有高并发性,进程在运行 时各自内存单元相互独立,线程之间...
  • 如何防止用户重复提交订单?(上)

    2022-12-30 Java 0 ℃
    一、摘要 对于投入运营的软件系统,最近小编在巡检项目数据库的时候,发现某些表存在不少的重复数据,对于这样的脏数据,初步分析大致的来源有以下可能: * 1.由于用户误操作,多次点击表单提交按钮 * 2.由于网速等原因造成页面卡顿,用户重复刷新提交页面 * 3.黑客或恶意用户使用 postman 等网络工具,重复恶意提交表单 这些情况都可能会导致表单重复提交,造...
  • 如何防止用户重复提交订单?(中)

    2022-12-30 Java 0 ℃
    一、摘要 在上一篇文章中,我们详细的介绍了对于下单流量不算高的系统,可以通过请求唯一ID+数据表增加唯一索引约束这种方案来实现防止接口重复提交! 随着业务的快速增长,每一秒的下单请求次数,可能从几十上升到几百甚至几千。 面对这种下单流量越来越高的场景,此时数据库的访问压力会急剧上升,上面这套方案全靠数据库来解决,会特别吃力! 对于这样的场景,我们可以选择引入...
  • 如何防止用户重复提交订单?(下)

    2022-12-30 Java 0 ℃
    一、摘要 在上一篇文章中,我们详细的介绍了随着下单流量逐渐上升,为了降低数据库的访问压力,通过请求唯一ID+REDIS分布式锁来防止接口重复提交,流程图如下! 每次提交的时候,需要先调用后端服务获取请求唯一ID,然后才能提交。 对于这样的流程,不少的同学可能会感觉到非常鸡肋,尤其是单元测试,需要每次先获取submitToken值,然后才能提交! 能不能不用这...
  • Java8特性去重

    2022-12-16 Java 0 ℃
    单个元素的时候直接去重 List myList = list.stream().distinct().collect(Collectors.toList());...
  • list集合去除重复的元素

    2022-12-16 Java 0 ℃
    1.创建一个set集合 2.添加元素到set集合中 //合并满元增活动 if(!CollectionUtils.isEmpty(gavePromotions)){ TreeSet promotions = new TreeSet(Comparator.comparing(Promotion::getRawId)); promotions.addAll(gav...
  • list中添加元素传参

    2022-12-16 Java 0 ℃
    ...
  • list集合根据对象某属性求和,最大值等

    2022-12-16 Java 0 ℃
    先初始化集合并添加数据 //实体类 public class Student { private int mathScoresInt; //数学成绩 private long mathScoresLong;//数学成绩 private float mathScoresFloat;//数学成绩 private double mathScoresDouble;/...
  • list去重并统计个数

    2022-12-16 Java 0 ℃
    ...