![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA
caitao_1991
这个作者很懒,什么都没留下…
展开
-
三色标记法与读写屏障
三色标记法与读写屏障路过的猪关注12020.02.14 17:16:39字数 2,694阅读 5,217前言本文主要介绍了三色标记法的基本思路、多标导致的浮动垃圾、漏标的处理方案(读写屏障)等。1. 垃圾回收的简单回顾关于垃圾回收算法,基本就是那么几种:标记-清除、标记-复制、标记-整理。在此基础上可以增加分代(新生代/老年代),每代采取不同的回收算法,以提高整体的分配和回收效率。无论使用哪种算法,标记总是必要的一步。这是理算当然的,你不先找到垃圾,怎么进行回收?垃圾回收器转载 2020-09-01 10:19:22 · 403 阅读 · 0 评论 -
钉钉服务端api二次封装
基于钉钉服务端api二次封装的开箱即用的开发框架(主要针对企业内部微应用服务端api的封装)。。。github地址原创 2020-08-31 16:16:58 · 697 阅读 · 0 评论 -
设计模式六大原则
1.设计模式的目的设计模式是为了更好的代码重用性,可读性,可靠性,可维护性。2.常用的六大设计模式1)单一职责原则2)里氏替换原则3)依赖倒转原则4)接口隔离原则5)迪米特法则6)开闭原则3.单一职责原则该原则是针对类来说的,即一个类应该只负责一项职责。如类T负责两个不同职责:职责P1,职责P2。当职责P1需求变更而改变T时,可能造成职责P2发生故障,所以需要将类T的粒度分解为T1,T2。示例如下:用一个类秒数动物呼吸这个场景class Animal { pu转载 2020-06-17 10:58:15 · 132 阅读 · 0 评论 -
你真的懂wait、notify和notifyAll吗
生产者消费者模型是我们学习多线程知识的一个经典案例,一个典型的生产者消费者模型如下: public void produce() { synchronized (this) { while (mBuf.isFull()) { try { wait(); } catch (InterruptedException e) { .转载 2020-06-17 08:47:37 · 157 阅读 · 0 评论 -
static、final、static final的区别
static、final、static final的区别final: final可以修饰属性,方法,类,局部变量(方法中的变量) final修饰的属性的初始化可以在编译期,也可以在运行期,初始化后不能被改变。 final修饰的属性跟具体对象有关,在运行期初始化的final属性,不同对象可以有不同的值。 final修饰的属性表明是一个常数(创建后不能被修改)。 final修饰的方法表示该方法在子类中不能被重写; final修饰的类表示该类不能被继转载 2020-05-12 08:52:20 · 106 阅读 · 0 评论 -
XML之命名空间的作用(xmlns)
命名空间的作用,下面的内容是转载的,大家可以看看: 问题的出现:XML的元素名字是不固定的,当两个不同的文档使用同样的名称描述两个不同类型的元素的时候,或者一个同样的标记表示两个不同含义的内容的时候,就会发生命名冲突。问题的解决:命名空间(Namespace),对于每一套特定应用的DTD,给它一个独一无二的标志来代表,如果在XML中使用DTD中定义的元素,需将DTD...转载 2020-05-10 18:05:40 · 1781 阅读 · 0 评论 -
Java7的异常处理新特性-addSuppressed()方法等
Java7的异常处理新特性-addSuppressed()方法等开发人员对异常处理的try-catch-finally语句块都比较熟悉。如果在try语句块中抛出了异常,在控制权转移到调用栈上一层代码之前,finally语句块中的语句也会执行。但是finally语句块在执行的过程中,也可能会抛出异常。如果finally语句块也抛出了异常,那么这个异常会往上传递,而之前try语句块中的那个异常就丢...转载 2020-04-25 14:57:59 · 519 阅读 · 0 评论