java
好久不见-PLUS
这个作者很懒,什么都没留下…
展开
-
繁琐的if else替代
在开发中我们总会遇到很多需要根据不同的状态活着标识判断执行不同的操作,当有大量的这种代码出现时,对于后期的维护就是灾难 int a = 1; if(a == 1){ }else if(a == 2){ doSomeThing(); }else if(a == 3){ doSomeThing(); }else if(a == 4){ doSomeThing(); }el...原创 2020-02-12 16:29:30 · 255 阅读 · 0 评论 -
HASMAP结构图
为什么HashMap是线程不安全的 1.如果多个线程同时使用put方法添加元素会丢失元素 假设正好存在两个put的key发生了碰撞,那么根据HashMap的实现,这两个key会添加到数组的同一个位置,这样最终就会发生其中一个线程的put的数据被覆盖。 2.多线程同时扩容会造成死循环 多线程同时检查到扩容,并且执行扩容操作,在进行rehash的时候会造成闭环链表,从而在get该位置元素的...原创 2019-11-28 10:37:00 · 317 阅读 · 0 评论 -
设计模式的六大原则
1、开闭原则(Open Close Principle) 开闭原则的意思是:对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。简言之,是为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类,后面的具体设计中我们会提到这点。 2、里氏代换原则(Liskov Substitution Principle) 里氏代换原则是面...原创 2019-06-28 13:47:03 · 82 阅读 · 0 评论