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

Java 进阶

Java 高级特性 笔记

关注
7 已关注
49篇博文
  • Java NIO 浅析

    在阅读本文前,强烈建议阅读一下:《Java NIO AIO 基本概念》 如何结合事件模型使用NIO同步非阻塞特性 回忆BIO模型,之所以需要多线程,是因为在进行I/O操作的时候,一是没有办法知道到...

    2018-10-02 09:38
    31
  • NIO零拷贝与操作系统零拷贝

    零拷贝的定义 Zero-copy, 就是在操作数据时, 不需要将数据 buffer 从一个内存区域拷贝到另一个内存区域. 因为少了一次内存的拷贝, 因此 CPU 的效率就得到的提升. 在 OS...

    2018-10-02 09:24
    60
  • Java NIO AIO 基本概念

    一、NIO 在介绍NIO编程之前,我们首先需要澄清一个概念:NIO到底是什么的简称?有人称之为New I/O,因为它相对于之前的I/O类库是新增的,所以被称为New I/O,这是它的官方叫法。但是,...

    2018-10-02 09:01
    41
  • Java volatile的内存语义与AQS锁内存可见性

    提到volatile首先想到就是: 保证此变量对所有线程的可见性,这里的 “可见性” 是指当一条线程修改了这个变量的值,新值对于其他线程来说是可以立即得知的。 禁止指令重排序优化。 &...

    2018-05-23 19:51
    1139
  • Java并发编程的艺术-final域的内存语义

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    2017-06-03 09:30
    503
img博客搬家
img撰写博客
img发布 Chat
img专家申请
img意见反馈
img返回顶部