羊驼之野望

  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 搜索

java.util集合(collection)之HashMap源码分析(jdk1.8)

发表于 2019-07-04 | 分类于 java集合系列(java.util包)

1. 简介

  • HashMap为键值对(key -> value)结构存储,其中key是唯一、不重复的、无序的,key和value都允许为null,只允许一条记录的key为null,允许多条记录的value为null。HashMap一般通过key来定位value,当put操作时,传入相同key会覆盖value。
  • HashMap默认初始容量为16;默认负载因子为0.75;位桶数组table的大小总是为2的n次方。
  • 当位桶上的结点数大于8时会转为红黑树,当位桶上的结点数小于6时红黑树转为链表。
  • 当map中键值对数量超过临界阈值thread(容量 * 装载因子)时,将会进行扩容(位桶数组扩容)。
  • 位桶数组扩容是一个比较耗性能的操作,故而在初始化HashMap的时候可以给一个大致的数值(估算map大小),避免频繁的扩容。
  • HashMap是线程不安全的,只可在单线程环境下使用,若需在多线程环境使用,主要方法有:
阅读全文 »

java.util集合(collection)之LinkedList源码分析(jdk1.8)

发表于 2019-04-18 | 更新于 2019-05-27 | 分类于 java集合系列(java.util包)

1. 简介

LinkedList是基于双向链表实现。它是一种可以在任意位置进行高效地插入和移除操作的有序序列。
LinkedList是线程不安全的,若需在多线程环境使用,主要方法有:
① 使用List list = Collections.synchronizedList(new LinkedList(…));
② 使用ConcurrentLinkedQueue;
③ 使用synchronized关键字。

阅读全文 »

三种方式实现扫码登录

发表于 2019-05-23 | 分类于 小功能Demo实现系列

1. 需求描述

目前大多网站都提供扫码登录功能,无需在网页端输入任何账号和密码信息,只需通过手机上的app,如微信、淘宝等,通过使用app上的扫码功能去扫面页面登录提供的二维码图片,即可完成登录。这不仅提高了安全性,也增加了用户的使用方便性。关于二维码与手机是如何绑定、网页端如何识别出手机端进行了扫码操作、以及网页端在扫码成功后如何获取到用户信息等问题,这些都会在接下来的篇幅中娓娓道来。

阅读全文 »

Spring事务用法详解

发表于 2019-04-29 | 更新于 2019-05-06 | 分类于 Spring框架系列

1. 数据库事务基础知识

在使用Spring开发过程中,我们常会使用到Spring事务管理,它提供了灵活方便的事务管理功能,但这些功能都是基于底层数据库本身的事务处理机制功工作的。因此欲深入了解Spring事务的管理和配置,有必要先了解下数据库基本的事务知识。

1.1. 事务特性(ACID)

Spring事务中存在四种特性:原子性、一致性、隔离性和持久性。在这些事务特性中,数据“一致性”为最终目标,其他特性都是为实现这个目标方法和手段。数据库一般采用重执行日志保证原子性、一致性和持久性,采用数据库锁机制保证事务的隔离性。

阅读全文 »

java.util集合(collection)之ArrayList源码分析(jdk1.8)

发表于 2019-04-02 | 更新于 2019-04-11 | 分类于 java集合系列(java.util包)

1. 简介

ArrayList是基于数组实现,是一个可变大小的动态数组。
ArrayList是线程不安全的,只可在单线程环境下使用,若需在多线程环境使用,主要方法有:
① 通过Collections.synchronizedList(List list)方法返回一个线程安全的ArrayList类;
② 使用java.util.concurrent.CopyOnWriteArrayList;
③ 使用synchronized关键字。

阅读全文 »

一、Zookeeper简介、三种搭建模式和配置文件详解

发表于 2019-03-25 | 更新于 2019-04-02 | 分类于 zookeeper系列

1. 简介

Zookeeper缘起于非开源的Google的Chubby,雅虎模仿Chubby开发了ZooKeeper,实现了类似的分布式锁管理,并捐给了Apache,作为是Hadoop和Hbase的重要组件。
ZooKeeper是一种用于分布式应用程序的分布式开源协调服务,它主要是用来解决分布式应用中经常遇到的一些数据一致性问题。它的一致性、可靠性和容错性保证了其能够在大型分布式系统中稳定的表现,并不会因为某一个节点服务宕机而导致整个集群崩溃。它可提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
ZooKeeper Service

阅读全文 »

Java集合框架总述(java.util包)

发表于 2019-03-28 | 更新于 2019-04-02 | 分类于 java集合系列(java.util包)

1. java.util中collection集合

java.util下的集合框架主要基于Collection接口,它是最基本的集合接口,定义了集合的基本操作。Collection接口继承了Iterable接口,说明Collection的子类都可以实现遍历操作,通过Iterable接口中的 Iterator<T> iterator() 方法可返回一个Iterator(迭代器)进行遍历,通常用法如下:

1
2
3
4
Iterator it = collection.iterator(); // 获取集合的迭代器
while(it.hasNext()) { // 集合中是否还有元素
Object obj = it.next(); // 返回下一个元素
}

此外,java 8新增了forEach方法,也可实现遍历操作。

阅读全文 »
Roy

Roy

7 日志
4 分类
6 标签
0%
© 2019 Roy
由 Hexo 强力驱动 v3.8.0
|
主题 – NexT.Pisces v6.6.0