编程芝士
码龄4年
  • 502,486
    被访问
  • 246
    原创
  • 11,981
    排名
  • 13,142
    粉丝
关注
提问 私信

个人简介:努力努力,为了家人和蝈蝈!

  • 加入CSDN时间: 2018-03-14
博客简介:

愿万事胜意

博客描述:
点个关注呗
查看详细资料
  • 7
    领奖
    总分 3,324 当月 146
个人成就
  • 获得802次点赞
  • 内容获得472次评论
  • 获得5,186次收藏
创作历程
  • 1篇
    2022年
  • 95篇
    2020年
  • 150篇
    2019年
  • 9篇
    2018年
成就勋章
TA的专栏
  • 消息队列
    1篇
  • 操作系统
    4篇
  • Java基础学习
    47篇
  • SpringBoot
    7篇
  • Docker
    1篇
  • Redis
    11篇
  • Linux
    7篇
  • SSM
    14篇
  • Spring
    6篇
  • MyBatis
    5篇
  • SpringMVC
    2篇
  • JavaWeb
    14篇
  • 设计模式
    9篇
  • 数据结构与算法
    32篇
  • JVM
    4篇
  • JDBC
    8篇
  • 数据库
    19篇
  • LeetCode
    9篇
  • C++
    13篇
  • ROS
    22篇
  • 视觉
    16篇
  • 脑机接口
    5篇
  • 模式识别
    7篇
  • 计算机网络
    5篇
  • SLAM
    4篇
  • QT
    4篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

《深入理解Kafka》读书笔记 - 初识Kafka

文章目录前言基本概念生产与消费服务端参数配置前言例如:Kafka是后端常用的消息队列,将通过《深入理解Kafka核心设计与实践原理》进行学习,本文为第一章的学习笔记。Kafka 起初是由Linkedin 公司用Scala开发的一个多分区、多副本且基于ZooKeeper协调的分布式消息系统,现己捐献给Apache基金会。Kafka可以扮演三大角色:消息系统:Kafka 和传统的消息系统一样都具有备系统解耦、冗余存储、流量削峰、缓冲、异步通信、扩展性、可恢复性等功能。Kafka 相对于普通的消息
原创
发布博客 2022.02.13 ·
787 阅读 ·
0 点赞 ·
0 评论

基于opencv的背景差分法小车资料内容

发布资源 2021.05.10 ·
zip

图解HashMap为什么线程不安全?

HashMap的线程不安全主要体现在下面两个方面:1.在JDK1.7中,当并发执行扩容操作时会造成环形链和数据丢失的情况。2.在JDK1.8中,在并发执行put操作时会发生数据覆盖的情况。JDK1.7在JDK1.7中,扩容数据时要进行把原数据迁移到新的位置,使用的方法://数据迁移的方法,头插法添加元素void transfer(Entry[] newTable, boolean rehash) { int newCapacity = newTable.length;     
原创
发布博客 2020.06.10 ·
19105 阅读 ·
53 点赞 ·
9 评论

【JavaWeb】用户登录案例

需求1. 编写login.html登录页面,包含username & password 两个输入框2. 使用Druid数据库连接池技术,操作mysql,test数据库中user表3. 使用JdbcTemplate技术封装JDBC4. 登录成功跳转到SuccessServlet展示:登录成功!用户名,欢迎您5. 登录失败跳转到FailServlet展示:登录失败,用户名或...
原创
发布博客 2020.03.21 ·
4151 阅读 ·
25 点赞 ·
4 评论

【设计模式】策略模式

文章目录策略模式模式动机定义类图实现分析优点缺点使用环境策略模式模式动机完成一项任务,往往可以有多种不同的方式,每一种方式称为一个策略,我们可以根据环境或者条件的不同选择不同的策略来完成该项任务。在软件系统中,有许多算法可以实现某一功能,如查找、排序等,一种常用的方法是硬编码(Hard Coding)在一个类中,如需要提供多种查找算法,可以将这些算法写到一个类中,在该类中提供多个方法,每一个方法对应一个具体的查找算法;当然也可以将这些查找算法封装在一个统一的方法中,通过if…else…等条件判断语
原创
发布博客 2020.08.01 ·
146 阅读 ·
0 点赞 ·
0 评论

【设计模式】 观察者模式

文章目录观察者模式模式动机定义类图例子分析优点缺点实际应用适用场景定义对象之间的一对多依赖,当一个对象状态改变时,它的所有依赖都会收到通知并且自动更新状态。观察者模式模式动机建立一种对象与对象之间的依赖关系,一个对象发生改变时将自动通知其他对象,其他对象将相应做出反应。在此,发生改变的对象称为观察目标,而被通知的对象称为观察者,一个观察目标可以对应多个观察者,而且这些观察者之间没有相互联系,可以根据需要增加和删除观察者,使得系统更易于扩展,这就是观察者模式的模式动机。定义定义对象之间的一对多依赖
原创
发布博客 2020.08.01 ·
170 阅读 ·
0 点赞 ·
0 评论

【设计模式】模板方法模式

文章目录模板方法模式定义类图实现模板方法模式定义只定义算法框架,而将一些步骤的实现延迟到子类。通过模板方法,子类可以重新定义算法的某些步骤,而不用改变算法的结构。类图[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gl1rhSCA-1596243318723)(https://camo.githubusercontent.com/b71fede146c0f8d211d29799abb9f94259c0ad7c/68747470733a2f2f63732d6e6f74
原创
发布博客 2020.08.01 ·
141 阅读 ·
0 点赞 ·
0 评论

【设计模式】适配器模式

文章目录适配器模式定义类图Implementation优点缺点适用环境模式应用适配器模式火鸡冒充鸭子叫。定义把一个类接口转换成另一个用户需要的接口,适配器模式使接口不兼容的那些类可以一起工作。类图适配器模式有对象适配器和类适配器两种实现:对象适配器:类适配器:Implementation鸭子(Duck)和火鸡(Turkey)拥有不同的叫声,Duck 的叫声调用 quack() 方法,而 Turkey 调用 gobble() 方法。要求将 Turkey 的 gobble() 方法适
原创
发布博客 2020.08.01 ·
119 阅读 ·
0 点赞 ·
0 评论

【设计模式】桥接模式

文章目录桥接模式引入定义类图举例优点缺点模式应用使用环境模式扩展模式扩展总结桥接模式引入设想如果要绘制矩形、圆形、椭圆、正方形,我们至少需要4个形状类,但是如果绘制的图形需要具有不同的颜色,如红色、绿色、蓝色等,此时至少有如下两种设计方案:第一种设计方案是为每一种形状都提供一套各种颜色的版本。第二种设计方案是根据实际需要对形状和颜色进行组合对于有两个变化维度(即两个变化的原因)的系统,采用方案二来进行设计系统中类的个数更少,且系统扩展更为方便。设计方案二即是桥接模式的应用。桥接模式将继承关系
原创
发布博客 2020.08.01 ·
121 阅读 ·
0 点赞 ·
0 评论

【设计模式】装饰模式

文章目录装饰模式模式动机定义类图例子优点缺点适用场景装饰模式模式动机一般有两种方式可以实现给一个类或对象增加行为:继承机制,使用继承机制是给现有类添加功能的一种有效途径,通过继承一个现有类可以使得子类在拥有自身方法的同时还拥有父类的方法。但是这种方法是静态的,用户不能控制增加行为的方式和时机。关联机制,即将一个类的对象嵌入另一个对象中,作为这个类的一个属性,由另一个对象来决定是否调用嵌入对象的行为以便扩展自己的行为,我们称这个嵌入的对象为装饰器(Decorator)装饰模式以对客户透明的方式
原创
发布博客 2020.08.01 ·
85 阅读 ·
0 点赞 ·
0 评论

【设计模式】工厂模式

文章目录1. 简单工厂模式定义类图案例简单工厂模式的优点简单工厂模式的缺点适用环境例子2. 工厂方法模式定义类图举例实际应用工厂方法模式的优点工厂方法模式的缺点适用场景3. 抽象工厂模式定义类图Implementation优点缺点适用环境模式应用1. 简单工厂模式定义在创建一个对象时不向客户暴露内部细节,并提供一个创建对象的通用接口。类图简单工厂把实例化的操作单独放到一个类中,这个类就成为简单工厂类,让简单工厂类来决定应该用哪个具体子类来实例化。这样做能把客户类和具体子类的实现解耦,客户类不再需
原创
发布博客 2020.08.01 ·
88 阅读 ·
0 点赞 ·
0 评论

【设计模式】单例模式

文章目录1. 单例模式概念要求实现方式饿汉式1. 使用静态常量实现2. 使用静态代码块实现懒汉式双重检查(较推荐)静态内部类模式(推荐)枚举(推荐)使用场景列举单例模式的应用单例模式的优点单例模式的缺点1. 单例模式概念单例模式就是为了确保一个类当中只有一个实例,并且提供一个全局的公有访问点。通俗的说,当我们需要用到某个对象的实例的时候,我们无需进行其它多余操作,而是直接通过某个接口获取到它的实例,并且这个实例在整个系统中保证唯一。要求这就需要我们满足两点要求:生成的类的实例是唯一的,也就是
原创
发布博客 2020.08.01 ·
100 阅读 ·
0 点赞 ·
0 评论

【Redis】缓存预热、缓存雪崩和缓存击穿

缓存预热现象:服务器启动后迅速宕机。问题排查请求数量较高主从之间数据吞吐量较大,数据同步操作频度较高解决方案前置准备工作:日常例行统计数据访问记录,统计访问频度较高的热点数据如果热点数据量较大,利用LRU数据删除策略,构建数据留存队列(手工维护或storm+kafka等)启动前准备工作:将统计结果中的数据分类,根据级别,redis优先加载级别较高的热点数据利用分布式多服务器同时进行数据读取,提速数据加载过程实施:使用脚本程序固定触发数据预热过程如果条件允许,使用CDN(内容
原创
发布博客 2020.07.25 ·
214 阅读 ·
1 点赞 ·
0 评论

【操作系统】4.文件系统和IO子系统

1. 文件系统1.1 文件系统和文件文件系统是操作系统中管理持久性数据的子系统,提供数据存储和访问功能,可以提供组织、检索、读写访问数据功能。在没有文件系统时,我们在计算机上操作的数据无法有效保存,在计算机关机再重启时数据就丢失了。大多数计算机系统都有文件系统,我们常用的谷歌也是一个文件系统,支持分布式应用的数据管理,可以支持系统监控、故障检测、故障容忍和自动恢复,提供很高的可靠性。文件是具有符号名,由字节序列构成的数据项集合。文件是文件系统的基本数据单位文件名是文件的标识符号文件系统的功能
原创
发布博客 2020.06.28 ·
562 阅读 ·
0 点赞 ·
0 评论

【操作系统】3.进程管理

文章目录1. 进程和线程1.1 进程的概念进程的特点进程的组成进程与程序的联系进程与程序的区别1.2进程控制块(PCB)PCB的创建和回收进程控制块的内容:1.3 进程生命周期进程创建进程执行进程等待进程抢占进程唤醒进程结束1.4 进程状态变化模型1.5 进程挂起1.6 线程的概念1.7 用户线程与内核线程用户线程:内核线程线程和进程的区别2. 进程控制2.1 进程切换2.2 进程创建2.3 进程加载2.4 进程等待与退出3. CPU调度3.1 CPU调度概念3.2 调度准则3.3 就绪队列调度算法先来先服
原创
发布博客 2020.06.24 ·
309 阅读 ·
0 点赞 ·
0 评论

【操作系统】2.内存管理

文章目录0.如何分配物理内存1. 连续内存分配1.1 计算机体系结构和内存分层体系基本硬件结构:操作系统对内存分配做了什么操作系统采用的内存管理方式1.2 地址空间和地址生成1.3 内存碎片和分区的动态分配内存碎片问题分区分配1.4 碎片整理压缩式碎片整理交换式碎片整理2. 非连续内存分配2.1 需求背景非连续内存空间的分配要解决的问题2.2 段式存储管理访问机制2.3 页式存储管理2.4 页表2.5 快表和多级页表2.6 反置页表2.7 段页式存储管理机制3.虚拟存储3.1 需求3.2 覆盖和交换覆盖交换
原创
发布博客 2020.06.23 ·
246 阅读 ·
0 点赞 ·
0 评论

【操作系统】1.操作系统概述

文章目录操作系统内核的基本功能操作系统的内核特征1. 并发2. 共享3. 虚拟4. 异步计算机体系结构1、 操作系统启动流程1.BIOS部分2.加载操作系统部分2. 中断、异常和系统调用1.为什么需要中断、异常和系统调用2. 中断,异常,系统调用希望解决的问题3. 三者的区别4.系统调用操作系统的内容涵盖操作系统结构、中断及系统及系统调用,内存管理、进程与线程、处理机调度、同步互斥、文件系统和I/O子系统。操作系统内核的基本功能进程管理:进程控制进程同步、进程通信、死锁处理、处理机调度等。内存管理:
原创
发布博客 2020.06.19 ·
153 阅读 ·
0 点赞 ·
0 评论

ConcurrentHashMap底层详解(图解扩容)(JDK1.8)

数据结构使用数组+链表+红黑树来实现,利用 CAS + synchronized 来保证并发更新的安全源码分析put方法 public V put(K key, V value) { return putVal(key, value, false); } final V putVal(K key, V value, boolean onlyIfAbsent) { if (key == null || value == null) throw
原创
发布博客 2020.06.13 ·
14122 阅读 ·
59 点赞 ·
21 评论

【数据结构】红黑树

二叉查找树(1)左子树上所有节点的值均小于或等于它的根结点的值。(2)右子树上所有节点的值均大于或等于它的根结点的值。(3)子树也要遵循上面的规则二叉查找树可能出现的问题如果我们在刚刚开始的时候有三个节点,然后依次插入7,6, 5,4。我们看会发生什么情况:这样极端的情况下一个二叉搜索树可能退化成一个链表,在插入和查找的时候效率就会很低。平衡二叉树(AVL)从任何一个节点出发,左右子树深度之差的绝对值不超过1。红黑树红黑树是一种自平衡二叉查找树,它的统计性能要好于平衡二叉树(AVL
转载
发布博客 2020.06.11 ·
156 阅读 ·
0 点赞 ·
0 评论

ConcurrentHashMap底层详解(JDK1.7)

为什么要使用ConcurrentHashMapHashMap是线程不安全的,因为在put操作时可能会出现数据被覆盖的情况(JDK8),在JDK7中还存在扩容时产生死循环的问题。。而使用线程安全的HashTable效率又非常低下,因此可以使用ConcurrentHashMap。HashTable效率低下是因为使用synchronized来保证线程安全。当一个线程访问HashTable的同步方法,其他线程也访问HashTable的同步方法时,会进入阻塞或轮询状态。如线程1使用put进行元素添加,线程2不但
原创
发布博客 2020.06.11 ·
2349 阅读 ·
9 点赞 ·
0 评论
加载更多