1 Byte
码龄7年
关注
提问 私信
  • 博客:494,379
    494,379
    总访问量
  • 71
    原创
  • 1,190,060
    排名
  • 3,270
    粉丝
  • 64
    铁粉

个人简介:某互联网公司平台团队的打工人一枚

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:四川省
  • 加入CSDN时间: 2017-09-29
博客简介:

1 Byte 的博客

博客描述:
也曾想仗剑走天涯,看一看世界的繁华
查看详细资料
个人成就
  • 获得188次点赞
  • 内容获得98次评论
  • 获得598次收藏
  • 代码片获得4,124次分享
创作历程
  • 7篇
    2023年
  • 4篇
    2022年
  • 18篇
    2021年
  • 16篇
    2020年
  • 30篇
    2019年
  • 2篇
    2018年
成就勋章
TA的专栏
  • JVM系列
    8篇
  • 设计模式
    3篇
  • 计算机网络
    2篇
  • Centos7
    5篇
  • Java
    11篇
  • Spring
    4篇
  • 前端
    5篇
  • MySQL
    4篇
  • Tomcat
    2篇
  • Mybatis
    1篇
  • SpringMVC
    2篇
  • Nginx
    1篇
  • ElasticSearch
    1篇
  • SpringCloud
    1篇
  • Golang
    2篇
  • Git
    1篇
  • 消息中间件MQ
    1篇
  • 编程常识&工具使用
    3篇
  • 算法&面试
    7篇
  • 笔记
    2篇
  • Docker & K8S
    1篇
  • ChatGPT
    1篇
  • 路途
  • 架构设计与方案
  • AndroidWeb
    2篇
  • Linux
    3篇
  • SpringBoot
    6篇
  • Redis
    1篇
兴趣领域 设置
  • 数据结构与算法
    排序算法推荐算法
  • 人工智能
    迁移学习分类
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

354人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

利用枚举实现策略模式

演示的demo 是以拉取短视频平台up主数据为背景,调用三方接口可能返回诸如:被限流、拉取数据失败、拉取数据次数超过每日上限等状态,而对于每种状态如果用 if else进行分支逻辑处理,一旦分支逻辑过多,代码会显得冗余且可读性较差,所以采用策略者模式进行代码优化。
原创
发布博客 2023.04.20 ·
1958 阅读 ·
4 点赞 ·
1 评论 ·
11 收藏

JVM垃圾收集算法与垃圾收集器(Serial、ParNew、CMS) —JVM系列(四)

目前大多数垃圾收集器都是采用的分代收集算法,该算法其实算是一种思想:根据对象存活周期的不同而将内存分为年轻代和老年代,这样就可以根据各个年代的特点选择合适的垃圾收集算法。比如在年轻代中,每次收集都会有绝大多数对象死去(没有被GC root所引用),可以选择复制算法,只需要付出少量对象的复制成本就可以完成每次垃圾收集;而老年代中的对象存活几率比较高,并且没有额外的空间对其进行分配担保,所以选择标记清除算法或者标记整理算法进行垃圾回收;需要注意,通常来讲标记清除算法或标记整理算法会比复制算法慢上许多!
原创
发布博客 2023.04.09 ·
1910 阅读 ·
4 点赞 ·
3 评论 ·
4 收藏

与ChatGPT浅聊Pulsar

最后,Pulsar还提供了多种保证交付的机制,如At-least-once和Exactly-once,以确保每条消息都被正确地传递和处理。Pulsar的底层原理是基于分布式日志存储的架构,它采用了类似于Kafka的思想,将消息存储在一个可水平扩展的、可持久化的分布式存储引擎中,同时支持多租户。在发布/订阅模式下,消息发布者将消息发布到一个主题中,订阅者可以订阅该主题,并接收到所有发布到该主题的消息。在队列模式下,消息发送者发送消息到一个队列中,每个消费者从队列中获取消息,消费者之间实现负载均衡。
原创
发布博客 2023.04.03 ·
6475 阅读 ·
2 点赞 ·
1 评论 ·
1 收藏

Spring 6 IOC容器加载过程与核心方法refresh源码浅析

本篇只对主线核心逻辑进行梳理分析,本篇以AnnotationConfigApplicationContext容器为例进行切入分析【Spring版本为: v6.0.2】
原创
发布博客 2023.04.01 ·
3218 阅读 ·
5 点赞 ·
4 评论 ·
5 收藏

Spring 6 源码编译教程分享~

Spring Boot 3 RELEASE版本于 2022年11月24日 正式发布,此次Spring Boot里程碑的升级也要求了最低JDK 17 和 Spring Framework 6 ,其核心框架的 Spring 也在 2022年11月16日 迎来了从 5.3.x 到 6.0.x 重大版本升级,借着这个机会,写一篇关于 Spring 6 源码编译的教程分享。
原创
发布博客 2023.04.01 ·
3767 阅读 ·
3 点赞 ·
3 评论 ·
8 收藏

centos 7下安装Docker(附根据操作系统日志排查问题思路)

1、Docker 要求 CentOS 系统的内核版本高于 3.10,通过uname -r命令查看你当前的内核版本 2、使用root权限登录 Centos。确保 yum 包更新到最新。6、可以查看所有仓库中所有docker版本,并选择特定版本安装
原创
发布博客 2023.03.28 ·
3123 阅读 ·
2 点赞 ·
0 评论 ·
2 收藏

windows的cmd界面下使用jps命令提示:‘jps‘ 不是内部或外部命令,也不是可运行的程序或批处理文件

使用jps提示:‘jps’ 不是内部或外部命令,也不是可运行的程序或批处理文件,但是使用java -version却正常。
原创
发布博客 2023.03.11 ·
4918 阅读 ·
3 点赞 ·
2 评论 ·
4 收藏

解决PageHelper循环依赖:com.github.pagehelper.autoconfigure.PageHelperAutoConfiguration

PageHelper循环依赖解决com.github.pagehelper.autoconfigure.PageHelperAutoConfiguration
原创
发布博客 2022.07.15 ·
7114 阅读 ·
23 点赞 ·
3 评论 ·
19 收藏

Mac使用brew优雅切换golang版本,丝滑

使用brew切换golang版本先升级brewbrew update解绑当前版本绑定brew unlink go🔍搜索可安装的go版本列表> brew search gogo@1.13 go@1.14 go@1.15 go@1.16 go@1.17 go@1.18选择想切换的版本,如这里安装go@1.18brew install go@1.18绑定版本关系brew link go@1.18🆕刷新下配置文件source .bash_p
原创
发布博客 2022.04.21 ·
7670 阅读 ·
0 点赞 ·
0 评论 ·
5 收藏

Java获取指定年份每一个周的日期范围

需求场景:简述项目相关背景:接到项目组需求,给定年份,返回对应该年份所有周的日期范围代码:思路:一步一步来,从第1周到最后1周,最后返回list,列表的大小即是该年份的总周数public class YearWeeksUtil { public static final String START_TIME = "startTime"; public static final String END_TIME = "endTime"; /** * 获取某年某周
原创
发布博客 2022.03.30 ·
2702 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

Java对象和Map互相转换

/** * 将对象装换为map * * @param bean * @return */ public static <T> Map<String, Object> beanToMap(T bean) { Map<String, Object> map = Maps.newHashMap(); if (bean != null) { BeanMap bean.
原创
发布博客 2022.01.05 ·
1590 阅读 ·
0 点赞 ·
1 评论 ·
1 收藏

Redisson读写锁

在高并发场景下如果只用一把互斥锁会出现哪些问题?同一时间只能有一个请求占用,如果是大量的并发上来,性能是会急剧下降的,所有的请求都得加锁比如如果数据没有进行任何修改的话,是不需要加锁的。如果读数据的请求还没读完,这个时候来了一个写请求,这个时候是不能写数据的,不然数据就不正确了,要等到前面读锁全部释放掉以后,写请求才能执行,所以需要给这个读请求加一个标识(读锁),让写请求知道,这个时候是不能修改数据的,不然数据就不一致了。如果已经有人在写数据了,再来一个请求写数据,也是不允许的,这样也会导致数据的不
原创
发布博客 2021.10.08 ·
2724 阅读 ·
1 点赞 ·
1 评论 ·
8 收藏

简析jvm的调优方案

调优时机:heap 内存(老年代)持续上涨达到设置的最大内存值;Full GC 次数频繁;GC 停顿时间过长(超过1秒);应用出现OutOfMemory 等内存异常;应用中有使用本地缓存且占用大量内存空间;系统吞吐量与响应性能不高或下降。调优原则:多数的Java应用不需要在服务器上进行JVM优化;多数导致GC问题的Java应用,都不是因为我们参数设置错误,而是代码问题;在应用上线之前,先考虑将机器的JVM参数设置到最优(最适合);减少创建对象的数量;减少使用全局变量和大对象;
原创
发布博客 2021.09.28 ·
1161 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

ThreadLocal原理分析与使用场景

什么是ThreadLocal?ThreadLocal是线程本地存储,在每个线程中都创建了一个ThreadLocalMap对象,每个线程可以访问自己内部ThreadLocalMap对象内的value。ThreadLocal的本质就是一个内部的静态的map,key是当前线程的句柄,value是需要保持的值。由于是内部静态map,不提供遍历和查询的接口,每个线程只能获取自己线程的value。这样,就线程安全了,又提供了数据共享的能力。示例:public class ConnectionManager {
原创
发布博客 2021.09.27 ·
1801 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

Java代码实现循环队列

循环队列结构Java代码实现循环队列// 基于数组实现一个循环链表public class CircleArrayQueue<T> { // 定义数组用于存放数据 private T[] arr; private int head; // 记录队列头 private int tail; // 记录队列尾 private int size; // 数组大小 // 循环链表初始化 public CircleArrayQueue(
原创
发布博客 2021.09.26 ·
2301 阅读 ·
2 点赞 ·
0 评论 ·
5 收藏

CopyOnWriteArrayList适用场景与原理分析

CopyOnWriteArrayList 简介CopyOnWrite机制又称为写时复制:public class CopyOnWriteArrayList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable {}在很多应用场景中,读操作可能会远远大于写操作。由于读操作根本不会修改原有的数据,因此如果每次读取都进行加锁操作,其实是一种资源浪费。我们应该允许多个线程同时访问 List
原创
发布博客 2021.09.26 ·
3207 阅读 ·
2 点赞 ·
0 评论 ·
2 收藏

Java代码实现栈结构

栈结构Java代码实现栈结构// 利用数组实现一个栈结构public class ArrayStack<T> { // 声明数组 private T[] arr = (T[])new Object[1]; // 栈元素初始数量 private int num = 0; public ArrayStack(int size){ this.arr = (T[])new Object[size]; } // 入栈(压
原创
发布博客 2021.09.26 ·
1459 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

Java代码实现ArrayList

ArrayList结构图Java代码实现ArrayList注意点:注意数组下标越界问题public class MyArrayList<E> { // 数组长度 private int size; // 数组已存数据的大小 private int index; // 声明数组 private E dadaArr[]; // 构造函数完成初始化 public MyArrayList(int size){ t
原创
发布博客 2021.09.26 ·
1540 阅读 ·
2 点赞 ·
0 评论 ·
2 收藏

力扣:9. 回文数

题目:给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。示例 2:输入:x = -121输出:false解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。解法:这题和第7题整数反转类似,比较简单,不多赘述class Solution { public boolean isPalindrome(in
原创
发布博客 2021.09.25 ·
403 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

力扣:7. 整数反转

题目:给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。示例 1:输入:x = -123输出:-321解法:class Solution { public int reverse(int x) { // 注意int类型反转后的数值可能超出int的表示范围,所以结果用long来存
原创
发布博客 2021.09.25 ·
363 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多