java
xiaochao8803
热爱学习,热爱分享
展开
-
Java并发工具类-Semaphore解析
基本概念 Semaphore(信号量)用来限制访问同一资源的线程数量。它通过初始化一个固定数量的配额,当线程要执行时,必须先获取配额才能继续执行,当获取不到时,就需要挂起等待;持有配额的线程执行完后需释放配额,并唤醒等待的线程。 使用方法 public class SemaphoreDemo { public static void main(String[] args) { ...原创 2020-03-12 15:45:44 · 184 阅读 · 0 评论 -
Java并发工具类-CountDownLatch解析
基本概念 我们平时开发中,应该遇到过这样的需求:一个功能需要几个线程一起合作完成,然后要等这些线程都处理完成了,才能继续后续的操作。这时我们就可以选择使用CountDownLatch这个并发工具包。 使用方法 package com.demo; import java.text.SimpleDateFormat; import java.util.Date; import java.util.co...原创 2020-03-12 14:23:27 · 178 阅读 · 0 评论 -
Java同步机制-ReentrantLock使用
文章目录基本概念常用方法CASAQS同步队列运行原理Condition队列运行原理ReentrantLock内部原理公平锁非公平锁 基本概念 ReentrantLock是自JDK1.5开始引入的一种排他锁,它提供了比synchronized更多更灵活的特性,可以被继承、可以有方法、可以有各种各样的类变量。我们看下ReentrantLock如何使用的,代码如下: public class Reent...原创 2020-03-11 21:49:29 · 377 阅读 · 0 评论 -
Java同步机制-synchronized使用
文章目录synchronized简介synchronized使用同步普通方法同步静态方法同步代码块synchronized用法总结 synchronized简介 Java平台中的任何一个对象都有一个与之关联的锁。这种锁被称为监视锁或者内部锁。 内部锁是一种排他锁,它能够保障原子性、可见性和有序性。 synchronized使用 synchronized关键字可以用来修饰方法及代码块,它有如下应用方...原创 2020-03-11 17:56:11 · 217 阅读 · 0 评论 -
java基础面试题
面向对象和面向过程的区别 面向过程 优点: 性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗 资源;比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素。 缺点: 没有面向对象易维护、易复用、易扩展 面向对象 优点: 易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护 缺点: 性...原创 2020-03-11 15:18:14 · 106 阅读 · 0 评论 -
Java多线程编程-基础学习
文章目录1. 基本概念2. 线程创建与启动继承Thread类实现Runnable接口3. 常用方法4. 线程生命周期5. 线程中断什么是中断使用方法中断响应6. 等待(wait)/通知(notify) 1. 基本概念 我们先来了解下什么是进程和线程?他们之间的关系是什么? 进程:进程是程序的运行实例(例如:一个运行的Eclipse就是一个进程),进程是程序向操作系统申请资源(如内存空间和文件句柄...原创 2020-03-11 15:02:49 · 126 阅读 · 1 评论 -
java集合-HashMap分析
我们知道java面试中,HashMap出现的频率是很高的。我们就来分析一下HashMap的常用知识点。 HashMap底层数据结构 我们看到HashMap内部是使用数据+链表/红黑树的(jdk1.8之后加入了红黑树)结构存储的。 HashMap主要参数 DEFAULT_INITIAL_CAPACITY:初始化容量,默认值16,容量大小需要是2的整数倍。 MAXIMUM_CAPACITY:容量的...原创 2020-03-10 15:46:23 · 1238 阅读 · 0 评论