JDK源码
文章平均质量分 65
Nostark
非学,无以致疑;非问,无以广识
展开
-
Java Collections.sort()实现List排序的默认方法和自定义方法
1、第一种是model类实现Comparable接口,重写重写int compareTo(Object o)方法 public class StudentDTO implements Comparable{ private String name; private int age; public String getName(){ return name; } public voi...原创 2018-04-10 09:38:00 · 762 阅读 · 0 评论 -
Java开发——反射机制
前言: 在面向对象的世界里,万事万物皆对象。但是在java语言中,静态的成员、普通数据类型除外,静态成员属于类,而不是对象,而普通数据类型有对应的包装类来弥补它。类是不是对象呢?类是(哪个类的对象呢?)谁的对象呢?类是对象,类是java.lang.Class类的实例对象 一、反射的概念: 主要是指程序可以访问,检测和修改它本身状态或行为的一种能力,并能根据自身行为的状态和结果,调整或修改...原创 2017-10-22 17:17:23 · 526 阅读 · 1 评论 -
JDK源码学习之集合HashMap、Hashtable、WeakHashMap比较
先上一张Java 集合框图: HashMap:public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable Hashtable:public class Hashtable<K,V> extends Dictionary<K,V> implements原创 2017-10-21 20:48:04 · 266 阅读 · 0 评论 -
JDK源码学习之集合框架HashMap
前言: 先上Java集合框架框图,以对其整体把握 概述 本文将解析HashMap的工作原理,put()和get()方法的过程是如何实现的,equals()和hashCode()的都有什么作用,HashMap的大小超过了负载因子(load factor)定义的容量,怎么办?即HashMap是如何扩容的? 先看下面程序的基本操作: Map map = new HashMa...原创 2017-10-21 16:42:51 · 202 阅读 · 1 评论 -
JDK源码学习之HashMap扩容机制resize()
虽然在hashmap的原理里面有这段,但是这个单独拿出来讲rehash或者resize()也是极好的。 什么时候扩容:(是指的Hash数组的扩容)当向容器添加元素的时候,会判断当前容器的元素个数,如果大于等于阈值—即当前数组的长度乘以加载因子的值的时候,就要自动扩容啦。 扩容(resize)就是重新计算容量,向HashMap对象里不停的添加元素,而HashMap对象内部的数组无法装载更多...转载 2017-10-21 18:18:19 · 254 阅读 · 0 评论 -
JDK源码学习之集合框架综述
Java集合框架综述原创 2017-10-20 21:19:41 · 232 阅读 · 0 评论 -
为什么重写equals()就一定要重写hashCode()方法?
如果涉及使用对象作为key,那么key的对象都必须实现hashCode和equals方法。hashCode和equals方法持续自根类Object,若是你用自定义的类算作key的话,就需要同时覆写equals办法和hashCode方法,因为我们java的集合中判断两个对象是否相等,是根据hashCode和equals这个俩个方法。规则是先判断两个对象的hashCode是否相等,如果不相等,认为两个对原创 2017-10-21 20:56:45 · 7586 阅读 · 28 评论