![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 84
Java
Allen Chou
这个作者很懒,什么都没留下…
展开
-
JAVA NIO学习一:NIO简介、NIO&IO的主要区别
一、NIO简介1.概述从JDK1.4开始,Java提供了一系列改进的输入/输出处理的新特性,被统称为NIO(即New I/O)。新增了许多用于处理输入输出的类,这些类都被放在java.nio包及子包下,并且对原java.io包中的很多类进行改写,新增了满足NIO的功能。NIO采用内存映射文件的方式来处理输入输出,NIO将文件或文件的一段区域映射到内存中,这样就可以像访问内存一样访问文件了。Java NIO(New IO) 是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java原创 2021-06-13 11:34:11 · 246 阅读 · 0 评论 -
快速理解脏读、不可重复读、幻读
理解这三种由于并发访问导致的数据读取问题,再理解事务隔离级别就简单多了。脏读(读取未提交数据)举例两个事务,A事务读取B事务尚未提交的数据,此时如果B事务发生错误并执行回滚操作,那么A事务读取到的数据就是脏数据。就好像原本的数据比较干净、纯粹,此时由于B事务更改了它,这个数据变得不再纯粹。这个时候A事务立即读取了这个脏数据,但事务B良心发现,又用回滚把数据恢复成原来干净、纯粹的样子,而事务A却什么都不知道,最终结果就是事务A读取了此次的脏数据,称为脏读。这种情况常发生于转账与取款操作中不可重复读(原创 2021-05-14 22:06:46 · 111 阅读 · 0 评论 -
MySQL锁共享锁、排他锁、悲观锁、乐观锁及其使用场景
MySQL锁共享锁、排他锁、悲观锁、乐观锁及其使用场景一、相关名词表级锁(锁定整个表)页级锁(锁定一页)行级锁(锁定一行)共享锁(S锁,MyISAM 叫做读锁)排他锁(X锁,MyISAM 叫做写锁)悲观锁(抽象性,不真实存在这个锁)乐观锁(抽象性,不真实存在这个锁)二、InnoDB与MyISAMMysql 在5.5之前默认使用 MyISAM 存储引擎,之后使用 InnoDB 。查看当前存储引擎:show variables like '%storage_engine%';MyI原创 2021-05-14 21:53:33 · 421 阅读 · 0 评论 -
详解乐观锁和悲观锁
前言乐观锁和悲观锁问题,是出现频率比较高的面试题。本文将由浅入深,逐步介绍它们的基本概念、实现方式(含实例)、适用场景。一、基本概念乐观锁和悲观锁是两种思想,用于解决并发场景下的数据竞争问题。乐观锁:乐观锁在操作数据时非常乐观,认为别人不会同时修改数据。因此乐观锁不会上锁,只是在执行更新的时候判断一下在此期间别人是否修改了数据:如果别人修改了数据则放弃操作,否则执行操作。悲观锁:悲观锁在操作数据时比较悲观,认为别人会同时修改数据。因此操作数据时直接把数据锁住,直到操作完成后才会释放锁;上锁期间其原创 2021-05-14 18:58:48 · 10783 阅读 · 1 评论 -
Hashmap源码详解
1.概述本篇文章我们来聊聊大家日常开发中常用的一个集合类 -HashMap。HashMap 最早出现在 JDK 1.2中,底层基于散列算法实现。HashMap 允许 null 键和 null 值,在计算哈键的哈希值时,null 键哈希值为 0。HashMap 并不保证键值对的顺序,这意味着在进行某些操作后,键值对的顺序可能会发生变化。另外,需要注意的是,HashMap 是非线程安全类,在多线程环境下可能会存在问题。2.原理HashMap 底层是基于散列算法实现,散列算法分为散列再探测和拉链式..原创 2021-04-27 21:42:03 · 1912 阅读 · 0 评论 -
BitMap算法
BitMap算法位图算法,内存中连续的二进制位bit,用于对大量整型数据做去重和查询。1)可进行数据的快速查找,判重,删除,一般来说数据范围是int的10倍以下。2)去重数据而达到压缩数据3) 用于爬虫系统中url去重、解决全组合问题。BitMap应用:排序示例假设我们要对0-7内的5个元素(4,7,2,5,3)排序(这里假设这些元素没有重复)。那么我们就可以采用Bit-map的方法来达到排序的目的。要表示8个数,我们就只需要8个Bit(1Bytes),首先我们开辟1Byte的空间,将这原创 2021-04-03 10:48:21 · 1000 阅读 · 0 评论