Java并发
未读
SynchronousQueue和LinkedBlockingQueue的区别
无界队列:当 this.queues <= 0 时,使用 SynchronousQueue(无容量,直接传递任务给线程)。 有界队列:当 this.queues > 0 时,使用 LinkedBlockingQueue(固定容量,可缓冲任务)。 关键区别: SynchronousQueue:任务提交
Java并发
未读
synchronized的实现原理
【得分点】 对象头、锁升级 【参考答案】 标准回答 synchronized的底层是采用Java对象头来存储锁信息的,并且还支持锁升级。 Java对象头包含三部分,分别是Mark Word、Class Metadata Address、Array length。其中,Mark Word用来存储对象的
Java并发
未读
submit和execute的区别
1、submit 提交指定的任务去执行并且返回 Future 对象,即执行的结果 2、execute 开启线程,执行池中的任务 3、区别 execute()方法用于提交不
Java并发
未读
shutdown和shutdownNow的区别
1、如何正确关闭线程池 示例: public class ShutDownThreadPoolDemo {
private ExecutorService service = Executors.newFixedThreadPool(10);
public static void m
Java并发
未读
0x01 Java并发常见问题
Java 并发 - 理论基础 多线程的出现是要解决什么问题的? 线程不安全是指什么? 举例说明 并发出现线程不安全的本质什么? 可见性,原子性和有序性。 Java是怎么解决并发问题的? 3个关键字,JMM和8个Happens-Before 线程安全是不是非真即假? 不是 线程安全有哪些实现思路? 如
Java基础
未读
生成包含 N 个重复字符的 Java 字符串
1、概述 在本教程中,我们将熟悉**生成N 个重复字符的*字符串***的不同选项。当我们需要添加填充空白、生成 ASCII 艺术等时,这会派上用场。 这个问题在 JDK11 中很容易解决,但是如果我们使用的是早期版本,那么还有很多其他的解决方案可用。我们将从最常见的方法开始,并从一些库中添加其他方法
Java基础
未读
深拷贝、浅拷贝和引用拷贝的区别
浅拷贝 仅拷贝被拷贝对象的成员变量的值,也就是基本数据类型变量的值和引用数据类型变量的地址值,而对于==引用类型变量指向的堆中的对象不会拷贝==。 浅拷贝时如果对象的属性是基本类型,会复制吗? 会直接复制变量的值 浅拷贝会创建新的对象吗? 会创建一个新的对象。 新对象和旧对象中的所有引用类型的属性地