Jesslili
码龄5年
关注
提问 私信
  • 博客:161,930
    社区:1
    161,931
    总访问量
  • 172
    原创
  • 13,874
    排名
  • 187
    粉丝

个人简介:java小小白

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:陕西省
  • 加入CSDN时间: 2019-12-26
博客简介:

myjess’s blog

查看详细资料
  • 原力等级
    当前等级
    3
    当前总分
    421
    当月
    18
个人成就
  • 获得375次点赞
  • 内容获得58次评论
  • 获得1,113次收藏
  • 代码片获得1,514次分享
创作历程
  • 2篇
    2025年
  • 4篇
    2024年
  • 2篇
    2022年
  • 26篇
    2021年
  • 148篇
    2020年
成就勋章
TA的专栏
  • JAVA
    29篇
  • Mybatis
    8篇
  • SpringBoot
    8篇
  • springboot微信点餐系统
    11篇
  • JAVA并发编程
    10篇
  • JVM
    16篇
  • Docker
    6篇
  • LeetCode
    2篇
  • 微服务
    1篇
  • Java web
    13篇
  • servlet
    7篇
  • Spring
    7篇
  • 数据结构与算法
    25篇
  • 数据结构与算法--练习
    10篇
  • Redis
    11篇
  • Python
    3篇
  • MySQL
    15篇
  • JDBC
    2篇
兴趣领域 设置
  • 大数据
    mysqlredis
  • 后端
    spring
  • 服务器
    linux
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

什么是SpringBoot自动装配?(含图文详解)

SpringBoot 的自动配置是 SpringBoot 框架的核心特性之一。可以自动配置和加载 SpringBoot 所需的各种组件和功能,从而大大的减少开发人员手动配置的工作。在传统的 Spring 应用程序中,我们需要手动配置各种组件,如数据源、Web 容器、事务管理器等。这些配置需要编写大量的 XML 配置文件或 Java 配置类,增加了开发的工作量和复杂性。而 SpringBoot 的自动装配通过约定优于配置的理念,根据项目的依赖和配置信息,自动进行配置,使得开发人员无需进行大量的手动配置。用 R
原创
发布博客 2025.03.02 ·
940 阅读 ·
26 点赞 ·
0 评论 ·
21 收藏

秒杀系统的常用架构是什么?怎么设计?

假设消费者拿到一条消息,先判断消息的发送时间,如果这条消息的发送时间和当前时间已经超过了一个阈值(1 分钟),那么就认为出现了消息积压,则将这些消息直接放入 Redis。不同的 MQ 解决方案不同,一个简单通用的方案是:加一张消息发送表,先在消息发送表中记录“待处理”然后再给 MQ 发消息,消费者(下单服务)收到消息生成完订单后,回调发送者(抢购服务)将记录改为“已处理”。设置一个定时任务,隔一段时间去扫描消息发送表,如果发现有消息一直没有被处理,消息很有可能丢失了,那就重发该消息。
原创
发布博客 2025.02.27 ·
1810 阅读 ·
22 点赞 ·
0 评论 ·
21 收藏

初识微服务架构

将所有业务集中在一个项目中开发,打成一个包部署。优点:1. 架构简单 2. 部署成本低缺点:耦合度高根据业务功能对系统进行拆分,每个业务模块作为一个独立的项目开发,称为一个服务。优点:1. 耦合度底 2. 有利于服务升级拓展。
原创
发布博客 2024.10.25 ·
200 阅读 ·
7 点赞 ·
0 评论 ·
4 收藏

并查集 --- Java通用模版

并查集常用于处理大规模数据下的元素分组问题,特别是在数据量极大时,使用正常的数据结构可能会导致空间或时间复杂度过高。并查集通过其高效的数据处理能力,能够在有限的时间内完成元素的合并和查询操作,特别适用于竞赛编程和实际工程应用中。leetcode题目: 冗余连接 冗余连接 II 省份数量 最长连续序列 统计无向图中无法互相达到的点数并查集(Union-find Sets)是一种非常精巧而实用的数据结构,它主要用于处理一些不相交集合的合并问题。
原创
发布博客 2024.10.21 ·
398 阅读 ·
7 点赞 ·
1 评论 ·
1 收藏

HTTP快速入门

HTTP 协议主要由三大部分组成:● 起始行(start line):描述请求或响应的基本信息;● 头部字段(header):使用 key-value 形式更详细地说明报文;● 消息正文(entity):实际传输的数据,它不一定是纯文本,可以是图片、视频等二进制数据。其中起始行和头部字段并成为 请求头 或者 响应头,统称为 Header;消息正文也叫做实体,称为 body。例如:http://www.someSchool.edu/someDepartment/home.index。
原创
发布博客 2024.10.21 ·
1262 阅读 ·
15 点赞 ·
1 评论 ·
11 收藏

nginx 快速入门

动静分离是让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,我们就可以根据静态资源的特点将其做缓存操作,这就是网站静态化处理的核心思路,实际上,何谓动?简单来说就是使用分布式的场景,将原先的一台服务器做成一个集群,然后将请求分发到各个服务器上,但是,如何将请求每次转发到不同的服务器呢,Nginx就可以做到。原来我们都是直接访问服务器,现在我们可以使用Nginx 进行反向代理,然后我们访问Nginx,由Nginx将我们的请求分发到不同的服务器上,以实现负载均衡。
原创
发布博客 2024.10.21 ·
1212 阅读 ·
11 点赞 ·
0 评论 ·
17 收藏

常用数据结构与算法总结(含例题和完整代码)

一、位运算● ^ 可理解为不进位相加● a^a=0● a^0=a题目一一组数中,只有一个数出现的次数是奇数,其他数字出现的次数都为偶数,找出这个出现次数为奇数的数。public static void printOddTimesNum1(int[] arr) { int eor = 0; for (int i : arr) { eor ^= i; } System.out.println(eor);}题目二一组数中,只有两个数出现的次数是奇
原创
发布博客 2022.04.23 ·
6652 阅读 ·
18 点赞 ·
4 评论 ·
165 收藏

常见的设计模式详解

设计模式的类型模式可以分为三大类:创建型模式、结构型模式、行为型模式。GoF的23种设计模式:设计模式的七大原则1、开闭原则(Open Close Principle)开闭原则的意思是:对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。简言之,是为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类,后面的具体设计中我们会提到这点。2、里氏代换原则(Liskov Substitution Principle)里氏代换
原创
发布博客 2022.03.06 ·
1053 阅读 ·
3 点赞 ·
1 评论 ·
7 收藏

Java内存模型(JMM)、volatile以及CAS详解

接上篇 juc–并发编程的核心问题总结②一、异步回调1. 什么是异步回调我们平时最常见的是同步回调,同步回调是会阻塞的,单个的线程需要等待结果的返回才能继续执行。假设有两个任务A和B,A任务中需要使用B任务计算成果,有两种方法实现:A和B在同一个线程中顺序执行。即先执行B,得到返回结果之后再执行A。A和B并行执行。当A需要B的计算结果时如果B还没有执行完,A可以先做其他的工作,避免阻塞,过一段时间后再询问一次B。我们可以直接在A中写一个方法对B处理完的结果进行处理,然后B处理完之
原创
发布博客 2021.11.18 ·
820 阅读 ·
3 点赞 ·
1 评论 ·
1 收藏

Fork/Join的使用与原理解析

一、什么是ForkJoinJava 7开始引入了一种新的Fork/Join线程池,它可以把一个大任务拆成多个小任务并行执行,然后汇总每个小任务的执行结果得到这个大任务的最终结果。Fork/Join任务的原理:判断一个任务是否足够小,如果足够小则直接计算,否则,就分拆成几个小任务分别计算。fork():在当前线程运行的线程池中创建一个子任务;join():模块子任务完成的时候返回任务结果;二、工作窃取大任务被分割为独立的子任务,并且子任务分别放到不同的队列里,并为每个队列创建一个线程来执行队列里
原创
发布博客 2021.11.18 ·
717 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

juc之ReadWriteLock读写锁与线程池

接上篇 juc–并发编程的核心问题总结①一、读写锁ReadWriteLock
原创
发布博客 2021.11.16 ·
731 阅读 ·
1 点赞 ·
1 评论 ·
0 收藏

juc之lock锁、八锁问题、以及常用辅助类

文章中表明星号的地方说明是需要重点掌握的一、juc基础知识1. 什么是jucjava.util.concurrent (juc是包名的简写)在并发编程中使用的工具类,是关于并发编程的API。2. 线程和进程线程是程序执行的最小单位,而进程是操作系统分配资源的最小单位。一个进程由一个或多个线程组成,线程是一个进程中代码的不同执行路线。线程上下文切换比进程上下文切换要快得多。进程之间相互独立,但同一进程下的各个线程之间共享程序的内存空间(包括代码段,数据集,堆等)及一些进程级的资源,某进程.
原创
发布博客 2021.11.15 ·
1179 阅读 ·
3 点赞 ·
2 评论 ·
1 收藏

深入理解java中volatile的特性

一、 对volatile的理解1. volatile是java虚拟机提供的轻量级的同步机制。保证可见性不保证原子性禁止指令重排保证可见性什么是可见性?JMM(java内存模型)JMM是一个抽象的概念本身不存在,它描述的是一组规范,通过这组规范定义了程序中各个变量的访问方式。可见性原子性有序性由于JVM运行程序的实体是线程,而每个线程创建时JVM都会为其创建一个工作内存(有些地方称为栈空间),工作内存是每个线程的私有数据区域,而Java内存模型中规定所有变量都存储在主内存,
原创
发布博客 2021.09.15 ·
352 阅读 ·
0 点赞 ·
1 评论 ·
1 收藏

java集合源码分析②----LinkedList添加元素的过程

LinkedList底层是一个双向链表由下图源码看看出LinkedList实现了Deque接口,所以LinkedList还可以作为队列和栈来使用。静态内部类Node,表示双向链表的结点:LinkedList添加元素的过程(add过程)final Node l = last; //当前节点的最后一个节点final Node newNode = new Node<>(l, e, null); 定义新节点示例: LinkedList<String> list =
原创
发布博客 2021.08.12 ·
500 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

java集合源码分析①----ArrayList

ArrayList集合ArrayList底层就是一个长度可以动态调整的Object数组有一个记录数组长度的size字段数组是默认长度是10,还准备有一个空的数组。ArrayList有一个父类,并实现了List等多个接口(RandomAccess, Cloneable, java.io.Serializable接口中一个方法也没有)无参创建:ArrayList list = new ArrayList();JDK1.7中,使用无参数构造方法创建ArrayList对象时,默认底层数组长度
原创
发布博客 2021.08.08 ·
178 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

JAVA中的集合都是线程安全的吗?

原创
发布博客 2021.07.24 ·
404 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

JUC---线程间定制化通信

此博客案例来自尚硅谷JUC视频一、线程间的通信实现两个线程(AA、BB),使得AA线程+1,BB线程-1package com.jess.sync;/** * @program: JUC * @description: 线程间的通信 * @author: Jess * @create: 2021-07-23 13:48 **///第一步 创建资源类,定义属性和操作方法class Share { //初始值 private int number = 0; //.
原创
发布博客 2021.07.23 ·
263 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

redis数据结构与对象--常见问题

文章目录1. redis中5种数据类型的编码方式是什么?2. 为什么redis不共享包含字符串的对象?3. 为什么有序集合需要同时使用跳跃表和字典来实现?4. 有序集合同时使用跳跃表和字典会浪费内存吗?5. redis是怎样实现内存回收的?1. redis中5种数据类型的编码方式是什么?①STRING(字符串对象):int、raw、embstrint 编码:值可以用 long 类型保存的整数raw 编码:值可以用 long double 类型保存的浮点数embstr 编码:(只读,修改时需转化为
原创
发布博客 2021.04.26 ·
204 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

MySQL解决并发事务带来的问题--锁--锁的内存结构

上篇:MySQL解决并发事务带来的问题–锁InnoDB锁的内存结构对一条记录加锁的本质就是在内存中创建一个锁结构与之关联,那么是不是一个事务对多条记录加锁,就要创建多个锁结构呢?如果一个事务要获取10000条记录的锁,就要生成10000个这样的结构,开销就太大了。InnoDB在对不同记录加锁时,如果符合下边这些条件,那么这些记录的锁就可以被放到一个锁结构中:在同一个事务中进行加锁操作被加锁的记录在同一个页面中加锁的类型是一样的等待状态是一样的锁所在的事务信息:哪个事务生
原创
发布博客 2021.04.19 ·
352 阅读 ·
0 点赞 ·
1 评论 ·
1 收藏

MySQL事务的隔离级别与MVCC详解

一、事务的隔离级别先创建一个表:#主键命名为number,而不是id,是想和后边要用到的事务id做区别CREATE TABLE hero (number INT,name VARCHAR(100),country varchar(100),PRIMARY KEY (number)) Engine=InnoDB CHARSET=utf8;INSERT INTO hero VALUES(1, '刘备', '蜀');对于同一个服务器来说,可以有若干个客户端与之连接,每个客户端与服务器连接上
原创
发布博客 2021.04.19 ·
395 阅读 ·
2 点赞 ·
0 评论 ·
4 收藏
加载更多