一、概述 集合框架主要包括Map和Collection,Collecton用于存储对象,而Map则通过键值对(两个对象)存储对象 二、Collection 2.1 Set TreeSet 基于红黑树实现,支持有序操作 HashSet 基于哈希表实现,查询速度快,但是数据无序 LinkedHashSet 查询效率与hashset一致,但是内部基于双向链表实现 2.2 List ArrayList 基于数组实现,查询快,增删慢 Vector 实现与ArrayList一致,但是线程安全 LinkedList 基于双向链表实现,查询慢,增删快。还可用于栈、队列、双向队列 2.3 Queue LinkedList 实现双向队列 PriorotyQueue 基于堆结构实现,可以用他来实现优先队列 三、Map TreeMap 基于红黑树实现 HashMap 基于哈希表实现 HashTable 与HashMap类似,但是线程安全 LinkedHashMap 使用双向链表来维护元素的顺序,顺序为插入顺序或者最近最少使用(LRU)顺序 参考Java中的Map - 问尤龙の时光 (wenyoulong.co.... 有更新! Java基础--集合框架 Java基础
一、数据类型 1.1 基础数据类型 基础类型大小(字节)包装类型 boolean1Boolean byte1Byte char2Character short2Short int4Integer float4Float long8Long double8Double 基本类型与包装类型之间的赋值,通过自动装箱和自动拆箱完成 1.2 缓存池 Byte、Character、Integer、Long、Short包装类型中存在数据缓存,调用吧valueOf方法或者自动装箱时,会先去缓存中查询该数据是否存在,存在则返回缓存数据 以Integer为例,Integer中有一个内部类IntegerCache,里面设置了缓存的数据范围是[-128,127],建立了一个cache数组,并在静态代码块中初始化了该数组 private static class IntegerCache { static final int low = -128; static final int high; static final Integer cache[]; static { // high value may be.... 有更新! Java基础--基础知识 Java基础
一、内存分区模型 1.1 内存分区模型 C++程序在执行时,内存大致分为四个区域 代码区:存储函数体的二进制代码 全局区:存放全局变量、静态变量和常量 栈区:由编译器自动分配释放,存放函数的参数值、局部变量等 堆区:由程序员分配和释放,程序结束时由操作系统回收 1.1.1 程序运行前 在程序运行前,生成了exe可执行程序,未执行该程序前分为两个区域 代码区: 存放CPU执行的机器指令 代码区是共享的,对于频繁执行的程序在内存中只需要有一份代码即可 代码区是只读的,防止程序意外修改他的指令 全局区: 全局变量和静态变量存储在此区域 全局区还包含了常量区,字符串常量和const修饰的全局常量也在这个区域 该区域的数据在程序结束后,由操作系统释放 #include <iostream> #include <string> using namespace std; // 定义全局变量 int global_a = 1; int global_b = 1; // const修饰全局变量 int const_global_a = 1; int const_global_b .... 有更新! c++面向对象 c++
1、AT模式简介 AT模式官网已经给出了很详细的介绍,可以直接看官网 http://seata.io/zh-cn/docs/dev/mode/at-mode.html 2、建立项目 涉及的代码过多,这里只对几个关键的步骤进行说明,完整代码可以到git上下载,AT模式在master分支上,数据库脚本在script目录下 https://gitee.com/WylLoveX/seata.git 2.1、maven依赖 这里我们建立一个spring boot项目,基于2.2.5.RELEASE版本,引入seata和nacos需要的依赖。 spring-cloud-starter-alibaba-seata内部封装了seata分布式事务的XID的传递,引入直接使用,如果不用这个组件,就只能自己解决XID传递的问题; seata-spring-boot-starter的版本号和seata版本保持一致; <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-b.... 有更新! seata+nacos实现AT模式分布式事务 程序人生
1、简介 RocketMQ主要由 Producer、Broker、Consumer 三部分组成,其中Producer 负责生产消息,Consumer 负责消费消息,Broker 负责存储消息。Broker 在实际部署过程中对应一台服务器,每个 Broker 可以存储多个Topic的消息,每个Topic的消息也可以分片存储于不同的 Broker。Message Queue 用于存储消息的物理地址,每个Topic中的消息地址存储于多个 Message Queue 中。ConsumerGroup 由多个Consumer 实例构成。 更多信息参考官网:https://github.com/apache/rocketmq/tree/master/docs/cn 2、spring boot集成RocketMQ 2.1、引入依赖 spring boot依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</ar.... 有更新! spring boot整合rocketmq rocketmq