随笔分类 -  java

摘要:自旋锁 CAS算法是乐观锁的一种实现,CAS算法中涉及到自旋锁,这里简述一下 CAS算法说明 ​ CAS的单词Compare And Swap(比较并交换),一种知名的无锁算法。无锁编程,即不使用锁实现多线程间的变量同步,也是在线程没有被阻塞时实现变量同步,也叫非阻塞同步(Non-blocking 阅读全文
posted @ 2022-04-29 08:19 lifelikeplay 阅读(48) 评论(0) 推荐(0) 编辑
摘要:悲观锁 ​ 总是假设最坏的情况,每次去拿数据都会认为别人会修改,所以每次拿数据的时候都会上锁。这样别人拿这个数据就会阻塞直到它拿到共享锁(共享锁每次只给一个线程使用,其他线程阻塞,用完后再把资源转让给其他线程)。传统的关系型数据库里边就用到了很多类似的锁机制,比如行锁,表锁等,读锁,写锁等,都是在操 阅读全文
posted @ 2022-04-28 16:58 lifelikeplay 阅读(18) 评论(0) 推荐(0) 编辑
摘要:引言 这些分类并不全指锁的状态,有的指锁的特性,有的指锁的设计 公平锁 ​ 多个线程按照申请锁的顺序获取锁 非公平锁 ​ 多个线程不按照申请锁的顺序获取锁 ​ 有可能后申请的线程比先申请的优先获得锁。有可能造成优先级反转h或饥饿现象 ​ 对于Java ReentrantLock而言,通过构造函数指定 阅读全文
posted @ 2022-04-15 15:50 lifelikeplay 阅读(26) 评论(0) 推荐(0) 编辑
摘要:概述 Java 8 是一个非常成功的版本,这个版本新增的Stream,配合同版本出现的 Lambda ,给我们操作集合(Collection)提供了极大的便利。 stream是什么? Stream将要处理的元素集合看作一种流,在流的过程中,借助Stream API对流中的元素进行操作,比如:筛选、排 阅读全文
posted @ 2022-04-15 15:42 lifelikeplay 阅读(191) 评论(0) 推荐(0) 编辑
摘要:代理 引入 ​ 总结梳理下代理相关的知识点,按照设计模式之代理模式、静态代理、动态代理的思路展开 代理模式 ​ 设计模式中的一种,某些情况下客户不想直接访问对象,进而借助中介帮忙完成某项任务,这个中介对象就是代理。 ​ 定义:某些原因需要给对象提供代理以控制对象的访问。访问对象不能直接引用目标,代理 阅读全文
posted @ 2022-04-13 15:18 lifelikeplay 阅读(43) 评论(0) 推荐(0) 编辑
摘要:HashMap 数组和链表 ​ 这两种数据结构想必都早已耳熟能详,而今天的主角,HashMap也就是基于这两种结构实现的哈希表结构,当然是以前的主角(JDK1.7)。现如今工作中JDK8普及较广,而在8中也将哈希表结构进行了优化,这个后面再深入了解。 ​ 数组的特点:查询和修改效率高、插入和删除效率 阅读全文
posted @ 2022-04-06 21:39 lifelikeplay 阅读(37) 评论(0) 推荐(0) 编辑
摘要:概述 ​ Java中hashCode也称哈希码,能将对象根据一定算法转换为32位int值。 ​ 和equals配套使用,重写的话需要保持原子性,要么都重写,要么都不重写。equals相同的话哈希值一定相同,哈希值不同的话equals不一定相同,存在hash冲突。 hash冲突 开放定址法:将对象值h 阅读全文
posted @ 2021-03-13 11:35 lifelikeplay 阅读(111) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示