GaryLee's Blog
深拷贝和浅拷贝有什么区别? 深拷贝和浅拷贝有什么区别?
一、深拷贝和浅拷贝有什么区别?深拷贝和浅拷贝大概区别如下: 浅拷贝:只拷贝引用(即原对象和拷贝对象的属性都指向同一个内存地址) 深拷贝:全部拷贝(即原对象和拷贝对象的属性也会完全拷贝一个新的对象而不是拷贝引用) 1、浅拷贝如何进行浅拷贝
2023-10-23
Java数据类型和包装类型 Java数据类型和包装类型
一、Java中有哪些基本数据类型? 基本数据类型 位数 字节 默认值 取值范围 byte 8 1 0 -128~127 short 16 2 0 -3276832767(-2^152^15-1) int 32 4 0 -2
2023-10-20
线程池工作原理 线程池工作原理
一、什么是线程池?具体可参考《线程池学习笔记》 二、举个栗子(用比喻的方式解释线程池工作原理)1、相关名词 线程池 开发部门 核心线程 正式员工(长期存在) 非核心线程 非正式员工(如外包员工,需要才用到) 执行任务 开发
2023-10-20
Object类的equals和hashCode方法有什么用? Object类的equals和hashCode方法有什么用?
一、背景众所周知,在Java中Object类是所有类的父类,也就是说所有类都会有equals和hashCode方法。 二、equals()方法1、代码实现public boolean equals(Object obj) { ret
2023-10-19
ElasticSearch的基本概念 ElasticSearch的基本概念
一、ElasticSearch的基本概念ElasticSearch中有一些基本概念如下: Index(索引):指同一类有相似特征的文档的集合,类似MySQL中的表,如用户索引、频道索引等 Document(文档):指可搜索的最小单位,一个
2023-10-18
如何实现本地缓存? 如何实现本地缓存?
一、为什么要用本地缓存?正常情况下,我们不使用本地缓存而直接使用分布式缓存(如Redis)的话,就会涉及网络调用,会出现一定的性能消耗,所以在大型项目中,一般使用多级缓存也就是本地缓存+分布式缓存来实现缓存查询,进一步提高系统性能。(具体可
2023-10-05
Kafka高水位是什么? Kafka高水位是什么?
一、Kafka的高水位是什么?在Kafka中,一条消息只有被成功提交了才能被消费者消费,而提交的进度就是用高水位来表示。 高水位也叫做HW,指的是未提交消息中最早的offset(意味着消费者只能消费offset之前的消息)。。 二、高水位
2023-10-03
线程池的最佳实践 线程池的最佳实践
一、线程池的最佳实践1、正确创建线程池线程池应该避免使用Executors类来创建,而应该用ThreadPoolExecutor类来创建,避免出现OOM。(具体可参考《线程池有哪几种?为什么不建议用Executors创建?》) 2、监控线程
2023-10-03
线程池有哪几种?为什么不建议用Executors创建? 线程池有哪几种?为什么不建议用Executors创建?
一、线程池有哪几种?在Java中,线程池有4种,都是通过工具量Executors创建的,而线程池的最终实现类是ThreadPoolExecutor,这4种线程池分别是: newCachedThreadPool(缓存线程池):可以用来处理突
2023-10-03
如何并发执行多个任务并等待执行结果? 如何并发执行多个任务并等待执行结果?
一、为什么要并发执行多个任务,而不是一个个顺序执行呢?比如一个接口执行了A、B、C三个任务,分别耗时1、2、3秒,如果顺序执行的话,总耗时需要6秒,代码如下: public class TestExecuteClass { @Tes
2023-10-02
Kafka中Partition和Consumer数量应该怎么分配? Kafka中Partition和Consumer数量应该怎么分配?
一、背景Kafka中各个概念关系如下: 一个Topic有多个Partition 一个Consumer Group有多个Consumer 一个Consumer可以监听多个Partition 二、Kafka中Partition和Consum
2023-10-02
压测分析 压测分析
一、什么是压测?为什么要做压测?压测,也叫做压力测试,是通过模拟用户请求,来帮助我们评估系统QPS和发现系统瓶颈所在,是一个高可用系统的一个必要手段之一。 二、压测流程是怎样的?一般压测分为以下几步: 确定压测目标:如哪个接口/方法、压测
4 / 15