![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java核心技术
文章平均质量分 85
m_xiaoer
这个作者很懒,什么都没留下…
展开
-
关于synchronized的Monitor Object机制的研究
这是一道面试题Synchronized 介绍monitor Object 设计模式Monitor(java多线程同步机制)Refersynchronized介绍 synchronized关键字通过修饰一个方法或声明一个代码块,从而产生一个同步对象锁以及对应的同步代码块。 每当有线程要对该同步代码块进行访问时,线程就会首先尝试去获取该对象锁,并在成功获取到对象锁后,对该同步代码原创 2017-06-15 10:04:35 · 9675 阅读 · 0 评论 -
JUC(Lock)和Monitor Object(Synchronized)机制区别是什么
这是一道面试题synchronized和lock的用法区别synchronized和lock性能区别Refer一、synchronized和lock的用法区别 synchronized:在需要同步的对象中加入此控制,synchronized可以加在方法上,也可以加在特定代码块中,括号中表示需要锁的对象。 lock:需要显示指定起始位置和终止位置。一般使用ReentrantLoc原创 2017-06-18 17:41:01 · 2713 阅读 · 0 评论 -
AQS原理浅析
这是一道面试题:简述AQS原理 AQS核心思想是,如果被请求的共享资源空闲,则将当前请求资源的线程设置为有效的工作线程,并且将共享资源设置为锁定状态。如果被请求的共享资源被占用,那么就需要一套线程阻塞等待以及被唤醒时锁分配的机制,这个机制AQS是用CLH队列锁实现的,即将暂时获取不到锁的线程加入到队列中。 CLH(Craig,Landin,and Hagersten)队列是一个虚拟的双原创 2017-06-19 17:33:19 · 10181 阅读 · 0 评论 -
关于CAS的研究
引言什么是CAS一、引言 在JDK 5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁。锁机制存在以下问题:(1)在多线程竞争下,加锁、释放锁会导致比较多的上下文切换和调度延时,引起性能问题。(2)一个线程持有锁会导致其它所有需要此锁的线程挂起。(3)如果一个优先级高的线程等待一个优先级低的线程释放锁会导致优先级倒置,引起性能风险。volatile是不错的机制,但原创 2017-06-20 11:50:24 · 452 阅读 · 0 评论 -
全面解读Java NIO工作原理
输入/输出:概念性描述 本文简介: JDK 1.4 中引入的新输入输出 (NIO) 库在标准 Java 代码中提供了高速的、面向块的 I/O。本实用教程从高级概念到底层的编程细节,非常详细地介绍了 NIO 库。您将学到诸如缓冲区和通道这样的关键 I/O 元素的知识,并考察更新后的库中的标准 I/O 是如何工作的。您还将了解只能通过 NIO 来完成的工作,如异步 I/O 和直接缓冲区。 输原创 2017-06-20 20:34:57 · 1444 阅读 · 0 评论 -
简述DCL失效原因,解决方法
这是一道面试题DCL单例模式 针对延迟加载法的同步实现所产生的性能低的问题,我们可以采用DCL,即双重检查加锁(Double Check Lock)的方法来避免每次调用getInstance()方法时都同步。实现方式如下:public class LazySingleton { private int someField; private static LazySingleton原创 2017-06-20 10:06:38 · 1907 阅读 · 1 评论 -
浅谈GC垃圾回收器
浅谈GC垃圾回收器java中四种类型的垃圾回收器Java 8 的新特性与Java垃圾回收有关的JVM关键配置使用JVM GC参数的例子Java垃圾回收器的性能评估工具小结Refer 一、Java有四种类型的垃圾回收器:1、串行垃圾回收器(Serial Garbage Collector)2、并行垃圾回收器(Parallel Garbage Collector)3、并发标记扫描垃圾回原创 2017-06-24 17:22:32 · 566 阅读 · 0 评论 -
关于GC常用算法的研究
关于GC常用算法的研究GC策略解决了哪些问题?GC策略采用的何种算法?对象分类对象对应的内存区域JAVA堆的对象回收(夭折对象和老不死对象)方法区的对象回收(不灭对象)回收的时机增量式GC详解函数finalizeGC程序交互Java编程建议 一、GC策略解决了哪些问题?既然是要进行自动GC,那必然会有相应的策略,而这些策略解决了哪些问题呢,粗略的来说,主要有以下几点。1、哪原创 2017-06-22 15:51:59 · 466 阅读 · 0 评论 -
Java内存区域与内存溢出
内存区域内存溢出内存区域 Java虚拟机在执行Java程序的过程中会把他所管理的内存划分为若干个不同的数据区域。Java虚拟机规范将JVM所管理的内存分为以下几个运行时数据区:程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区。下面详细阐述各数据区所存储的数据类型。 程序计数器(Program Counter Register)一块较小的内存空间,它是当前线程所执行的字节码的行原创 2017-06-22 11:19:36 · 246 阅读 · 0 评论