![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
深入一点
focuson_
这个作者很懒,什么都没留下…
展开
-
装饰器、静态代理、动态代理
装饰器介绍:要修改一个类的方法,该类已经存在时,用到装饰器模式装饰者要和被装饰者实现同一个接口装饰者要声明一个以被装饰者接口为入参的构造器装饰者内部,想要改造的方法自己实现,不想要改造的方法使用被装饰者的方法使用时,已有一个被装饰者的对象,new一个装饰者,把被装饰者传进去之后该接口的实现类就可以使用该装饰类缺点:如果该类有多个方法时,写一个装饰类会有很多代码冗余,代码不太雅观例子如下:存在一个接...原创 2018-05-06 23:01:02 · 557 阅读 · 0 评论 -
redis
redis应用五种数据结构:string/list/set/hash/zset string是动态字符串,可以通过append追加。类似于java中的arraylist,采用的是预分配冗余空间来减少内存空间的频繁分配,当字符串小于1M时,扩容都是加倍现有空间,当大于1M时,扩容是增加1M空间,redis字符串最大是512M。 list相当与java中的linkedlist(其实不是,zip...原创 2019-08-23 16:30:52 · 181 阅读 · 0 评论 -
集合
hashmap、hashtable、concurrenthashmap、treemap底层结构:链表数组 hashmap线程非安全表现在?put时数据不一致,java多线程是通过线程轮流切换并分配处理器时间的方式实现的,假定有两个线程A和B,当A线程定位到桶的索引坐标和链表头时,时间片用完了,此时B线程执行,但是B线程定位到的桶索引坐标和A一样,并且插入成功,此时时间片再分配给A之后,A会...原创 2019-08-23 16:28:29 · 130 阅读 · 0 评论 -
排序算法
冒泡排序元素两两交换,最终选择一个最大的放到最后,完成一次冒泡;第二次在剩下的元素中再两两交换,选择一个最大的放到剩下元素的最后,以此类推..时间复杂度,是稳定的,最好和最坏都是O(n^2) public static void bubbleSort(int[] arr) { int len = arr.length; for (int i = ...原创 2019-08-23 16:30:07 · 137 阅读 · 0 评论 -
ACID CPA BASE
ACID传统数据库的四大特性:atomicity consistency isolation druabilitycap分布式服务中,存在以下三种特性,但不会同时满足这三种,最多只能满足其中两种consistency availability partition tolerabce一句话概括:在分区容错性下,数据一致性和可用性只能满足其中一个。在分布式系统中...原创 2019-08-23 16:28:50 · 191 阅读 · 0 评论 -
flink
checkpointBarriers当接收到jobmanager要进行checkpoint的请求时,会在当前source的数据插入一个barrier,随之该barrier往下游走,期间需要进行快照的操作只要碰到barrier,就会触发自身的快照操作,当所有sink确认快照后,就会向checkpoint协调器发送确认该快照完成,当失败重启时,会从最近一次成功保存的快照恢复。barrier的...原创 2019-08-23 16:30:40 · 453 阅读 · 0 评论 -
java内存相关
jvm接https://blog.csdn.net/focuson_/article/details/81170959垃圾回收算法标记算法无论哪种垃圾回收算法,都需要找到垃圾对象。有两种算法:1、引用计数算法:堆中每个对象都有一个引用计数器,引用时加1,对象回收时,他引用的任何对象引用都减1,但是难以检测出对象之间的循环引用,增加了程序执行的开销,早期的jvm使用该算法2、根搜...原创 2019-08-05 20:57:57 · 148 阅读 · 0 评论 -
java的四种引用
java的四种引用强引用即为一般引用,软引用会在内存不足时回收,弱引用则是在GC时立即回收,虚引用一般用于标记GC对对象内存的操作。1、强引用平时使用的都是强引用,把一个对象创建并赋给一个引用变量。强引用有引用变量指向时,不会进行回收这种对象,直至oom。如果想中断强引用和某个对象之间的关联,可以显示地将引用赋值为null,这样一来的话,JVM在合适的时间就会回收该对象,但也...原创 2018-10-02 13:41:23 · 201 阅读 · 0 评论 -
jvm
三种JVM Sun公司的HotSpot; BEA公司的JRockit; IBM公司的J9 JVM; 在JDK1.7及其以前我们所使用的都是Sun公司的HotSpot,但由于Sun公司和BEA公司都被oracle收购,jdk1.8将采用Sun公司的HotSpot和BEA公司的JRockit两个JVM中精华形成jdk1.8的JVM。程序计数器Prog...原创 2018-07-23 17:09:05 · 1829 阅读 · 0 评论 -
简单工厂、工厂方法、抽象工厂
简单工厂1public class SimpleFactory { public static void main(String[] args) { factory.getInstance(factory.XINGWEI_CHI).xingWei();; }}interface Person{ public void xingWei();}class Chi implemen...原创 2018-05-13 23:54:38 · 198 阅读 · 0 评论