- 博客(18)
- 资源 (4)
- 收藏
- 关注
原创 聚集索引和非聚集索引的区别
1.使用聚集索引的查询效率要比非聚集索引的效率要高,但是如果需要频繁去改变聚集索引的值,写入性能并不高,因为需要移动对应数据的物理位置。2.非聚集索引在查询的时候可以的话就避免二次查询,这样性能会大幅提升。3.不是所有的表都适合建立索引,只有数据量大表才适合建立索引,且建立在选择性高的列上面性能会更好。聚集索引和非聚集索引的区别-CSDN博客聚簇索引和非聚簇索引。
2023-04-17 10:59:53
269
原创 hashmap如何得到数组下标
长度16或者其他2的幂,Length-1的值是所有二进制位全为1,这种情况下,index的结果等同于HashCode后几位的值。只要输入的HashCode本身分布均匀,Hash算法的结果就是均匀的。计算book的hashcode,结果为十进制的3029737,二进制的101110001110101110 1001。假定HashMap长度是默认的16,计算Length-1的结果为十进制的15,二进制的1111。可以说,Hash算法最终得到的index结果,完全取决于Key的Hashcode值的最后几位。
2023-04-12 16:21:14
479
原创 RocketMQ、ActiveMQ和Kafka比较
ActiveMQ随着队列和虚拟主题使用的增加,ActiveMQ IO模块达到了一个瓶颈。我们尽力通过节流、断路器或降级来解决这个问题,但效果并不理想。KafkaKafka不能满足我们的要求,其尤其表现在低延迟和高可靠性方面。RocketMQApache RocketMQ 自诞生以来,因其架构简单、业务功能丰富、具备极强可扩展性等特点被众多企业开发者以及云厂商广泛采用。历经十余年的大规模场景打磨,RocketMQ 已经成为业内共识的金融级可靠业务消息首选方案,被广泛应用于互联网、大数据、移动互联网、物联网等领
2023-02-03 10:28:18
201
转载 java容器都有哪些
容器是指用以容纳物料并以壳体为主的基本装置。java容器类类库的用途是"保存对象"。摘自: “Thinking in Java”.Java集合类是一种特别有用的工具类,可以用于存储数量不等的对象,并可以实现常用的数据结构,如栈,队列等.Java集合就像一种容器,可以把多个对象(实际上是对象的引用,但习惯上都称对象) “丢进” 该容器中. 摘自: “疯狂Java讲义”.java中的容器也叫集合,是专门用来管理对象的对象.
2023-02-01 16:29:12
863
转载 Java异常详解
异常:就是程序出现了不正常的情况。异常或者错误,都是以他们所在体系的父类作为后缀。XxxException 异常XxxError 错误A、如何自定义一个异常类?让自定义类继承RuntimeException 或者继承Exception注意:编译时期异常(非RuntimeException),如果在方法内部用throw抛出了一个异常对象那么在方法声明上必须用throws关键字声明异常,运行时期异常就不需要这样。
2023-01-31 15:45:06
85
原创 Dubbo
当消费方调用一个接口方法后,Dubbo Client会并行调用多个服务提供者的服务,只要一个成功即返回。当消费者调用一个接口方法后,Dubbo Client会逐个调用所有服务提供者,任意一台调用异常则这次调用就标志失败。根据服务提供者ip设置hash环,携带相同的参数总是发送的同一个服务提供者,若服务挂了,则会基于虚拟节点平摊到其他提供者上。当服务消费端用服务出现异常后,在后台记录失败的请求,并按照一定的策略后期再进行重试。当服务消费方调用服务提供者失败后,立即报错,也就是只调用一次。按权重设置随机概率。
2023-01-30 14:58:18
97
原创 zookeeper
Zookeeper 分布式服务框架是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。
2023-01-30 14:43:56
93
原创 虚拟机、docker、k8s区别
docker:应用是主机的一个进程,启动比较快,namespace隔离应用,cgroup限制程序资源。k8s:容器管理工具,涵盖的开发、部署、测试、监控等各个环节。虚拟机:hostOS、guestOS两层操作系统。
2023-01-30 10:06:22
557
原创 ES(elasticsearch)
1、初始化mapping:string(text、keyword)、setting(number_of_shards分片数量 (5-10G);分词ik_smart;refresh_interval刷新时间,默认1秒)2、全量更新,调用程序->kafka->ES,增量更新,canal->Rocketmq->程序接收->kafka->ES。3、查询:boost,搜索条件权重。
2023-01-30 10:02:02
85
原创 时间复杂度和空间复杂度
一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数,用T(n)表示,若有某个辅助函数f(n),使得当n趋近无穷大时T(n)/f(n)的极限值为不等于零的常数,则f(n)是T(n)的同数量级函数。当n趋近于无穷大时,如果lim(T(n)/f(n))的值为不等于0的常数,则称f(n)是T(n)的同数量级函数。那么,如果T(n)/f(n)的极限值是等于0,那么就是说f(n)的增长趋势比T(n)大太多,那么就说明他们俩不是一个数量级的。首先你要知道T(n)是f(n)忽略常量、低次幂和最高次幂的系数。
2023-01-29 19:23:06
265
原创 list三个实现类ArrayList、LinkedList、vector
list三个实现类ArrayList、LinkedList、vector
2023-01-29 19:01:29
125
原创 二叉树、B树、B+树、红黑树B树B树与二叉树的区别
B+树的内部节点并没有指向关键字具体信息的指针,因此其内部节点相对B树更小,如果把所有同一内部节点的关键字存放在同一盘块中,那么盘块所能容纳的关键字数量也越多,一次性读入内存的需要查找的关键字也就越多,相对IO读写次数就降低了。,只需要扫一遍叶子结点即可,但是B树因为其分支结点同样存储着数据,我们要找到具体的数据,需要进行一次中序遍历按序来扫,所以B+树更加适合在区间查询的情况,所以通常B+树用于数据库索引。B+关键字集合分布在在叶子节点中,非叶子节点只是关键字叶子节点的索引。红黑树的插入删除效率更高。
2023-01-29 16:27:41
2084
原创 8种基本数据结构
故名思议,双向链表就是有两个方向的链表,同单向链表不同,双向链表中每一个节点不仅存储下一节点的指针,而且存储指向前一个节点的指针。哈希值并不是具有唯一性,在某些情况下Hash值会冲突,HashMap在Hash冲突时,会将元素在数组的位置上添加为链表元素结点,当。的,前一个元素存储的下一个地址中存储的不一定是下一个元素。:单项链表是最简单的链表形式,我们将链表中最基本的数据称为节点(node),每一节点包括数据块和下一节点的指针。对于一个任意节点,如果其右子树的深度为j,其左子树的深度为j或j+1。
2023-01-29 15:48:48
260
原创 Java线程池
keepAliveTime:线程存活的实现, 如果线程池当前有超过 corePoolSize 个线程,并且线程空闲的时间超过了 keepAliveTime,那么这些线程将被销毁.创建一个固定长度的线程池,每当提交一个任务就创建一个线程,直到达到线程池的最大数量,这时线程规模将不再变化,当线程发生未预期的错误而结束时,线程池会补充一个新的线程。创建一个可缓存的线程池,如果线程池的规模超过了处理需求,将自动回收空闲线程,而当需求增加时,则可以自动添加新线程,线程池的规模不存在任何限制。
2023-01-29 11:24:04
72
原创 Java区别比较
一、interface与abstract的相同点:1、都是没有具体实现,需要继承类进行实现;2、无法直接调用;二、interface和abstract的区别:1、interface无构造方法,abstract类可以有构造方法;2、abstract类中可以有普通成员变量,interface 只有抽象方法;3、abstract类的访问类型可以是public或是protected,但interface默认的访问类型就是public abstract。
2023-01-28 16:44:45
216
1
原创 Springboot注解
RestControllerAdvice是一个组合注解,由@ControllerAdvice、@ResponseBody组成,而@ControllerAdvice继承了@Component,因此@RestControllerAdvice本质上是个Component,用于定义@ExceptionHandler,@InitBinder和@ModelAttribute方法,适用于所有使用@RequestMapping方法。标注在类上时,此类的所有方法都将异步执行,标注在类上时,只有此方法异步执行。
2023-01-28 10:50:18
172
Python.Unix和Linux系统管理指南
2013-03-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人