自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 java面试题

1)jps或者top找到进程ID,top -Hp找到线程ID,然后线程ID转16进制(堆栈信息中存储16进制线程ID)相互等待的线程不可用(如本来有5个线程工作,现在2个线程卡住了,只有3个线程能工作了)2)jstact 进程ID | grep 线程ID(16进制) -A行数。3)占有资源的线程,进一步获取资源资格,如果获取不到,则释放锁。1)堆内存溢出,常见大量对象,但是并不回收,导致内存泄漏。4)按序获取,例如每次都获取序号小的,再获取序号大的。4)超多线程的应用程序,线程调度的开销极大。

2023-05-27 15:43:42 75 1

原创 设计模式

7.代理模式(Proxy) 为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。1.适配器模式(Adapter) 适配器模式就是将一个类的接口,转换成客户期望的另一个接口。2.建造者模式(Builder) 当一个类的构造函数参数个数超过4个,而且这些参数有些是可选的参数,考虑使用构造者模式。4.原型模式(Prototype) 使用原型实例指定待创建对象的类型,并且通过复制这个原型来创建新的对象。

2023-05-09 16:55:03 71

原创 mysql 和索引优化

16.并不是所有索引对查询都有效,SQL是根据表中数据来进行查询优化的,当索引列有大量数据重复时,SQL查询可能不会去利用索引,如一表中有字段sex,male、female几乎各一半,那么即使在sex上建了索引也对查询效率起不了作用。说明:MySQL并不是跳过offset行,而是取offset+N行,然后返回放弃前offset行,返回N行,那当offset特别大的时候,效率就非常的低下,要么控制返回的总页数,要么对超过特定阈值的页数进行SQL改写。not in则不走索引;如:where c>?

2023-05-09 16:52:44 197

原创 线程和锁

4.递归锁(可重入锁):任何线程获取了锁之后可以再次获取该锁而不会被阻塞,识别获取锁的线程是否为当前占据锁的线程,如果是则再次成功获取。8.共享锁:多个线程可以获取读锁,以共享的形式持有,本质上与乐观锁,读写锁一样,JAVA的共享锁也是ReentrantReadWriteLock。9.独占锁:只有一个线程可以获取锁,与悲观锁,互斥锁一样,JAVA的独占锁有:synchronized,ReentrantLock。Lock:Java中的接口,可重入锁、悲观锁、独占锁、互斥锁、同步锁。7.超时等待(sleep)

2023-05-09 16:51:26 90 1

原创 Redis缓存简述

Redis cluster,10 台机器,5 台机器部署了 Redis 主实例,另外 5 台机器部署了 Redis 的从实例,每个主实例挂了一个从实例,5 个节点对外提供读写服务,每个节点的读写高峰 QPS 可能可以达到每秒 5 万,5 台机器最多是 25 万读写请求每秒。不好在于,元数据的更新有延时,可能导致集群中的一些操作会有一些滞后。若缓存的数据更新频繁或者在缓存刷新的流程耗时较长的情况下,可以利用定时线程在缓存过期前主动地重新构建缓存或者延后缓存的过期时间,以保证所有的请求能一直访问到对应的缓存。

2023-05-09 16:46:14 117

原创 Es 介绍

每隔 5s,将数据写入 translog 文件(这样如果机器宕机,内存数据全没,最多会有 5s 的数据丢失),translog 大到一定程度,或者默认每隔 30mins,会触发 commit 操作,将缓冲区的数据都 flush 到 segment file 磁盘文件中。拆分多个 shard 是有好处的,一是支持横向扩展,比如你数据量是 3T,3 个 shard,每个 shard 就 1T 的数据,若现在数据量增加到 4T,怎么扩展,很简单,重新建一个有 4 个 shard 的索引,将数据导进去;

2023-05-08 17:20:24 2376 1

原创 消息队列介绍

2.在 Kafka 服务端设置 min.insync.replicas 参数:这个值必须大于 1,这个是要求一个 leader 至少感知到有至少一个 follower 还跟自己保持联系,没掉队,这样才能确保 leader 挂了还有一个 follower 吧。3)未消费到消息:如果按照上述的思路设置了 acks=all ,一定不会丢,要求是,你的 leader 接收到消息,所有的 follower 都同步到了消息之后,才认为本次写成功了。1)kafka设置一个topic一个分区,然后消费者一个线程消费。

2023-05-08 17:20:15 52 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除