随笔分类 - Java核心技术
摘要:一、使用线程池的优点: 1、线程重用,避免线程创建的开销 2、任务过多时,通过队列避免创建过多线程,减少系统资源消耗和竞争,确保任务有序完成 二、如何使用线程池: 1、ThreadPoolExecutor 构造方法: 2、任务拒绝策略:如果队列有界,且maximumPoolSize有限,则当队列排满
阅读全文
摘要:一、锁接口 Lock,ReadWriteLock: 1、Lock,实现类有ReentractLock、WriteLock、ReadLock; 2、ReadWriteLock,主要实现类是ReentrantReadWriteLock,有两个方法 writeLock()、readLock() ,返回值是
阅读全文
摘要:一、CAS (Compare And Swap): CAS(Compare And Swap),即比较并交换 CAS(V,E,N)。是解决多线程并行情况下使用锁造成性能损耗的一种机制,CAS操作包含三个操作数——要更新的变量(V)、预期原值(E)和新值(N)。核心算法是如果V 值等于E 值,则将V
阅读全文
摘要:一、生产者、消费者协作机制: 生产者线程和消费者线程通过共享队列进行协作,生产者将数据或任务放到队列上,而消费者从列队上取数据或任务,如果队列长度有限,在队列满的时候,生产者等待,而在队列为空的时候,消费者等待。 二、同步协作机制: 在一些程序,尤其是模拟仿真程序中,要求多个线程同时开始。 三、主从
阅读全文
摘要:一、什么是反射: 在运行状态中,对于任意一个类,都能够获取到这个类的所有属性和方法(包括私有的方法和属性),对于任意一个对象,都能够调用它的任意一个方法和属性(包括私有的方法和属性),这种动态获取的信息以及动态调用对象的功能就称为java语言的反射机制。通俗点讲,通过反射可以获取该类所有的属性和方法
阅读全文
摘要:一、final 关键字: 1、修饰类时,表示该类不能被继承。定义一个类时不能同时使用 abstract、final关键字修饰; 2、final修饰的变量为常量,不可改变。在定义常量(变量)时需赋值初始化; 3、final修饰方法,称为最终方法。不能被子类重新定义,即不能被重写、重载。 二、final
阅读全文
摘要:一、数据保存的地方: 1、 寄存器:这是最快的保存区域,因为它位于和其他所有保存方式不同的地方:处理器内部。然而,寄存器的数量十分有限,所以寄存器是根据需要由编译器分配。我们对此没有直接的控制权,也不可能在自己的程序里找到寄存器存在的任何踪迹。 2、 堆栈:存放基本类型的数据和对象的引用,但对象本身
阅读全文
摘要:String,StringBuilder,StringBuffer这三个类在Java都能用来操作字符串,但是在性能与线程安全上稍有差异,需要根据使用的业务场景加以注意。以下为差异的详述: 一、String: 1.查看源码发现String类拥有的成员变量value为final,因此一旦创建就无法改变其
阅读全文
摘要:1.BigDecimal 实现了任意精度的浮点数运算,可以使用valueOf方法将普通的数值转换为该对象。
阅读全文

浙公网安备 33010602011771号