1 一年而已

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 2w+

RabbitMQ学习笔记-第二章、核心概念

2.1初识RabbitMQRabbitMQ是一个开源的消息代理和队列服务器,用来通过普通协议在完全不同的应用之间共享数据,RabbitMQ使用Erlang语言编写的,并且RabbitMQ是基于AMQP协议的为什么选用RabbitMQ开源、性能优秀、稳定性保障提供可靠性消息投递模式(confirm)、返回模式(return)SpringAMQP完美的整合、API丰富集群模式丰富、表达式配置、HA模式(高可用)、镜像队列模式保证数据不丢失的前提下保证高可靠性和可用性RabbitMQ高性能的原

2020-07-05 16:53:11

RabbitMQ学习笔记-第一章、介绍

主流消息中间件介绍一、ActiveMQ简介ActiveMQ是Apache出品,最流行的,能力强劲的开源消息总线,并且他一个完全支持JMS规范的消息中间件其丰富的API、多种集群构建模式使得他成为业界老牌消息中间件,在中小型企业应用广泛MQ衡量指标:服务性能、数据存储、集群架构现在已经不常使用因为性能不是很好,比如阻塞消息堆积过多架构说明:1.Master-Slave模式:使用Zookeeper进行多个节点间的协调,只有一个主节点对外提供服务,其他从节点不对外提供服务,若是主节点宕机使

2020-07-04 22:30:37

消息队列---RabbitMQ常见问题总结

1.为什么使用消息队列解耦、削峰、异步处理2.消息队列的优缺点优点就是异步、解耦、削峰。系统可用性降低:引入的外部组件越多,系统可用性越低。系统的复杂度提高:需要考虑消息重复(幂等性),丢失的解决方案。可能存在数据一致性问题,生产者以为消息被处理了,实际上没有被处理。3.为什么选用RabbitMQRabbitMQ的吞吐量比RocketMQ和kafka的吞吐量低,但其是基于erlang开发的基于AMQP协议的消息队列。并发性能很强,性能很好,延时很低,基于主从架构实现高可用性4.

2020-06-16 17:55:52

程序员代码面试指南刷题--第九章.设计LRU缓存结构

题目描述设计LRU缓存结构,该结构在构造时确定大小,假设大小为K,并有如下两个功能set(key, value):将记录(key, value)插入该结构get(key):返回key对应的value值[要求]set和get方法的时间复杂度为O(1)某个key的set或get操作一旦发生,认为这个key的记录成了最常使用的。当缓存的大小超过K时,移除最不经常使用的记录,即set或get最久远的。输入描述:第一行两个个整数N, K,表示操作数量以及缓存结构大小接下来N行,第一行一个整数o

2020-06-08 08:51:21

程序员代码面试指南刷题--第九章.最大的leftMax与rightMax之差的绝对值

题目描述给定一个长度为N(N>1)的整形数组arr, 可以划分成左右两个部分,左部分为arr[0…K],右部分为arr[K+1…N-1], K可以取值的范围是[0,N-2]。求这么多划分方案中,左部分中的最大值减去右部分最大值的绝对值中,最大是多少[要求]时间复杂度为O(n), 空间复杂度为O(n)输入描述:第一行一个整数N,表示数组长度。接下来一行N个整数,表示数组内的数。输出描述:输出一个整数表示最优答案示例1输入52 7 3 1 1输出6解法一:借助两个数组

2020-06-07 09:06:50

程序员代码面试指南刷题--第九章.设计有setAll功能的哈希表

题目描述哈希表常见的三个操作时put、get和containsKey,而且这三个操作的时间复杂度为O(1)。现在想加一个setAll功能,就是把所有记录value都设成统一的值。请设计并实现这种有setAll功能的哈希表,并且put、get、containsKey和setAll四个操作的时间复杂度都为O(1)。[友情提示]: C++选手若有需要可以使用unordered_map替换map来将复杂度从O(log n)降为O(1)输入描述:第一行一个整数N表示操作数。接下来N行,每行第一个数字opt代

2020-06-07 08:43:42

程序员代码面试指南刷题--第九章.蓄水池算法

容量为k的袋子,一共有n个球,使得n>k时袋子里有k个球同时保证没吐出一个球所有球进袋子的概率就是k/i(i为当前一共吐出的数量i>k&&i<=n)解法一:蓄水池算法public int[] getKRands(int k,int max){ if(max<1||k<1) return null; int[] res = new int[Math.min(k,max)]; for(int i=0;i<res.length;i++){ res[

2020-06-07 08:18:44

慢慢来--反射相关

介绍Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任何一个对象都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java反射。两种方式获取Class对象具体类.classClass.forName(xxx)静态编译:在编译时确认类型,绑定对象动态编译:运行时确定类型,绑定对象反射优缺点优:运行期类型的判断,动态加载类,提高代码灵活性缺:反射相当于一系列解释操作,比直接运行java代码慢很多。另外反射动态操作类的属

2020-06-06 12:08:23

慢慢来--final、static、this、super关键字

final关键字final关键字可以用来修饰类、方法和变量final修改的类不能被继承,final类中所有成员方法都会隐式的指定为final方法final修饰的方法不能被重写final修饰的变量是常量,如果是基本数据类型的变量,则其数值初始化后便不能修改;如果是引用类型的变量,初始化后不能指向另一个对象说明:使用final方法的原因有两个,一是把防止方法被重写;第二个原因是效率,早起java中final方法会转为内嵌调用,但是方法如果过于庞大,内嵌调用并不会带来性能的提升。类中所有的priva

2020-06-06 11:26:22

程序员代码面试指南刷题--第九章.能否完美地拼成矩形

题目描述每条边不是平行于X轴就是平行于Y轴的矩形,可以用左下角和右上角的点来表示。比如{1, 2, 3, 4},表示的图形如下给定一个N行4列的二维数组matrix,表示N个每条边不是平行于X轴就是平行于Y轴的矩形。想知道所有的矩形能否组成一个大的完美矩形。完美矩形是指拼出的整体图案是矩形,既不缺任何块儿,也没有重合部分[要求]时间复杂度为O(n),额外空间复杂度为O(n)输入描述:第一行一个整数N,表示matrix的行数接下来N行,每行4个整数分别表示矩形的左下角和右上角的点输出描述:若

2020-06-06 09:25:32

程序员代码面试指南刷题--第九章.折纸问题

题目描述请把一张纸条竖着放在桌子上,然后从纸条的下边向上方对折1次,压出折痕后展开。此时折痕是凹下去的,即折痕突起的方向指向纸条的背面。如果从纸条的下边向上方连续对折2次,压出折痕后展开,此时有三条折痕,从上到下依次是下折痕、下折痕和上折痕。给定一个输入参数N,代表纸条都从下边向上方连续对折N次,请从上到下打印所有折痕的方向。[要求]时间复杂度为O(2^n)),额外空间复杂度为O(1)输入描述:第一行一个整数N。表示对折次数输出描述:输出若干行,若该折痕向下,输出"down",否则输出"up"

2020-06-06 08:48:19

程序员代码面试指南刷题--第八章.加油站良好出发点问题

题目描述N个加油站组成一个环形,给定两个长度都是N的非负数组oil和dis(N>1),oil[i]代表第i个加油站存的油可以跑多少千米,dis[i]代表第i个加油站到环中下一个加油站相隔多少千米。假设你有一辆油箱足够大的车,初始时车里没有油。如果车从第i个加油站出发,最终可以回到这个加油站,那么第i个加油站就算良好出发点,否则就不算。请返回长度为N的boolean型数组res,res[i]代表第i个加油站是不是良好出发点规定只能按照顺时针走,也就是i只能走到i+1,N只能走到1[要求]时间复杂

2020-06-04 09:36:39

程序员代码面试指南刷题--第八章.分金条的最小花费

题目描述给定一个正数数组arr,arr的累加和代表金条的总长度,arr的每个数代表金条要分成的长度。规定长度为k的金条分成两块,费用为k个铜板。返回把金条分出arr中的每个数字需要的最小代价。[要求]时间复杂度为O(nlog⁡n),空间复杂度为O(n)输入描述:第一行一个整数N。表示数组长度。接下来一行N个整数,表示arr数组。输出描述:一个整数表示最小代价示例1输入310 30 20输出90解法一:类似哈夫曼树,借助堆实现import java.io.*;impo

2020-06-03 09:21:52

程序员代码面试指南刷题--第八章.做项目的最大收益问题

题目描述给定两个整数W和K,W代表你拥有的初始资金,K代表你最多可以做K个项目。再给定两个长度为N的正数数组costs[]和profits[],代表一共有N个项目,costs[i]和profits[i]分别表示第i号项目的启动资金与做完后的利润(注意是利润,如果一个项目的启动资金为10,利润为4,代表该项目最终的收入为14)。你不能并行只能串行地做项目,并且手里拥有的资金大于或等于某个项目的启动资金时,你才能做这个项目。该如何选择做项目,能让你最终的收益最大?返回最后能获得的最大资金[要求]时间复杂度

2020-06-03 08:53:16

程序员代码面试指南刷题--第八章.数组排序之后相邻数的最大差值

题目描述给定一个整形数组arr,返回排序后相邻两数的最大差值arr = [9, 3, 1, 10]。如果排序,结果为[1, 3, 9, 10],9和3的差为最大差值,故返回6。arr = [5, 5, 5, 5]。返回0。[要求]时间复杂度为O(n),空间复杂度为O(n)输入描述:第一行一个整数N。表示数组长度。接下来N个整数表示数组内的元素输出描述:输出一个整数表示答案示例1输入49 3 1 10输出6解法一:桶排序import java.io.*;impor

2020-06-02 11:40:54

程序员代码面试指南刷题--第八章.数组中未出现的最小正整数

题目描述给定一个无序数组arr,找到数组中未出现的最小正整数例如arr = [-1, 2, 3, 4]。返回1arr = [1, 2, 3, 4]。返回5[要求]时间复杂度为O(n),空间复杂度为O(1)输入描述:第一行为一个整数N。表示数组长度。接下来一行N个整数表示数组内的数输出描述:输出一个整数表示答案示例1输入4-1 2 3 4输出1解法一:双指针import java.io.*;import java.util.*;public class Main

2020-06-02 09:35:18

程序员代码面试指南刷题--第八章.求最短通路值

题目描述用一个整形矩阵matrix表示一个网格,1代表有路,0代表无路,每一个位置只要不越界,都有上下左右四个方向,求从最左上角到右下角的最短通路值例如,matrix为:1 0 1 1 11 0 1 0 11 1 1 0 10 0 0 0 1通路只有一条,由12个1构成,所以返回12[要求]时间复杂度为O(nm),空间复杂度为O(nm)输入描述:第一行两个整数N,M表示矩形的长宽接下来N行,每行一个长度为M的字符串表示矩形输出描述:输出一个整数表示最小步数若从(1, 1)无法到

2020-06-02 09:03:05

设计模式学习笔记-职责链模式

学校的采购审批项目如果金额小于等于5000,由教学主任审批如果金额小于等于10000,由院长审批如果金额小于等于30000,由副校长审批如果金额大于30000,由校长审批传统方案解决传统方案的问题传统方式解决问题是接收一个采购项目后,根据采购金额来调用对应的Approver完成审批客户端会使用到分支判断来处理不同的采购请求,这样的话如果相关审批员可审核价格改变客户端需要重写。另外客户端需要知道每个审批员的可审核金额,存在强耦合不利于扩展职责链模式基本介绍职责链模式又叫责任链

2020-06-01 12:02:56

设计模式学习笔记-策略模式

鸭子项目有各种鸭子(野鸭、北京鸭、水鸭等),鸭子有各种行为,飞、叫等显示鸭子信息传统方案解决传统方式实现鸭子问题1.Duckpublic abstract class Duck { public Duck() { } public abstract void display();//显示鸭子信息 public void quack() { System.out.println("鸭子嘎嘎叫~~"); } public void swim() { Syst

2020-06-01 11:25:16

程序员代码面试指南刷题--第八章.边界都是1的最大正方形大小

题目描述给定一个N×N的矩阵matrix,在这个矩阵中,只有0和1两种值,返回边框全是1的最大正方形的边长长度、例如0 1 1 1 10 1 0 0 10 1 0 0 10 1 1 1 10 1 0 1 1其中,边框全是1的最大正方形的大小为4×4,所以返回4[要求]时间复杂度为O(n3),空间复杂度为O(n2)输入描述:第一行一个整数N。表示矩阵的长宽。接下来N行,每行N个整数表示矩阵内的元素输出描述:输出一个整数表示答案示例1输入50 1 1 1 10 1 0

2020-06-01 09:09:41

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。