摘要:
一、背景 在做电商项目时,会遇到这样的一种情况,mysql数据库中商品表tb_product里面有个字段type,它存储的是商品类型,比如: 1:热门推荐; 2:精选推荐; 3:品牌商品等。 有些商品既属于热门推荐,也属于精选推荐,同时还是品牌商品,系统中type中用 1,2,3 这样的格式存储。 阅读全文
摘要:
一、线程池概述 1、什么是线程池?为什么使用线程池? 线程池的优势: 第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 第二:提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。 第三:提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资 阅读全文
摘要:
一、jdk8的实现原理 JDK8的实现已经抛弃了Segment分段锁机制,利用CAS+Synchronized来保证并发更新的安全,底层依然采用数组+链表+红黑树的存储结构。 二、变量解释 1. table:默认为null,初始化发生在第一次插入操作,默认大小为16的数组,用来存储Node节点数据, 阅读全文
摘要:
一、背景 多线程数量的问题,一般情况下,多线程数量要等于机器CPU核数-1。 二、实例 1、解决问题:如何让n个线程顺序遍历含有n个元素的List集合 import java.util.ArrayList; import java.util.List; import org.apache.commo 阅读全文
摘要:
一、背景 用多线程接收推送的订单数据,把接收的订单数据存到一个表中。 实现的需求是:如果接收的订单消息在数据库中已经存在,那么执行update操作; 如果没有存在,那么执行insert操作代码逻辑: if(oderid != null){ //该记录已存在 update(); }else{ //写入 阅读全文
摘要:
一、背景 1、在现实生活中我们经常遇到由推荐人注册,比如一个购物平台,用户A推荐用户B注册,那当B购买商品成功时,用户A就会拿到相应的提成。 只要是用户A推荐的用户购买商品成功后,A用户都会拿到提成。 当用户B推荐了用户C,那当用户C购买商品成功时,用户B和用户A都可以拿到相对应的提成。 如果用户C 阅读全文
摘要:
直接上代码: 一、简单判断是否为json格式 ,判断规则:判断首尾字母是否为{}或[],如果都不是则不是一个JSON格式的文本。 public static boolean getJSONType(String str) { boolean result = false; if (StringUti 阅读全文
摘要:
需求一:这种不需要传任何参数 一、数据库存储的菜单结果: parentid为0的都是根节点,也就是一级菜单,后面的子菜单的parentid为父菜单的ID。 二、MenuDTO类(菜单类)的结构: @Date public class MenuDTO { private Integer id; pri 阅读全文
摘要:
一、时间戳的比较 一般都用它来做登录判断,比如登录的时候检查该用户是否还在有效期范围内,如果不在开始时间与结束时间之内,那么就表明该用户已经过期; 这样的话,首先就可以想起三个参数,第一个需要获取当前系统时间,因为登录的时候需要根据当前时间来判断, 该用户是否还在有效期之内,然后再用数据库中获取该用 阅读全文