- 博客(6)
- 收藏
- 关注
原创 单例模式的懒汉式,饿汉式详解
什么是单例模式?单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。单例模式的优缺点:优点在内存中只有一个实例对象,减少内存开销。解决了频繁创建和销毁内存实例对象的问题。 避免过多的资源占用。比如:写文件操作缺点:没有接口,不能
2020-05-27 16:26:18
323
原创 如何做一个排行榜功能
如果每次查询TOP 10都去流水表聚拢数据的话,必须是非常耗时的。所以排行榜功能实时查表,显然不可能。所以就需要用到常见的缓存redis了。redis有序集合 redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。有序集合和集合一样可以存储字符串,另外有序集合的成员可以关联一个分数(score),这个分数用于集合排序。不过zset理论上只支持单个权重排序。若想复合权重,可用多个 ZSET 来做不同维度的排.
2020-05-27 10:40:28
3302
原创 解决tcp粘包和半包的问题
此文章为博主还是小白时,遇到的问题,总结一下:正常情况下,包都是完整的一个一个的。但是由于一些网络的问题,可能有些出入(毕竟,网络有点不可控),大致分为以下三种:一种是正常的字符串输出。 一种是多个字符串“粘”在了一起,我们定义这种 ByteBuf 为粘包。 一种是一个字符串被“拆”开,形成一个破碎的包,我们定义这种 ByteBuf 为半包。常见的例子就是:正常包体:"我是程序包,我是程序包,我是程序包",粘包的话:"我是程序包我是程序包",半包是:"我是程序包我?(乱码符号)包"。.
2020-05-26 18:12:18
357
原创 设计一个高效算法,算出随机数组里的中位数
解题思路:通过最大堆、最小堆来实现实时中位数的获取。 最大堆中存放比最小堆小的元素。 如果最大堆的对头元素大于最小堆,则进行交换。 偶数下标的元素存入最小堆,奇数下标的元素存入最大堆public class Median { public int[] getMedian(int[] A, int n) { int[] res = new int[A.length]; Comparator<Integer> co.
2020-05-26 17:22:07
910
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人