GaryLee's Blog
什么是AQS? 什么是AQS?
一、什么是AQS?AQS也就是AbstractQueuedSynchronizer(抽象队列同步器),放在java.util.concurrent.locks包下。 AQS是一个抽象类,大概定义如下: public abstract cla
2023-10-29
什么是volatile?能保证原子性吗? 什么是volatile?能保证原子性吗?
一、什么是volatile?volatile是Java中一个关键字,用来修饰变量。可以用来保证多线程下访问的变量的可见性,但是不能保证原子性。 二、volatile如何保证可见性?volatile翻译成不稳定的,一般我们的变量存在主内存里,
2023-10-27
什么是线程死锁?如何避免? 什么是线程死锁?如何避免?
一、什么是线程死锁?线程死锁指的是多个线程互相阻塞,它们中间的一个或者多个在等待某个资源被释放。由于线程一直被阻塞,所以程序也就一直被阻塞。 如图所示,线程A持有资源2,线程B持有资源1,而此时线程A想请求资源1,线程B想请求资源2,导致两
2023-10-26
Java集合详解 Java集合详解
一、什么是Java集合?Java集合也叫做容器,主要分为两种: Collection接口:用于存放单一元素,实现有Set、List、Queue等 Map接口:用于存放键值对,实现有HashMap、LinkedHashMap、Hashtab
2023-10-25
什么是语法糖? 什么是语法糖?
一、什么是语法糖?语法糖(Syntactic Sugar)也称糖衣语法,指在计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。 二、Java中有哪些常见的语法糖?Java中有以下几种常见的语法糖: swit
2023-10-24
什么是反射机制? 什么是反射机制?
一、什么是反射?在Java中,反射是我们可以通过一个类名来获取它所有的属性和方法,同时也可以调用这些属性和方法。 二、反射的优缺点反射的优缺点如下:优点: 灵活 缺点: 不安全(如无视泛型,相关文章可参考《什么是泛型?有什么用?》)
2023-10-24
Java是值传递还是引用传递? Java是值传递还是引用传递?
一、什么是形参和实参?形参和实参都指的是参数,他们的区别在于: 形参:用于传递给方法的参数,需要赋值 实参:用于方法定义来接收实参,不需要赋值 public class TestClass { public static voi
2023-10-24
什么是泛型?有什么用? 什么是泛型?有什么用?
一、什么是泛型?在Java中,泛型是指在定义类和接口时允许使用类型参数,声明的类型参数在使用时才用具体的类型来替换。 为什么要使用泛型?: 代码复用:比如我们常用的List,我们平时要将String、Integer等类型放入List中。如
2023-10-23
Java字符串要注意哪些问题? Java字符串要注意哪些问题?
一、String、StringBuffer、StringBuilder有什么区别?String、StringBuffer、StringBuilder区别如下: 线程安全性:String线程安全(因为不可变),StringBuffer线程安
2023-10-23
深拷贝和浅拷贝有什么区别? 深拷贝和浅拷贝有什么区别?
一、深拷贝和浅拷贝有什么区别?深拷贝和浅拷贝大概区别如下: 浅拷贝:只拷贝引用(即原对象和拷贝对象的属性都指向同一个内存地址) 深拷贝:全部拷贝(即原对象和拷贝对象的属性也会完全拷贝一个新的对象而不是拷贝引用) 1、浅拷贝如何进行浅拷贝
2023-10-23
Java数据类型和包装类型 Java数据类型和包装类型
一、Java中有哪些基本数据类型? 基本数据类型 位数 字节 默认值 取值范围 byte 8 1 0 -128~127 short 16 2 0 -3276832767(-2^152^15-1) int 32 4 0 -2
2023-10-20
线程池工作原理 线程池工作原理
一、什么是线程池?具体可参考《线程池学习笔记》 二、举个栗子(用比喻的方式解释线程池工作原理)1、相关名词 线程池 开发部门 核心线程 正式员工(长期存在) 非核心线程 非正式员工(如外包员工,需要才用到) 执行任务 开发
2023-10-20
4 / 16