java基础
nowseeme
这个作者很懒,什么都没留下…
展开
-
Object类详解
Object类存储在java.lang包中,是所有java类(Object类除外)的终极父类,任何类都默认继承Object。当然,数组也继承了Object类。然而,接口是不继承Object类的,Object类不作为接口的父类。原创 2017-03-05 19:56:49 · 703 阅读 · 0 评论 -
HashMap:基于jdk8
jdk8采用 数组 + 链表 + 红黑树 的存储结构原创 2017-04-10 01:50:54 · 366 阅读 · 0 评论 -
Hashtable
一.概述1.定义Hashtable类实现一个哈希表,该哈希表将键映射到相应的值。任何非 null 对象都可以用作键或值。为了成功地在哈希表中存储和获取对象,用作键的对象必须实现 hashCode 方法和 equals 方法。 HashMap是Hashtable的轻量级实现。 Hashtable定义:public class Hashtable<K,V> ...原创 2017-03-17 13:47:21 · 656 阅读 · 0 评论 -
多线程(8):
yi gai原创 2017-05-01 00:00:07 · 510 阅读 · 0 评论 -
多线程(7):
一、概述原创 2017-04-30 23:59:41 · 470 阅读 · 0 评论 -
多线程(6):
一、概述原创 2017-04-30 23:59:14 · 395 阅读 · 0 评论 -
多线程与锁(5):LockSupport
一、概述原创 2017-04-30 23:56:26 · 652 阅读 · 0 评论 -
多线程(4):
一、概述原创 2017-04-30 23:55:48 · 367 阅读 · 0 评论 -
Map实现类细节
一、概述原创 2017-04-25 23:30:35 · 296 阅读 · 0 评论 -
HashCode和hash值
一、概述原创 2017-04-25 23:34:07 · 896 阅读 · 1 评论 -
Map总结
一、总结原创 2017-04-25 23:35:24 · 272 阅读 · 0 评论 -
List接口及基础
一、概述原创 2017-04-25 23:37:14 · 368 阅读 · 0 评论 -
List接口实现类(1):ArrayList
ArrayList是实现List接口的动态数组,所谓动态就是它的大小是可变的。原创 2017-04-25 23:38:45 · 584 阅读 · 0 评论 -
List接口实现类(2):LinkedList
LinkedList 是一个继承于AbstractSequentialList的双向链表。它也可以被当作堆栈、队列或双端队列进行操作。LinkedList实现了所有的列表操作,允许所有的元素(包括空元素)。LinkedList所有的操作都是在对双向链表操作,LinkedList不是线程安全的。Collections.synchronizedList方法可以实现线程安全的操作。原创 2017-04-25 23:40:02 · 362 阅读 · 0 评论 -
List接口实现类(3):CopyOnWriteArrayList
Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,当想要对一块内存进行修改时,不在原有内存块中进行写操作,而是将内存拷贝一份,在新的内存中进行写操作,写完之后,就将指向原来内存指针指向新的内存,原来的内存就可以被回收掉。原创 2017-04-25 23:41:07 · 636 阅读 · 0 评论 -
List接口实现类(4):Vector
一、概述原创 2017-04-25 23:41:55 · 370 阅读 · 0 评论 -
List总结
一、概述原创 2017-04-25 23:43:05 · 303 阅读 · 0 评论 -
多线程(3):
一、概述原创 2017-04-30 23:54:50 · 363 阅读 · 0 评论 -
多线程(2):Callable、Future、FutureTask、CompletionService
一、概述原创 2017-04-30 23:53:22 · 360 阅读 · 0 评论 -
Calendar详解
定义Calendar 类是一个抽象类(Abstract Class),GregorianCalendar 是它的一个具体实现。,它为特定时间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。原创 2017-02-20 00:48:53 · 1088 阅读 · 0 评论 -
Date、String和TimeStamp
Date为java.util包下的类,即java.util.Date的缩写;TimeStamp为java.sql包下的类,即java.sql.Timestamp的缩写。日期格式化以及相互转换。原创 2017-02-20 17:51:20 · 827 阅读 · 0 评论 -
HashSet
基于JDK7一、概述HashSet 是一个没有重复元素的集合。底层是由HashMap实现的,不保证元素的顺序。HashSet允许使用 null 元素。public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, java.io.Seri...原创 2017-03-17 13:48:33 · 339 阅读 · 0 评论 -
HashMap:基于jdk7
一.基础1.概述HashMap 是基于哈希表的 Map 接口的非同步实现。此实现提供所有可选的映射操作,并允许使用 null 键和null 值 。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 HashMap继承AbstractMap,实现了Map接口。原创 2017-03-12 14:39:46 · 409 阅读 · 0 评论 -
HashMap(2): EntrySet、KeySet实现原理
一.概述HashMap里面保存的数据最底层是一个Entry型的数组,这个Entry则保留了一个键值对,还有一个指向下一个Entry的指针。所以HashMap是一种结合了数组和链表的结构。因此,我们有3种对数据的观测方式:keySet,values,entrySet。keySet是从key的值角度出发的结果。它里面包含了这个键值对表里面的所有键的值的集合,因为HashMap明确规定一个键只能对应一个值原创 2017-03-16 19:39:29 · 2409 阅读 · 1 评论 -
LinkedHashMap
所谓LinkedHashMap,其落脚点在HashMap,因此更准确地说,它是一个将所有Entry节点链入一个双向链表双向链表的HashMap。在LinkedHashMapMap中,所有put进来的Entry都保存在如下面第一个图所示的哈希表中,但由于它又额外定义了一个以head为头结点的双向链表,因此对于每次put进来Entry,除了将其保存到哈希表中对应的位置上之外,还会将其插入到双向链表的尾部原创 2017-03-17 13:49:07 · 381 阅读 · 0 评论 -
ConcurrentHashmap:基于jdk7
JDK1.7下的ConcurrentHashMap首先将数据分成一段一段(segment)的存储,然后给每一段数据配一把锁,当一个线程占用锁访问其中一个段数据的时候,其他段的数据也能被其他线程访问。ConcurrentHashMap内部分为很多个Segment,每一个Segment拥有一把锁,然后每个Segment(继承ReentrantLock)下面包含很多个HashEntry列表数组。原创 2017-04-10 01:45:57 · 418 阅读 · 0 评论 -
ConcurrentHashmap:基于jdk8
JDK1.8中的ConcurrentHashMap 放弃了1.7版本中Segment臃肿的设计,取而代之的是采用来保证并发安全进行实现。ConcurrentHashMap作为Concurrent一族,其有着高效地并发操作,相比Hashtable的笨重,ConcurrentHashMap则更胜一筹了。 在1.8版本以前,ConcurrentHashMap采用分段锁的概念,使锁更加细化,但是1.8已经改变了这种思路,而是利用Node + CAS + Synchronized 来保证并发更新的安全,底层采用数组原创 2017-04-10 01:47:21 · 394 阅读 · 0 评论 -
equals方法
todo原创 2017-01-27 00:40:54 · 431 阅读 · 0 评论 -
集合总结(1)
一、概述原创 2017-04-30 23:47:01 · 330 阅读 · 0 评论 -
集合总结(2)
一、概述原创 2017-04-30 23:47:43 · 313 阅读 · 0 评论 -
集合总结(3)
一、概述原创 2017-04-30 23:48:37 · 320 阅读 · 0 评论 -
集合细节(1)
一、概述原创 2017-04-30 23:49:33 · 363 阅读 · 0 评论 -
集合细节(2)
一、概述原创 2017-04-30 23:50:21 · 352 阅读 · 0 评论 -
集合细节(3)
一、概述原创 2017-04-30 23:51:03 · 357 阅读 · 0 评论 -
多线程(1):基础总结
一、概述1. 概念线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。2.进程和线程区别进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1–n个线程。线程::同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换开销小。区别: ...原创 2017-04-30 23:52:35 · 411 阅读 · 0 评论 -
java泛型
定义泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。 一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。 这种参数类型可以用在类、接口原创 2017-02-06 11:21:03 · 311 阅读 · 0 评论