java
王先森的编程与世界
爱编程,爱生活。
公众号首发:王先森的编程与世界
简书号:王先森的编程与世界
展开
-
ReentrantLock原理详解
文章目录前言一、ReentrantLock是如何实现的?二、lock 和 unlock的过程分析2.1 ReentrantLock的两个构造器2.2 lock过程2.3 unlock过程三、公平锁和非公平锁的区别四、Synchronized和ReentrantLock的区别4.1 功能区别4.2 性能区别4.3 ReentrantLock的特有性质前言了解ReentrantLock的原理和底层实现一、ReentrantLock是如何实现的?ReentrantLock 主要利用CAS 和 AQS队列实原创 2020-06-16 22:41:12 · 564 阅读 · 0 评论 -
AQS队列到底是什么?
文章目录前言:为什么要了解AQS?一、AQS是什么?二、AQS如何实现的?2.1、state2.2、FIFO同步队列三、AQS一些特点3.1 共享锁和独占锁3.1.1 要实现一个独占锁,需要重写tryAcquire,tryRelease方法3.1.2 要实现共享锁,需要重写tryAcquireShared、tryReleaseShared3.2 等待状态位四、了解AQS的整体流程五、AQS详细分析5.1 Sync.nonfairTryAcquire5.2 AbstractQueuedSynchronizer原创 2020-06-14 22:37:16 · 3949 阅读 · 0 评论 -
多线程——Synchronized原理实现
文章目录前言:为什么使用synchronized?一、synchronized的作用1.1原子性1.2 可见性1.3 有序性二、synchronized的作用范围2.1 修饰静态方法2.2 修饰实例方法2.3 修饰代码块三、synchronized底层原理3.1 修饰实例方法3.2 修饰代码块四、synchronized锁的底层原理实现五、synchronized锁的优化5.1 偏向锁5.2 轻量级锁5.3 重量级锁5.4 锁升级5.5 锁消除5.6 锁粗化前言:为什么使用synchronized?在多原创 2020-06-13 21:35:56 · 304 阅读 · 0 评论 -
关于IO、NIO、BIO、AIO必知二三事
目录一、IO介绍1.1 认识IO1.2 关于IO的操作二、关于同步和异步、阻塞和非阻塞2.1 同步和异步、阻塞和非阻塞 概念2.2 同步和异步、阻塞和非阻塞的组合三、BIO、NIO、AIO3.1 BIO、NIO、AIO 简介3.1.1 BIO3.1.2 NIO3.1.3 AIO3.2 补充NIO知识3.2.1 Buffer(缓冲区)3.2.2 通道(Channel)3.2.3 多路复用器Selector一、IO介绍1.1 认识IOIO 全称 Input / Output ,输入输出。传统的IO操作大原创 2020-06-08 22:50:39 · 196 阅读 · 0 评论 -
详解字节流和字符流
目录一、明确字符和字节的概念二、关于 java中字节流和字符流2.1 字节流,字符流概念2.2 java中的字节流,字符流相关API2.3 字符流,字节流API的使用三、字节流和字符流的区别四、使用场景判断4.1 数据格式4.2 数据来源4.3 是否需要格式化输出4.4 是否需要缓冲4.5 输入还是输出4.6 是否有流转化4.7 特殊需要一、明确字符和字节的概念字节:1 byte = 8 bit字符:1 char = 2 byte = 16 bit(java默认)在计算机硬件层面,1 bit 是数据原创 2020-06-08 22:35:59 · 1475 阅读 · 0 评论 -
Java——接口和抽象类的异同
1原创 2020-01-06 20:05:42 · 129 阅读 · 0 评论 -
java基础——加强版for循环
文章目录1、用法2、益处3、弊端1、用法在java 5.0版本之后,就有了加强版for循环,也被叫做“for-Each循环”。它是for循环的一种,在操作数组和集合方面提高了便利性。语法如下:// ElementsType元素类型,Array 数组或集合for(ElementsType element:Array){ //operation}举个栗子:public cla...原创 2019-12-18 18:30:25 · 656 阅读 · 0 评论