![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java学习笔记
学习真是太快乐了呀
这个作者很懒,什么都没留下…
展开
-
HashMap源码学习
1.前言在探讨HashMap源码之前,先说一下HashCode,为什么呢?因为HashMap有一个特性是Key是唯一值,如何确定key的唯一性呢,这就用到了hash算法。在HashMap(jdk1.7)的put方法实现中首先利用了hash()生成key的hashCode,然后比较key的hashCode是否已经存在集合,如果不存在,就插入到集合,如果已存在,则返回null。...原创 2019-05-09 12:08:20 · 108 阅读 · 0 评论 -
HashMap源码分析学习
Java为数据结构中的映射定义了一个接口java.util.Map,此接口主要有四个常用的实现类,分别是HashMap、Hashtable、LinkedHashMap和TreeMap,类继承关系如下图所示:下面针对各个实现类的特点做一些说明:(1)HashMap:它根据键的hashCode值存储数据,大多数情况下可以直接定位到它的值,因而具有很快的访问速度,但遍历顺序却是不确定...原创 2019-06-16 15:08:25 · 150 阅读 · 0 评论 -
HashMap 和 Hashtable 的区别
HashMap 和 Hashtable 的区别线程是否安全:HashMap 是非线程安全的,HashTable 是线程安全的;HashTable 内部的方法基本都经过synchronized修饰。(如果你要保证线程安全的话就使用 ConcurrentHashMap 吧!); 效率:因为线程安全的问题,HashMap 要比 HashTable 效率高一点。另外,HashTable 基本被...原创 2019-06-07 10:25:56 · 566 阅读 · 0 评论 -
设计模式-----单例模式
使用一个私有构造函数、一个私有静态变量以及一个公有静态函数来实现。私有构造函数保证了不能通过构造函数来创建对象实例,只能通过公有静态函数返回唯一的私有静态变量。Ⅰ 懒汉式-线程不安全以下实现中,私有静态变量 uniqueInstance 被延迟实例化,这样做的好处是,如果没有用到该类,那么就不会实例化 uniqueInstance,从而节约资源。这个实现在多线程环境下是不安全...原创 2019-06-06 11:06:19 · 85 阅读 · 0 评论 -
数据库事务的特性和事务隔离级别
数据库事务的特性和事务隔离级别一、事务的特性原子性:事务是最小的执行单位,不允许分割。事务的原子性确保动作要么全部完成,要么完全不起作用; 一致性:执行事务前后,数据保持一致,多个事务对同一个数据读取的结果是相同的; 隔离性:并发访问数据库时,一个用户的事务不被其他事务所干扰,各并发事务之间数据库是独立的; 持久性:一个事务被提交之后,它对数据库中数据的改变是持久的,即...原创 2019-06-06 09:21:21 · 173 阅读 · 0 评论 -
wait, notify and notifyAll in Java
只有一个分享链接https://www.journaldev.com/1037/java-thread-wait-notify-and-notifyall-example原创 2019-05-30 12:59:25 · 115 阅读 · 0 评论 -
Java内部类详解
点击地址:https://www.cnblogs.com/dolphin0520/p/3811445.html转载 2019-05-30 11:13:14 · 70 阅读 · 0 评论 -
final、fianlly和finalize的区别
1. final是关键字,final可以修饰类、方法、属性。 如果一个类被final修饰,那么这个类就是最终类,不能派生出新的子类,不能作为父类被继承,该类中的所有方法都不能被重写,但是final类中的成员变量是可以改变的,要想final类中的成员变量的不可以改变,必须给成员变量添加final修饰。因此,一个类不能同时被final和abstract修饰,这两个关键字相互矛盾。 如果final修饰...原创 2019-05-30 11:10:04 · 530 阅读 · 0 评论 -
ArrayList源码剖析
数组和链表都有各自的优点与不足,比如说数组,查找速度快,但是移动的话就比较费劲,因此数组适合存储位置变动不大的,以读取为主的数据;而链表,通过操作指针,所以元素的插入和删除操作比数组快很多,但是查找性能就比不上数组了。那么,使用不同的数据结构实现的容器,就有不同的特点。后面还有一种将数组和链表结合在一起的方法------散列。今天就先介绍ArrayList,一种以数组为基础实现的存储...原创 2019-05-12 23:36:46 · 122 阅读 · 0 评论 -
LinkedList源码学习
目录:LinkedList简介 内部结构 源码分析(包括6个方法) LinkedList经典Demo1.简介:LinkedList是一个实现了List接口和Deque接口的双端链表。 LinkedList底层的链表结构使它顺序访问高效,随机访问较差,中间插入和删除高效,适用于经常变化的数据,另外它实现了Deque接口,使得LinkedList类也具有队列的特性; LinkedLis...原创 2019-05-12 23:19:19 · 111 阅读 · 0 评论 -
同步与异步
两个概念:同步与异步:打个比方,比如我们去购物,如果你去商场实体店买一台空调,当你到了商场看中了一款空调,你就想售货员下单。售货员去仓库帮你调配物品。这天你热的实在不行了。就催着商家赶紧给你配送,于是你就等在商场里,候着他们,直到商家把你和空调一起送回家,一次愉快的购物就结束了。这就是同步调用。不过,如果我们赶时髦,就坐再家里打开电脑,在网上订购了一台空调。当你完成网上支付的时候,对你...原创 2019-05-12 23:14:05 · 170 阅读 · 0 评论 -
Java设计模式思维导图
需要源文件的可以评论找我。学习知识的过程曲线原创 2019-05-22 08:20:57 · 223 阅读 · 0 评论 -
synchronized实现原理之---Moniter的实现原理
上一篇synchronized的实现原理提到了moniter,当时没有介绍它。无论是同步方法还是同步代码块,无论是ACC_SYNCHRONIZED还是monitorenter、monitorexit都是基于Monitor实现的,那么这篇来介绍下什么是Monitor。操作系统中的管程如果你在大学学习过操作系统,你可能还记得管程(monitors)在操作系统中是很重要的概念。同样Monit...转载 2019-05-21 23:05:49 · 470 阅读 · 0 评论 -
Synchronized的实现原理(转)
synchronized,是Java中用于解决并发情况下数据同步访问的一个很重要的关键字。当我们想要保证一个共享资源在同一时间只会被一个线程访问到时,我们可以在代码中使用synchronized关键字对类或者对象加锁。那么,本文来介绍一下synchronized关键字的实现原理是什么。反编译众所周知,在Java中,synchronized有两种使用形式,同步方法和同步代码块。代码如下:...转载 2019-05-21 22:28:46 · 90 阅读 · 0 评论 -
Java 中正确使用 hashCode 和 equals 方法
在这篇文章中,我将告诉大家我对hashCode和equals方法的理解。我将讨论他们的默认实现,以及如何正确的重写他们。我也将使用Apache Commons提供的工具包做一个实现。目录:hashCode()和equals()的用法 重写默认实现 使用Apache Commons Lang包重写hashCode()和equals() 需要注意记住的事情 当使用ORM的时候特别要注...原创 2019-05-11 22:22:42 · 107 阅读 · 0 评论 -
Java并发笔记
地址:http://www.blogjava.net/xylz/archive/2010/07/08/325587.html原创 2019-06-30 10:36:46 · 132 阅读 · 0 评论