
Java小结
文章平均质量分 92
心之星羽
这个作者很懒,什么都没留下…
展开
-
Kafka小结
目录基本概念Kafka的历史Kafka中的术语单机安装集群安装Java集成设计原理常见问题 基本概念 Kafka的历史 Kakfa最初由Linkedin公司采用Scala语言开发,是一个分布式的、支持多分区、多副本,基于zookeeper协调的分布式消息系统,2010年贡献给Apache基金会并成为顶级开源项目。 以下是kafka官网的介绍: Apache Kafka is an open-source distributed event streaming platform used by thousan原创 2021-03-11 17:30:08 · 181 阅读 · 0 评论 -
JVM内存结构和垃圾回收机制
目录JVM内存结构 JVM内存结构 jvm内存结构指的是java 虚拟机运行时对内存的使用情况,jvm将内存分为堆、栈、方法区、程序计数器四个部分,栈分为虚拟机栈、本地方法栈 程序计数器:jvm会给每个线程都分配一个程序计数器,是线程的私有内存,记录了当前线程将要执行的下一条字节码指令的指针,如果执行的是native方法,程序计数器的值为空,程序计数器不会出现OOM 虚拟机栈:虚拟机栈是线程运行时给线程分配的内存空间,这块内存空间是线程私有的,栈中存储的元素叫栈帧,线程在执行方法时会创建一个栈帧,栈帧原创 2021-02-18 17:55:42 · 488 阅读 · 0 评论 -
zookeeper基本概念
目录什么是zookeeper文件系统数据结构 什么是zookeeper zookeeper是apache hadoop下的一个开源分布式协调框架,主要用来解决分布式应用中遇到的一些数据管理问题,例如:统一命名服务、状态同步服务、集群管理、分布式应用配置项管理,我们可以简单的认为zookeeper就是一个基于内存的可以存储少量数据的数据库,核心概念就是文件系统数据结构和监听通知机制 文件系统数据结构 zookeeper使用一个类似文件系统的树形数据结构维护存储的数据,每个子目录项叫做znode(目录节点)原创 2021-02-03 15:06:21 · 381 阅读 · 2 评论 -
JavaIO模型
目录IO同步和异步阻塞和非阻塞BIONIOAIO IO 在Unix系统中,所有的内容都是以文件的形式保存和管理的,一切皆文件,系统里面的所有资源都是文件,包括socket,文件的本质就是流,我们对流的读写操作就是I/O,操作系统用文件描述符来表示流,即fd,每个fd都是一个整数,对整数的操作就是对文件(流)的操作,创建socket,操作系统返回一个fd,对socket的操作就是对fd的操作,IO又分为网络IO和磁盘IO,IO模型就是操作系统执行I/O指令的方法,UNIX将IO模型分为阻塞IO模型、非阻塞I原创 2021-01-21 10:52:50 · 215 阅读 · 0 评论 -
Redis常用数据结构和主从集群搭建
目录常用数据结构StringHashListSetZset 常用数据结构 String 常用命令 //存单个String类型的键值对 set key value //批量存String类型的键值对 mset key value [key value ...] //存入一个不存在的String类型的键值对,如已存在无法存入 setnx key value //获取键值对 get key //批量获取键值对 mget key [key ...] //删除键 del key [key ...] //设置一个键的过原创 2020-11-03 18:52:14 · 173 阅读 · 0 评论 -
RocketMQ基础知识小结
目录基本概念架构模型 基本概念 Producer 架构模型原创 2021-01-04 17:53:34 · 791 阅读 · 0 评论 -
RabbitMQ基础知识小结
目录MQ简单介绍几种常用MQ比较RabbitMQ简单介绍RaabitMQ简单搭建Spring项目简单使用RabbitMQ MQ简单介绍 MQ全称Message Queue(消息队列)就是用来存储消息的容器,MQ主要有以下几种种功能 一、应用解耦,解除多个应用相互调用的耦合关系 二、异步处理,应用异步处理消息,减少处理时间 三、削峰填谷,在高并发请求时限制并发的处理数量减轻系统压力 几种常用MQ比较 常用的MQ有k原创 2020-12-08 19:10:56 · 380 阅读 · 0 评论 -
SpringIOC部分源码小结
目录测试类ioc加载bean流程图部分源码this();this.reader = new AnnotatedBeanDefinitionReader(this);register(annotatedClasses);refresh(); 测试类 @Component //Component注解标记将Bean交给spring管理 public class BeanB { } @Configuration //标明是配置类 @ComponentScan("demo") //扫描包 publ原创 2020-10-12 18:27:16 · 278 阅读 · 0 评论 -
线程池及部分源码小结
目录线程的简单概念线程池的简单理解线程池的状态线程池的参数 线程的简单概念 线程是CPU调度的最小单位,属于进程的一部分,线程间共享所在进程的资源,线程模型有KLT和ULT两种,Java中采用的是KLT模型,也就是说Java中每创建一个线程会同步的在OS中创建一个线程 线程池的简单理解 线程池顾名思义就是由多个线程组成的池子,在需要使用多线程的场景下我们可以使用线程池 为什么要用线程池而不是一个个的创建线程呢,因为每次创建线程时都需要消耗资源和时间,为了更高效的使用线程,引入了线程池的概念,对线程统一分配原创 2020-09-27 16:56:58 · 149 阅读 · 0 评论 -
ConcurrentHashMap源码简单小结
目录JDK1.7数据结构成员变量构造函数put操作get操作 JDK1.7 数据结构 segment数组+HashEntry数组+链表,每一个segment锁维护了一组HashEntry数组,每个HashEntry都可能是一串链表,想要修改HahsEntry中的值必须先去竞争获取segment锁 //HashEntry结构 static final class HashEntry<K,V> { // hash值 final int hash; // key原创 2020-08-27 18:37:26 · 387 阅读 · 0 评论 -
HashMap源码简单小结
目录JDK1.7数据结构重要的成员变量构造函数put操作get操作JDK1.8 JDK1.7 数据结构 数组+链表,底层是由若干个Entry对象组成的一个数组,数组中可以存储Entry对象的地方叫做"桶"(bucket),每个桶都存储了一个Entry对象,Entry对象的next字段可以指向下一个Entry的引用,因此实际桶中存储的可能是个Entry链表 //Entry结构源码 static class Entry<K,V> implements Map.Entry<K,V> {原创 2020-08-24 19:22:18 · 343 阅读 · 0 评论