自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 thinking in java (十八) ----- 集合之Map(HashMap HashTable)总结

Map框架图Map概括Map是键值对映射的抽象接口 AbstractMap实现了Map中的大部分接口,减少了Map实现类的重复代码 HashMap是基于拉链法实现的散列表,一般使用在单线程程序中 HashTable是基于拉链法实现的散列表,一般使用在多线程程序中HashMap,HashTable异同共同点都是散列表,都是基于拉链法实现的存储的思想是:通过t...

2018-10-31 21:15:03 100

原创 thinking in java (十七) ----- 集合之List总结

List概括首先回顾一下关系图Lsit是一个接口,继承与Collection接口,它代表的是有序的队列 AbstractList是一个抽象类,它继承于AbstractCollection,AbstractList实现List接口中除了size(),get(index)之外的函数 AbstractSequentialList是一个抽象类,继承于Abstract。AbstractS...

2018-10-31 02:23:24 119

原创 thinking in java (十六) ----- 集合之HahsMap(之二)

get()方法获取key相对应的value,实现代码如下public V get(Object key) { if (key == null) return getForNullKey(); // 获取key的hash值 int hash = hash(key.hashCode()); // 在“该hash值对应的链表”上查找“键值等于key...

2018-10-30 19:28:28 188

原创 thinking in java (十五) ----- 集合之HahsMap

HashMap介绍HashMap简介HashMap是一个散列表,存储的内容是键值对映射(key-value)k-vHashMap继承于AbstractMap,实现了Map,Cloneable,Serializable接口HashMap的实现是不同步的(线程不安全)HashMap的实例有俩参数影响性能:“初始容量”和“加载因子”,容量是哈希表中通的数量,初始容量只是哈希表在创建...

2018-10-29 22:09:36 84

原创 thinking in java (十四) ----- 集合之Stack

stack很简单,继承与Vectorstack介绍stack简介stack是栈,特性是先进后出(FILO)java中的stack是继承自Vector(矢量队列)由于Vector是数组实现的,这就意味着stack也是通过数组实现的 ,而非链表。 stack继承关系java.lang.Object↳ java.util.AbstractCollection&lt...

2018-10-29 18:50:48 115

原创 thinking in java (十三) ----- 集合之Vctor

Vector介绍简介是一种矢量队列,继承与AbstractList,实现了List,RandomAccess,Cloneable等接口继承了AbstractList,实现了List,所以是一个队列,支持相关的增删改遍历操作实现了RandomAccess接口,提供了随机访问功能。RandomAccess是java中用来被List实现,为List提供快速访问功能的。在Vector中我们可...

2018-10-29 16:20:21 238

原创 thinking in java (十二) ----- 集合之LinkedList

LinkedList介绍LinkedList简介LinkedList是一个继承与AbstractSequentialList的双向链表,他也可以当做堆栈,队列或者双向队列进行操作。LinkedList实现了List接口,能进行队列操作LinkedList实现Deque接口,即能将LinkedList当做双向队列使用LinkedList实现了Cloneable接口,Link...

2018-10-29 15:15:06 101

原创 thinking in java (十一) ----- 集合之ArrayList

ArrayList概述ArrayList是实现了List接口的动态数组,所谓的动态是其大小可变。允许包括null在内的元素。除了实现List接口外,此类还提供了一些方法来操控内部来储存列表的数组大小。每个ArrayList实例都有一个容量,该容量是指用来存储元素的数组大小。默认初始容量是10,随着ArrayList元素的增加,它的容量也会一直增加。在每一次增加新的元素的时候,Array...

2018-10-26 22:36:45 143

原创 thinking in java (十) ----- 集合

我们除了最常用的八种基本类型,String类型,还有集合类Collection,常见的有ArrayList,HahsMap,HashSet,也有不常用的stack,queue,有线程安全的Vector,HashTable,也有线程不安全的LinkedList,TreeMap等。Collection接口 这是最基本的集合接口,不提供直接的实现,声明了适用于JAVA集合(只包括Set和...

2018-10-25 20:20:05 109

原创 thinking in java (九) ----- 数组之二(Array)

性能在java中有一系列的方式可以用来作为存放对象的容器,并且有很多在操作上比数组要简单。但是我们仍然会使用数组。因为数组有自己的优点,效率,类型和保存基本类型的能力。在java中,数组是效率最高的存储和随访问对象引用序列的方式。在一般的项目中,确实数组是咩有List,Map等集合使用方便,但有时候也是会用到的。public class Main{ public static ...

2018-10-24 17:13:22 95

原创 thinking in java (八) ----- 数组(Array)

一般来说,程序会产生新的对象,有的时候只能到执行期,才能具体知道产生了多少对象,为了存放这些对象的存放(或者说是reference的存放),程序员必须提供对象的存放容器。数组(Array)数组是java用来存放以及随机访问一连串对象的各种做法中,最有效率的一种。数组是简单的线性序列,其中元素能够被快速访问,不过缺点是:当你产生数组后,你不能改变其size。在java中,数组是一个比较特...

2018-10-24 16:07:23 120

原创 thinking in java (七) ----- 内部类(二,Inner classes)

深入理解内部类为什么成员内部类可以无条件地访问外部类成员?成员内部类甚至可以访问private的外部类成员,那么这究竟是怎么实现的呢?下面通过字节码文件来一探究竟。下面是Outer.java的代码:public class Outter { private Inner inner = null; public Outter() { } ...

2018-10-19 10:15:30 283 1

原创 thinking in java (六) ----- 内部类(一,Inner classes)

将某个class定义置于另一个class定义之中是可行的,这就是内部类。内部类基础内部类一般来说包括以下几种:成员内部类,局部内部类,匿名内部类,静态内部类。成员内部类成员内部类是最普通的内部类,定义在一个外部类的内部,如下:class Circle { double radius = 0; public Circle(double radius...

2018-10-18 22:55:28 142

原创 thinking in java (五) ----- equals()方法

equals()equals()方法用来比较两个对象是否相等,父类是Object。其中在String中的equals()源代码如下y对象都是由引用reference和对象实例组成的。“==”是用来比较两个引用类型的reference,所以Object中的equals()方法是比较两个引用类型的reference是否相等。和"=="的效果是一样的。但是我们可以看到源代码中,如果对象是...

2018-10-18 16:30:31 170

原创 thinking in java (四) ----- static与this关键字

static static代表什么static表示“全局”或者“静态”的意思,用来修饰成员变量或者方法,也可以修饰代码块。被static修饰的成员会在类加载的时候进行初始化与空间分配,被设置为静态后,成员会被存放在静态存储空间,全局共享一个值。因此访问被static修饰的成员时,可以使用className直接调用。被static修饰的不依赖于对象,因为他先与对象生成,但是可以被对象...

2018-10-09 16:16:15 183

原创 thinking in java (三) ----- 接口与抽象类

  接口的抽象类给我们提供了接口和实现分离更加结构化的方法接口和抽象类是java中对抽象概念进行定义的两种机制,正是因为他们的存在,才赋予了java强大的面向对象的能力。他们之间对于抽象有很大的相似,但是也有一些不同抽象类前面我们说过万物皆对象,对象是通过类来描述的,但并不是所有的类都是用来描述对象的。如果一个类没有足够的信息来描述一个具体的对象,而需要其他具体的类来支撑它...

2018-10-08 21:14:44 137

原创 thinking in java (二) ----- 多态

面向对象的三大特性:封装,继承,多态。封装封装将类的内部信息隐藏,不允许外部直接访问(private),通过该类提供的方法(get(),set())来访问操作类隐藏的信息。隐藏了类的信息,留出了访问操作的接口。继承为了复用父类的代码,两个类如果有is-a关系,子类就可以继承父类。多态多态就是指:方法中定义的引用变量(形参reference)指向的具体类型,和通过该ref...

2018-10-07 23:28:38 141

原创 thinking in java (一) ----- 万物皆对象

reference是控制对象的钥匙在java中,一切的事物都被称为对象,我们用于操控对象的标志符号,实际上只是“reference”(引用)。reference和对象之间的关系,就好比是遥控器和电视的关系一样。对电视进行换台调节音量等,实际上是对遥控器进行的操作。 数据存储在哪儿1,寄存器(Registers)这是速度最快的存储场所,程序员不仅无法直接触碰寄存器,也没办...

2018-10-07 21:02:24 255

原创 java常见存储空间

1,寄存器(Registers)这是速度最快的存储场所,程序员不仅无法直接触碰寄存器,也没办法在程序里面感受到寄存器的存在2,栈(Stack)位于一般的RAM中,处理器经由stack pointer提供直接支持。当程序分配一块新的内容的时候,stack指针便往后移。释放内存的时候,指针就往前移回。由于JAVA编译器有责任产生这种“将stack指针前后移动”的代码,所以它必须掌握程序中“...

2018-10-02 02:20:24 1214

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除