一、数据类型 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
1、简介 spring cloud的负载均衡由ribbon组件实现,ribbon是NetFlix发布的客户端负载均衡器。 2、ribbon负载均衡规则 ribbon负载均衡策略的结构类图 IRule接口中共有三个方法 抽象类AbstractLoadBalancerRule实现了IRule接口,定义了一个ILoadBalancer类型变量,用于ILoadBalancer接口定义了软负载均衡的操作方法。 3、负载均衡策略 3.1、轮询策略 轮询策略在RoundRobinRule类中实现,它将可用服务存储在一个List中,然后定义了一个原子操作类,每次调用就+1,下次调用就把这个值作为List的下标,以此决定要调用哪个服务。 下面是定义,在RoundRobinRule构造函数中,会初始化值为0 3.2、随机策略 随机策略在RandomRule实现,RandomRule定义规则,从现有服务中,随机选择一个服务,具体做法就是根据可选服务数量,选出一个随机数作为下标,获取服务 3.3、根据响应时间分配权重的策略 这个策略由WeightedResponseTimeRule实现,使用这个策略的话,相应.... 有更新! ribbon的几种负载均衡 程序人生