![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA基础
安心撸码
这个作者很懒,什么都没留下…
展开
-
JAVA基础常见比较
HashSet与TreeSet的比较1.TreeSet 是二叉树实现的,Treeset中的数据是自动排好序的,不允许放入null值 。2.HashSet 是哈希表实现的,HashSet中的数据是无序的,可以放入null,但只能放入一个null,两者中的值都不能重复,就如数据库中唯一约束 。3.HashSet要求放入的对象必须实现HashCode()方法,放入的对象,是以hashcode...原创 2019-07-25 21:40:23 · 82 阅读 · 0 评论 -
JAVA序列化和反序列化
1、为什么需要序列化与反序列化我们知道,当两个进程进行远程通信时,可以相互发送各种类型的数据,包括文本、图片、音频、视频等,而这些数据都会以二进制序列的形式在网络上传送。那么当两个Java进程进行通信时,能否实现进程间的对象传送呢?答案是可以的。如何做到呢?这就需要Java序列化与反序列化了。换句话说,一方面,发送方需要把这个Java对象转换为字节序列,然后在网络上传送;另一方面,接收方需...原创 2019-07-23 20:59:59 · 111 阅读 · 0 评论 -
JAVA自定义注解
注解元在进行了解注解时我们先来了解一下,一般注解主要包含以下几个重要的注解元,java注解的机制离不开这几个注解元。注解元解释@Target通过@Target进行添加到注解中,说明了Annotation所修饰的对象范围:Annotation可被用于 packages、types(类、接口、枚举、Annotation类型)、类型成员(方法、构造方法、成员变量、枚举值)、方法参数和本地...原创 2019-07-15 15:13:52 · 302 阅读 · 0 评论 -
ConcurrentHashMap源码解析
一、出现背景1、线程不安全的HashMap 因为多线程环境下,使用Hashmap进行put操作会引起死循环,导致CPU利用率接近100%,所以在并发情况下不能使用HashMap。2、效率低下的HashTable容器HashTable容器使用synchronized来保证线程安全,但在线程竞争激烈的情况下HashTable的效率非常低下。因为当一个线程访问...转载 2019-07-28 15:28:21 · 132 阅读 · 0 评论 -
HashMap源码深度解析
HashMap概述优点:hashMap的存储方式是键值对(键可以包括null),查询速度,存储方便,存储数量最大为十几亿。缺点:主要是线程不安全,容易在hashmap扩容时形成死循环;在JDK1.8之前,HashMap采用数组+链表实现,即使用链表处理冲突,同一hash值的节点都存储在一个链表里。但是当位于一个桶中的元素较多,即hash值相等的元素较多时,通过key值依次查找的效率较低...原创 2019-07-14 21:51:50 · 122 阅读 · 0 评论 -
高并发编程系列:ConcurrentHashMap的实现原理(JDK1.7和JDK1.8)
哈希表1.介绍哈希表就是一种以 键-值(key-indexed) 存储数据的结构,我们只要输入待查找的值即key,即可查找到其对应的值。哈希的思路很简单,如果所有的键都是整数,那么就可以使用一个简单的无序数组来实现:将键作为索引,值即为其对应的值,这样就可以快速访问任意键的值。这是对于简单的键的情况,我们将其扩展到可以处理更加复杂的类型的键。2.链式哈希表链式哈希表从根本上说是...原创 2019-07-31 22:35:38 · 448 阅读 · 0 评论