11-Java集合-Hashtable详解
版权声明:未经允许不得转载! https://blog.csdn.net/bingxuesiyang/article/details/89212851 第1部分 Hashtable介绍 Hashtable 简介 和HashMap一样,Hashtable 也是一个散列表,它存储的内容是键值对(key-value)映射。 Hashtable 继承于Dictionary,实现了Map、Cloneable、java.io.Serializable接口。 Hashtable 的函数都是同步的,这意味着它
12-Java集合-TreeMap详解
版权声明:未经允许不得转载! https://blog.csdn.net/bingxuesiyang/article/details/89216988 第1部分 TreeMap介绍 TreeMap 简介 TreeMap 是一个有序的key-value集合,它是通过红黑树实现的。 TreeMap 继承于AbstractMap,所以它是一个Map,即一个key-value集合。 TreeMap 实现了NavigableMap接口,意味着它支持一系列的导航方法。比如返回有序的key集合。 TreeM
13-Java集合-WeakHashMap详解
版权声明:未经允许不得转载! https://blog.csdn.net/bingxuesiyang/article/details/89217221 第1部分 WeakHashMap介绍 WeakHashMap简介 WeakHashMap 继承于AbstractMap,实现了Map接口。 和HashMap一样,WeakHashMap 也是一个散列表,它存储的内容也是键值对(key-value)映射,而且键和值都可以是null。 不过WeakHashMap的键是“弱键”。在 WeakHashM
14-Java集合-Map总结
版权声明:未经允许不得转载! https://blog.csdn.net/bingxuesiyang/article/details/89217348 概要 学完了Map的全部内容,我们再回头开开Map的框架图。 第1部分 Map概括 (01) Map 是“键值对”映射的抽象接口。 (02) AbstractMap 实现了Map中的绝大部分函数接口。它减少了“Map的实现类”的重复编码。 (03) SortedMap 有序的“键值对”映射接口。 (04) NavigableMap 是继承于So
15-Java集合-Set架构
版权声明:未经允许不得转载! https://blog.csdn.net/bingxuesiyang/article/details/89228154 前面,我们已经系统的对List和Map进行了学习。接下来,我们开始可以学习Set。相信经过Map的了解之后,学习Set会容易很多。毕竟,Set的实现类都是基于Map来实现的(HashSet是通过HashMap实现的,TreeSet是通过TreeMap实现的)。 首先,我们看看Set架构。 (01) Set 是继承于Collection的接口。它
16-Java集合-HashSet详解
版权声明:未经允许不得转载! https://blog.csdn.net/bingxuesiyang/article/details/89228565 第1部分 HashSet介绍 HashSet 简介 HashSet 是一个没有重复元素的集合。 它是由HashMap实现的,不保证元素的顺序,而且HashSet允许使用 null 元素。 HashSet是非同步的。如果多个线程同时访问一个哈希 set,而其中至少一个线程修改了该 set,那么它必须 保持外部同步。这通常是通过对自然封装该 set
17-Java集合-TreeSet详解
版权声明:未经允许不得转载! https://blog.csdn.net/bingxuesiyang/article/details/89228785 第1部分 TreeSet介绍 TreeSet简介 TreeSet 是一个有序的集合,它的作用是提供有序的Set集合。它继承于AbstractSet抽象类,实现了NavigableSet<E>, Cloneable, java.io.Serializable接口。 TreeSet 继承于AbstractSet,所以它是一个Set集合,具有Set的
18-Java集合-Iterator和Enumeration区别
版权声明:未经允许不得转载! https://blog.csdn.net/bingxuesiyang/article/details/89229057 第1部分 Iterator和Enumeration区别 在Java集合中,我们通常都通过 “Iterator(迭代器)” 或 “Enumeration(枚举类)” 去遍历集合。今天,我们就一起学习一下它们之间到底有什么区别。 我们先看看 Enumeration.java 和 Iterator.java的源码,再说它们的区别。 Enumerati
synchronize与ReentrantLock区别【原创】
版权声明:未经允许不得转载! https://blog.csdn.net/bingxuesiyang/article/details/89229369 synchronize、ReentrantLock区别 共同点: 都是可重入锁,都可以在一个锁中调用另一个被同一个锁锁定的方法。 区别: synchronize锁 1、synchronize是java的关键字,是java语言内置的特性,是在JVM层面上实现的 2、无论是读操作还是写操作还是混合操作都需要其中一个线程执行完毕之后另一个线程才能执行
数据库多版本并发控制-MVCC
版权声明:未经允许不得转载! https://blog.csdn.net/bingxuesiyang/article/details/89293129 MVCC的原理 MVCC(Multiversion Concurrency Control多版本并发控制): MVCC每次更新操作都会复制一条新的记录,新纪录的创建时间为当前事务id 优势为读不加锁,读写不冲突 InnoDb存储引擎中,每行数据包含了一些隐藏字段 DATA_TRX_ID,DATA_ROLL_PTR,DB_ROW_ID,DELET
MySQL删除重复项——delete+group by
在【领扣】中遇到删除重复电子邮箱的题,在HeidiSQL中运行通过,但是LeetCode不能通过 以下为Heidi SQL中通过的代码 SELECT Id,Email FROM Person
GROUP BY Email
ORDER BY Id;
原因在于此题为删除,需要使用到delete,而不是筛选。下面附上一个容易看懂的范例。 delete from Person
where Id not in (select Id from (
sele
/* SQL错误(1067):Invalid default value for 'AddressId' */
使用Heidi SQL设置主键时出现/* SQL错误(1067):Invalid default value for ‘AddressId’ */ 主键设置操作为: 在要设置主键的行右键,点击【创建新索引】→【PRIMARY】 需要将默认处设置为【无默认值】 以下为代码: CREATE TABLE `address` (
`AddressId` INT(11) NOT NULL,
`PersonId` INT(11) NULL DEFAULT NULL,
`City` VARCHAR(5
MySQL连接查询(left/right join)
关于各种连接的直观总结 先写一段语法 select table1.var1 table2.var2 from table1
inner join table2
on table1.id=table2.id
可以在/*inner join*/处替换各种连接方式,例如:left join、right join
left join:包含左表所有行,右表出现未匹配上左表的行则为null right join:参照left join inner join:左表和右表的交集 full outer
MySQL日期的加减
简单粗暴法to_days() where to_days(w1.RecordDate)-to_days(w2.RecordDate)=1
增加法date_add() where date_add(w2.RecordDate,interval 1 day)=w1.RecordDate
where date_add(w1.RecordDate,interval -1 day)=w2.RecordDate
时间差法 datediff(),返回天数 where datediff(w1.Recor
MyBatis(五)select返回list数据
(1)接口中编写方法 public List<Emp> getEmps(String lastName); (2)编写Mapper文件 <select id="getEmps" resultType="com.eu.bean.Emp">
select id,last_name lastName,gender geder,email from Emp where last_name like #{lastName }
</select> (3)编写测试 pub
今日推荐
周排行