![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java后端
文章平均质量分 59
脚踏实地,仰望星空
加油,坚持努力。
展开
-
定时任务编写
定时任务模板类。原创 2022-12-06 21:23:59 · 269 阅读 · 0 评论 -
Quartz 源码解析(三) —— QuartzSchedulerThread
一:大概内容QuartzSchedulerThread线程的创建和启动 线程run()方法逻辑 线程的协作二:线程的创建和启动这里主要回顾一下QuartzSchedulerThread是在什么时候创建的,又是在什么时候start的。大概流程如下图StdSchedulerFactory.instantiate():生产StdScheduler过程中会new一个QuartzScheduler实例qs = new QuartzScheduler(rsrcs, idleWaitTi原创 2022-05-01 00:18:17 · 1487 阅读 · 0 评论 -
Quartz 源码解析(二) —— Scheduler的初始化
一:初始化流程// 创建一个ScheduleFactorySchedulerFactory sfact = new StdSchedulerFactory();Scheduler scheduler = sfact.getScheduler();scheduler.start();创建StdSchedulerFactory和StdScheduler。SchedulerFacotory,顾名思义,就是生产Scheduler实例的工厂类。下面的代码逻辑这么多,就是为了创建一个Scheduler原创 2022-04-28 15:06:09 · 1585 阅读 · 0 评论 -
XXL-JOB使用和源码分析(1)
一:源码的下载下载地址二:本地启动三:页面效果四:整合springboot五:运行效果原创 2022-04-10 23:31:32 · 286 阅读 · 0 评论 -
slf4j源码解析
一:slf4j源码解析原创 2022-03-22 00:16:10 · 372 阅读 · 1 评论 -
为什么阿里规定需要在事务注解@Transactional中指定rollbackFor?
阿里巴巴Java规范:方法【edit】需要在Transactional注解指定rollbackFor或者在方法中显示的rollback。1.异常的分类先来看看异常的分类error是一定会回滚的。Exception是异常,他又分为运行时异常RuntimeException和非运行时异常 可查的异常(checked exceptions): Exception下除了RuntimeException外的异常 不可查的异常(unchecked exceptions): Runt.转载 2021-07-06 23:23:43 · 718 阅读 · 0 评论 -
微信红包架构设计,高并发系统应用实战
一:微信红包架构设计,高并发系统应用实战1. 微信红包架构1.1 业务场景微信红包(尤其是发在微信群里的红包,即群红包)业务形态上很类似网上的普通商品“秒杀”活动。用户在微信群里发一个红包,等同于是普通商品“秒杀”活动的商品上架;微信群里的所有用户抢红包的动作,等同于“秒杀”活动中的查询库存;用户抢到红包后拆红包的动作,则对应“秒杀”活动中用户的“秒杀”动作。不过除了上面的相同点之外,微信红包在业务形态上与普通商品“秒杀”活动相比,还具备自身的特点:首先,微信红包业务比普通商品“秒杀原创 2021-06-29 23:47:44 · 1075 阅读 · 0 评论 -
大数据查找中位数
所有数据不能一下子读入内存 中位数 --> 需要遍历所有数据2. 基本知识b --> bit 比特,位(二进制中的位) B --> Byte 字节,1个字节=8位,1B=8bit K --> KB 千字节,1KB = 1024B M --> MB 兆字节,1M = 1024KB = 1024*1024B G --> GB 1GB = 1024MB、问题分析:100亿个32位整数,那么占用内存为:100亿*32 b = 100亿*32/8 B.原创 2021-06-24 10:57:11 · 390 阅读 · 0 评论 -
谈谈线上CPU100%排查套路
一:谈谈线上CPU100%排查套路下面给出两种系统环节下的排查步骤,都是一模一样的,只是命令稍有区别!查消耗cpu最高的进程Pid 根据Pid查出消耗cpu最高的线程号 根据线程号查出对应的java线程,进行处理。准备一行死循环代码public class TestFor { public static void main(String[] args) { int random = 0; while (random < 100) {原创 2021-06-23 23:33:59 · 191 阅读 · 0 评论 -
BitMap
1. BitMapBit-map的基本思想就是用一个bit位来标记某个元素对应的Value,而Key即是该元素。由于采用了Bit为单位来存储数据,因此在存储空间方面,可以大大节省。(PS:划重点节省存储空间)假设有这样一个需求:在20亿个随机整数中找出某个数m是否存在其中,并假设32位操作系统,4G内存在Java中,int占4字节,1字节=8位(1 byte = 8 bit)如果每个数字用int存储,那就是20亿个int,因而占用的空间约为 (2000000000*4/1024/102...原创 2021-06-09 23:06:20 · 337 阅读 · 0 评论 -
反射
一:反射1:代码实现Student实体类:package com.github.plugin.reflection;/** * @author lizhangyu * @version 1.0 * @description * @date 2021/5/13 10:51 */public class Student { /** * 姓名 */ public String name; /** * 性别 */原创 2021-05-13 11:41:06 · 69 阅读 · 0 评论 -
String、StringBuilder、StringBuffer之间的区别
String中的++符合操作的原理/** * @author lizhangyu * @date 2020/6/13 1:30 */public class StringOperator { public static void main(String[] args) { StringBuffer sbf = new StringBuffer(); String a = "a"; String b = "b"; Str原创 2020-06-13 12:19:24 · 249 阅读 · 0 评论 -
Springboot事务的实现原理
Springboot事务的实现原理Spring实现事务的方式分为编程式和声明式,其中声明式是最为常见的,声明式事务的实现又分为XML配置文件、@Transactional注解两种实现方式,SpringBoot因为取消了XML配置文件的书写,所以SpringBoot中的事务主要是使用@Transactional注解来实现的,下面从源码角度分析其原理已知@Transactional事务实现的原理是基于AOP来实现的,在之前的博客中详细讲解了AOP的实现原理:动态代理+拦截链,由此可以大概推测出@Tr原创 2020-06-12 12:02:13 · 3869 阅读 · 0 评论 -
验证码的生成
import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.image.BufferedImage;import java.io.IOException;import java.util.Random;import javax.imageio.ImageIO;import j...原创 2019-11-15 14:22:25 · 114 阅读 · 0 评论 -
获取客户端IP地址
import javax.servlet.http.HttpServletRequest;/** * 获取客户端IP地址 * @author admin * @Date 2018-11-26 */public class IpUtils { /** * IP请求头候选列 */ private static final String[] IP_HEADER_CAND...原创 2019-11-15 14:18:44 · 235 阅读 · 0 评论 -
ModelMapper:从对象到对象的映射库
ModelMapper的maven依赖<!-- https://mvnrepository.com/artifact/org.modelmapper/modelmapper --> <dependency> <groupId>org.modelmapper</groupId> <artifactId>...原创 2019-08-21 23:38:47 · 566 阅读 · 0 评论 -
js将RFC3339时间格式转换为正常格式
后台的时间转换数据库表对时间字段的设计为DateTime类型,但是在通过逆向生成的时候为Date类型,因此导致数据库的类型和实体类的类型不一致,导致查出来的值有,但是实体类对应的属性值为null。而这个问题在逆向生成的时候考虑到了,就是通过时间戳的类型进行实现。<resultMap id="BaseResultMap" type="com.github.springbootmiao...原创 2019-07-16 00:33:08 · 4271 阅读 · 0 评论 -
Lombok 介绍
转发博客地址:https://blog.csdn.net/motui/article/details/79012846转载 2019-07-11 15:18:51 · 124 阅读 · 0 评论 -
spring boot +Swagger-ui 自动生成API文档
随着互联网技术的发展,现在的网站架构基本都由原来的后端渲染,变成了:前端渲染、先后端分离的形态,而且前端技术和后端技术在各自的道路上越走越远。这样后段开发好了api 之后就要提交api 文档给前端的朋友。给前端的api 文档各个公司有各个公司的要求,有的是word 有的是 md 文档,或者是 postman 的一个连接。好了废话不多说说一下 swagger -ui 吧什么是Swagge...原创 2019-07-07 17:49:36 · 436 阅读 · 0 评论