摘要: Java遍历List并删除某些元素 ​ 在阿里的Java编程规约中有一条:【强制】不要在foreach循环里进行元素的remove/add操作。remove元素请使用Iterator方式,如果并发操作,需要对Iterator对象加锁。 ​ 这里不禁要问为什么? ​ 首先来试一下,遍历List时删除元 阅读全文
posted @ 2019-10-08 21:10 难懂的人123 阅读(2326) 评论(0) 推荐(0) 编辑
摘要: ​ 发现错误最理想的时机在编译阶段,然而编译期间并不能找出所有的错误,余下的问题必须在运行期间解决。这就需要错误源能通过某种方式,把适当的信息传递给某个接收者——该接收者知道将知道如何正确处理这个问题。 1.1 概念 ​ 使用异常所带来的好处是,它往往能降低错误处理代码的复杂度。如果不使用异常,那么 阅读全文
posted @ 2019-07-15 17:02 难懂的人123 阅读(1389) 评论(0) 推荐(0) 编辑
摘要: 1.1 什么是线程安全性? 要对线程安全性给出一个确切的定义是非常复杂的。定义越正式,就越复杂,不仅很难提供实际意义的指导建议,而且很难从直观上去理解。例如这样的描述“如果某个类可以在多个线程中安全地使用,那么它就是一个线程安全的类”。对于这种说法,虽然没有太多争议,但同样不会带来多大帮助。 在线程 阅读全文
posted @ 2019-06-21 15:16 难懂的人123 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 1. 线程的优势 如果使用得当,线程可以有效降低程序开发和维护成本,同时提升复杂应用程序的性能。线程的作用主要表现在这几个方面:发挥多处理器的强大能力、建模的简单性、异步事件的简化处理和响应更加灵敏的用户界面。 发挥多处理器的强大能力:操作系统基本的调度单位是线程,因此如果在程序中只有一个线程,那么 阅读全文
posted @ 2019-06-11 10:16 难懂的人123 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 读maven官方文档的收获 一. 构建生命周期基础 1. 构建生命周期基础 Maven基于构建生命周期的核心概念。这意味着构建和分配一个特定的artifact(project)是明确定义的。这里有三种内置的构建生命周期:default, clean和site。这个default构建周期管理项目部署; 阅读全文
posted @ 2019-06-03 14:42 难懂的人123 阅读(410) 评论(0) 推荐(0) 编辑
摘要: 事务 事务(Transcation)事务是数据库区别于文件系统的重要特性之一。在文件系统中,如果正好在写文件,但是操作系统突然崩溃,这个文件就很有可能被破坏。当然,有一些机制可以把文件恢复到某个时间点。不过,如果需要保证两个文件同步,文件系统就显得无能为力了。例如,在需要更新两个文件时,更新完一个文 阅读全文
posted @ 2019-05-31 17:31 难懂的人123 阅读(274) 评论(0) 推荐(0) 编辑
摘要: InnoDB存储引擎的索引 一. 索引组织表 在InnoDB存储引擎中,表都是根据主键顺序组织存放的,这种存储方式的表称为索引组织表(index organized table)。在InnoDB存储引擎表中,每张表都有个主键,如果在创建表时没有显示地定义主键,则InnoDB存储引擎会按照如下方式选择 阅读全文
posted @ 2019-05-29 17:26 难懂的人123 阅读(741) 评论(0) 推荐(0) 编辑
摘要: 关于锁的算法 InnoDB存储引擎有3种行锁的算法,其分别是: Record Lock:单个行记录上的锁,它会锁住索引记录,如果InnoDB存储引擎表在建立的时候没有设置任何一个索引,那么这时InnoDB存储引擎会使用隐式的主键来进行锁定; Gap Lock:间隙锁,锁定一个范围,不包含记录本身; 阅读全文
posted @ 2019-05-28 18:26 难懂的人123 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 一致性非锁定读(consistent nonlocking read)是指InnoDB存储引擎通过 行多版本控制(multi versioning)的方式来读取当前执行时间数据库中行的数据。如果读取的行正在执行DELETE或UPDATE操作,这时读取操作不会因此去等待行上锁的释放,相反地,InnoD 阅读全文
posted @ 2019-05-28 16:32 难懂的人123 阅读(1012) 评论(0) 推荐(1) 编辑
摘要: Mysql中InnoDB引擎的锁 锁这种机制的作用:对共享资源并发访问的管理,保证数据的完整性和一致性。 lock与latch 在数据库中,lock与latch都可以被称为”锁“,但是两者的含义是完全不同的。 lock针对的对象是事务,它用来锁定数据库中的对象,如表、页、行。一般lock的对象仅在事 阅读全文
posted @ 2019-05-28 15:10 难懂的人123 阅读(261) 评论(0) 推荐(0) 编辑