博客专栏  >  编程语言   >  Java 进阶

Java 进阶

Java 高级特性 笔记

关注
8 已关注
45篇博文
  • Java并发编程的艺术-final域的内存语义

    final域的重排序规则       对于final域,编译器和处理器要遵守两个重排序规则...

    2018-05-16 07:35
    26
  • Java sleep和wait的区别

    sleep() 方法 wait() 方法 sleep()使当前线程进入停滞状态(阻塞当前线程),让出CUP的使用、目的是不让当前线程独自霸占该进程所获的CPU资源,以留一定时间给其他线程...

    2018-04-05 10:44
    33
  • Java Lambda表达式 实现原理分析

    本文分析基于JDK 9 一、目标 本文主要解决两个问题: 1、函数式接口 到底是什么? 2、Lambda表达式是怎么实现的? 先介绍一个jdk的bin目录下的一个字节码查看工具及反编译工...

    2018-04-06 07:39
    75
  • Java AQS 梳理

    AQS:AbstractQueuedSynchronizer 1、设计简介 AQS的实现是基于一个FIFO的等待队列。 使用单个原子变量来表示获取、释放锁状态(final int)改变该in...

    2018-03-03 20:01
    127
  • JVM 堆与栈

    Java Heap Memory       堆内存(heap memory)是被用来在r...

    2018-02-27 19:11
    113
  • Java 枚举实现原理

    枚举 反编译 示意枚举类如下: package com.jiankunking.test; public enum ApplicationInterfaceTypeEnum { d...

    2018-02-23 20:26
    192
  • 一次Java线程池误用引发的血案和总结

    这是一个十分严重的问题自从最近的某年某月某天起,线上服务开始变得不那么稳定。在高峰期,时常有几台机器的内存持续飙升,并且无法回收,导致服务不可用。例如GC时间采样曲线:和内存使用曲线:图中所示,18:...

    2018-02-04 15:59
    272
  • Java并发编程实战--笔记四

    第13章 显式锁     为什么要创建一种与内置锁如此现实的加锁机制?在大多数情况下,内置锁能很好地工作,但在功能上存在一些局限性,例如,无法中断一个正在等待获取锁的线程,或者无法再请求一个锁时无限地...

    2017-10-13 14:50
    251
  • Java并发编程实战--笔记三

    第8章:线程池的使用 // 在单线程Executor中任务发生死锁(不要这么做) public class ThreadDeadlock { ExecutorService exec = Ex...

    2017-10-13 14:49
    254
  • Java并发编程实战--笔记二

    第5章:基础构建模块     ConcurrentHashMap 与其他并发容器一起增强了同步容器类:他们提供的迭代器不会抛出 ConcurrentModificationException ,因此不...

    2017-10-13 15:03
    354
  • Java并发编程实战--读书笔记(目录)

    一、重点章节摘录 1、 闭锁 CountDownLatch 2、FutureTask 3、计数信号量(Semaphore) 4、 事实不可变对象 5、协作对象间的死锁与开放调用 6、通过线...

    2017-06-08 08:04
    761
  • Java并发编程实战--笔记一

    第1-3章(线程安全性、对象的共享、对象的组合)      无状态对象一定是线程安全的。      要保持状态的一致性,就需要在单个原子操作中更新所有相关的状态变量。      synchron...

    2017-06-04 08:50
    756
  • Java并发编程实战--双重检查加锁( double check lock)与延迟初始化占位

    DCL     在任何一本介绍并发的书中都会讨论声名狼藉的双重检查加锁(DCL)。      下图来自:http://zoroeye.iteye.com/blog/2058889      DCL...

    2017-06-11 09:37
    665
  • Java并发编程实战--显式的Condition对象

    正如Lock是一种广义的内置锁,Condition也是一种广义的内置条件队列。public interface Condition { void await() throws Interrup...

    2017-06-06 07:51
    635
  • Java并发编程实战--this引用逸出

    最近在看《Java 并发编程实践》看到3.2章里面的关于发布和逸出的部分,写一下心得,算是mark一下,主要是构造过程中this引用的逸出。     书上面给出了一个构造过程中this逸出的例子:pu...

    2017-06-04 08:25
    714
  • Java并发编程实战--Amdahl定律

    在有些问题中,如果可用资源越多,那么问题的解决速度就越快。例如,如果参与收割庄稼的工人越多,那么就能越快地完成收割工作。而有些任务本质上是串行的,例如,即使增加再多的工人也不能增加作物的生长速度。如果...

    2017-06-03 09:30
    453
  • Java并发编程实战--通过线程转储信息来分析死锁

    虽然防止死锁的主要责任在于你自己,但JVM仍然通过线程转储来帮助识别死锁的发生。线程转储包括各个运行中的线程的栈追踪信息,这类似于发生异常时的栈追踪信息。线程转储还包括加锁信息,例如每个线程持有了哪些...

    2017-06-03 08:52
    785
  • Java并发编程实战--协作对象间的死锁与开放调用

    某些获取多个锁的操作并不像在LeftRightDeadlock或transferMoney中那么明显,这两个锁并不一定必须在同一个方法中被获取。下面两个相互协作的类,在出租车调度系统中可能会找到它们。...

    2017-06-03 08:39
    608
  • Java并发编程实战--事实不可变对象

    如果对象在发布后不会被修改,那么对于其他在没有额外同步的情况下安全地访问这些对象的线程来说,安全发布是足够的。所有的安全发布机制都能确保,当对象的引用对所有访问该对象的线程可见时,对象发布时的状态对于...

    2017-05-24 13:08
    645
  • Java并发编程实战--计数信号量(Semaphore)

    计数信号量(Counting Semaphore)用来控制同时访问某个特定资源的操作数量,或者同时执行某个指定操作的数量。计数信号量还可以用来实现某种资源池,或者对容器施加边界。Semaphore中管...

    2017-05-24 13:06
    473
img博客搬家
img撰写博客
img发布 Chat
img专家申请
img意见反馈
img返回顶部