摘要:
1、面向对象和面向过程的区别 面向过程: 是分析解决问题的步骤,然后用函数把这些步骤一步一步地实现,然后在使用的时候一一调 用则可。性能较高,所以单片机、嵌入式开发等一般采用面向过程开发。 面向对象:是把构成问题的事务分解成各个对象,而建立对象的目的也不是为了完成一个个步骤,而是为了描述某个事物在解 阅读全文
摘要:
JVM系统学习之路系列演示代码地址: https://github.com/mtcarpenter/JavaTutorial 虚拟机栈概述 由于跨平台性的设计,Java的指令都是根据栈来设计的。不同平台 CPU 架构不同,所以不能设计为基于寄存器的。 优点是跨平台,指令集小,编译器容易实现,缺点是性 阅读全文
摘要:
JVM系统学习之路系列演示代码地址: https://github.com/mtcarpenter/JavaTutorial 本篇将 运行时数据区概述及线程 和 程序计数器 的知识点由于不是很多所以就一起梳理,也是为后续学习的知识点做一个铺垫。 运行时数据区概述 运行时数据区,它是在类加载完成后的阶 阅读全文
摘要:
JVM系统学习之路系列演示代码地址: https://github.com/mtcarpenter/JavaTutorial 前言 大家好,我是小春哥,前面我用了10多个章节对并发编程 JUC 相关知识进行梳理,如果对 JUC知识还不了解的同学,关注我的公众号【山间木匠】从菜单底部可直达,从本篇文章 阅读全文
摘要:
突击并发编程JUC系列演示代码地址: https://github.com/mtcarpenter/JavaTutorial 什么是阻塞队列 阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作支持阻塞的插入和移除方法。 支持阻塞的插入方法:意思是当队列满时,队列会阻 阅读全文
摘要:
开篇 【系】微信小程序云开发实战坚果商城-开篇 基础篇 【系】微信小程序云开发实战坚果商城-弹性盒子 【系】微信小程序云开发实战坚果商城-ES6 简单入门 【系】微信小程序云开发实战坚果商城-官方案例先运行 前端篇 【系】微信小程序云开发实战坚果商城-商城项目搭建 【系】微信小程序云开发实战坚果商城 阅读全文
摘要:
突击并发编程JUC系列演示代码地址: https://github.com/mtcarpenter/JavaTutorial 本节让我们一起研究一下该容器是如何在保证线程安全的同时又能保证高效的操作。ConcurrentHashMap是线程安全且高效的HashMap。 为什么要使用Concurren 阅读全文
摘要:
突击并发编程JUC系列演示代码地址: https://github.com/mtcarpenter/JavaTutorial Locksupport JDK 中的 rt.jar 包里面的 LockSupport 是个工具类,当需要阻塞或唤醒一个线程的时候,都可以使用 LockSupport 工具类来 阅读全文
摘要:
ReadWriteLock 也是 `java 5`之后引入的,之前提到锁(如`Mutex`和`ReentrantLock`)基本都是排他锁,这些锁在同一时刻只允许一个线程进行访问,而读写锁在同一时刻可以允许多个读线程访问,但是在写线程访问时,所有的读线程和其他写线程均被阻塞。读写锁维护了一对锁,一个读锁和一个写锁,通过分离读锁和写锁,使得并发性相比一般的排他锁有了很大提升。 阅读全文
摘要:
Lock 作为接口类为我们提供一组方法,只能通过的实现类进行 Lock 方法,今天我们就讲讲继承`Lock`接口一个可重入的独占锁 ReentrantLock 实现类,ReentrantLock 通过自定义队列同步器(Abstract Queued Sychronized,AQS)来实现锁的获取与释放。 阅读全文