上一页 1 2 3 4 5 6 ··· 9 下一页
摘要: @ComponentScan作用是将标注了@Controller、@Service、@Repository等注解的类放入IOC容器中,统一管理。 一、基本用法 Component组件: @Controller public class UserController { } @Service publ 阅读全文
posted @ 2020-09-23 08:22 在谷歌上百度 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 取模有两个主要的缺点 散列不均匀 增加节点、删除节点后节点需要rehash 为了解决上述两个主要问题,引入了一致性Hash算法。 解决散列不均匀 首先,将0到 232 想象成一个圆,就像钟表一样,钟表的圆可以理解成由60个点组成的圆,而此处我们把这个圆想象成由 232 个点组成的圆。假设有两个数据节 阅读全文
posted @ 2020-09-20 23:35 在谷歌上百度 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 由于Java11中ZGC的出现,尽量不要对GC调优的研究下太多功夫,对未来来说,这是贬值的。 新生代的垃圾回收器 收集器 算法 收集器类型 说明 适用场景 Serial 复制算法 单线程 进行垃圾回收时,须暂停所有工作线程,知道回收完成 简单高效,适合内存不大的情况 ParNew 复制算法 多线程并 阅读全文
posted @ 2020-09-20 22:43 在谷歌上百度 阅读(406) 评论(0) 推荐(0) 编辑
摘要: 对象一定分配在堆中吗? JVM通过逃逸分析,那些逃不出方法的对象会在栈上分配。 什么是逃逸分析? EscapeAnalysis,逃逸分析,指的是虚拟机在运行期通过计算分析将原本在堆上分配的对象改成在栈中分配,这样的好处是栈上分配的对象随着线程的结束而自动销毁,不依赖于GC,可以降低垃圾收集器运行的频 阅读全文
posted @ 2020-09-20 22:39 在谷歌上百度 阅读(509) 评论(0) 推荐(0) 编辑
摘要: 什么是垃圾回收? 垃圾回收的是什么? 如何判断为垃圾? 垃圾是怎样被回收的? 垃圾回收哪些区域的内存? 什么是垃圾回收 垃圾回收就是将被虚拟机视为垃圾的对象所占的内存释放掉。 垃圾回收的是什么 回收的是对象所占的内存 如何判断为垃圾 在垃圾收集器对堆内存进行回收前,会先判断哪些对象还在“存活”,哪些 阅读全文
posted @ 2020-09-20 22:38 在谷歌上百度 阅读(385) 评论(0) 推荐(0) 编辑
摘要: 什么是类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,类的加载的最终产品是位于堆区中的Class对象,Class对象封装了类在方法区内的数据结构。 类的生命周期 其中类加载的过程包括了加载、验证、准备、解析、初始化五个阶段。在这五个阶段中,加载、验证、准备和初始化这四个阶段 阅读全文
posted @ 2020-09-20 22:33 在谷歌上百度 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 一、下载vm软件 随便找个破解版的就行了 二、下载iso镜像 去阿里云镜像站下一个OS7的镜像 三、新建虚拟机 “下一步”一路到底就行了 配置网络 关键的来了 配置全局网络 除了这个,全部删掉 选择NAT模式,这个模式的虚拟机不随物理主机ip的变化而变化 将这俩都勾上,物理机会多出一个网络叫VMne 阅读全文
posted @ 2020-09-19 21:18 在谷歌上百度 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 建造者模式适用于对象属性太多的情况 有一个属性非常多的类:Person public class Person { private String a; private String b; private String c; private String d; private String e; pr 阅读全文
posted @ 2020-09-12 10:25 在谷歌上百度 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 策略模式一般用法就是一个接口有多个实现类,每个实现类都是对接口的不同实现,均代表了接口的不同实现形式,比如说,一个计算的接口,你不必在接口中定义加减乘除的抽象方法,仅需要一个抽象方法,多个实现类来实现这个接口中的抽象方法即可。 普通用法 抽象接口 /** * 计算接口 * * @author zha 阅读全文
posted @ 2020-09-11 23:14 在谷歌上百度 阅读(121) 评论(0) 推荐(0) 编辑
摘要: SimpleFactory 说到工厂,我们应该能想到,造汽车的有汽车工厂,造轮船的有轮船工厂,映射到Java中,造对象的就应该有对象工厂,比如说我想要买一辆车,那我只需要去汽车工厂(先不去4S店)里面告诉它什么品牌的汽车,具体参数,给钱提车就完了,我并不需要了解汽车是如何造出来的,也就是屏蔽了造车的 阅读全文
posted @ 2020-09-11 22:55 在谷歌上百度 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 什么是模板方法?即让工作或流程顺序按照写好的模板进行下去,同时还可以自定义流程,以及简化流程。 举例:冲泡茶和咖啡均分四步进行: 把水煮沸 冲泡咖啡(茶) 把咖啡(茶)倒入杯子 加糖(柠檬) 一般写法 咖啡类 public class Coffee { public void prepare() { 阅读全文
posted @ 2020-09-11 22:50 在谷歌上百度 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 备用交换器,在消息无法路由的时候可以使用失败者通知,还可以使用备用交换器来路由消息。如果备用交换器和mandatory一起开启,那么不会有失败者通知了,因为消息还是可以路由的。 生产者 /** * @author zhangjianbing * @since 2020/9/7 */ @Suppres 阅读全文
posted @ 2020-09-07 22:43 在谷歌上百度 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 发布者确认模式 注意,这里需要开启确认模式:channel.confirmSelect() /** * 发布者确认回调 * handleAck:消息经由交换器,路由键,成功到达了队列,会调用此方法 * handleNack:消息经由交换器,路由键在到达队列的途中,MQ内部出现异常会调用此方法 * * 阅读全文
posted @ 2020-09-07 21:23 在谷歌上百度 阅读(111) 评论(0) 推荐(0) 编辑
摘要: mandatory为true表示开启失败通知机制,在交换器无法将消息路由到队列的时候会发生失败通知回调,如果声明了备用交换器以后,失败通知回调机制则会失效,是因为消息由备用交换器路由到了其它队列。 生产者 注意:这里第三个参数需要设置为true,channel.basicPublish /** * 阅读全文
posted @ 2020-09-07 21:21 在谷歌上百度 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 在消息过期、超过队列最大长度、被拒绝后,如果不重新入队,那可以选择进入死信队列(dead letter),通常死信队列配合消息过期策略可以应用在延时订单的业务场景下。 以下场景为:两个正常消费者A和B,一个拒绝消息的消费者C,和一个监听死信消息的消费者。 正常消费者A /** * 普通消费者A * 阅读全文
posted @ 2020-09-06 22:40 在谷歌上百度 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 消费者在消费消息的时候,可以根据业务场景来选择拒绝消息,通过参数设置是否让消息再次入队。拒绝消息的指令有俩,一个是basicNack,一个是basicReject,这两个区别是后者不能批量拒绝,只能单条拒绝。代码演示如下: 一个生产者,两个正常消费者,一个拒绝消息的消费者,三个消费者共同订阅一个队列 阅读全文
posted @ 2020-09-05 15:00 在谷歌上百度 阅读(144) 评论(0) 推荐(0) 编辑
摘要: RabbitMQ原生编程,Topic交换器。适用于平台给下游服务下发消息的业务场景,配合每个下游服务都有自己的vhost,实现消息隔离发送。 生产者: /** * create by zhangjianbing * time 2020年9月1日 */ public class TopicProduc 阅读全文
posted @ 2020-09-05 14:56 在谷歌上百度 阅读(94) 评论(0) 推荐(0) 编辑
摘要: RabbitMQ原生编程 ,Fanout广播交换器。广播交换器发送消息到队列,跟路由键没什么关系了,只要绑定到广播交换器的队列都会受到它发来的消息。 生产者: /** * @author zhangjianbing * time 2020/9/3 */ @SuppressWarnings("Dupl 阅读全文
posted @ 2020-09-05 14:50 在谷歌上百度 阅读(105) 评论(0) 推荐(0) 编辑
摘要: RabbitMQ原生编程,直接交换器。 生产者: /** * 原始生产者: * 1. 创建连接工厂 * 2. 创建连接 * 3. 创建信道 * 4. 在连接中声明交换器的【名字】以及【类型】 * 5. 创建队列 * 6. 声明路由键的名字 * 7. 将队列和交换器通过路由键绑定,目的是让交换器通过路 阅读全文
posted @ 2020-09-05 14:45 在谷歌上百度 阅读(94) 评论(0) 推荐(0) 编辑
摘要: RabbitMQ版本 原生编程 引入jar包 <dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId> <version>5.0.0</version> </dependency> Spring 阅读全文
posted @ 2020-09-05 14:44 在谷歌上百度 阅读(118) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 9 下一页