JAVA知识回顾-2(四种引用、HashCode、List实现类的区别、字符的处理、各集合特点)

原创 2015年11月19日 00:16:04

JAVA知识深度回顾总结-第二天

Java的四种引用,强弱软虚

  • 强引用(StrongReference):即使抛出OOM(OutOfMemory)也不会被回收的对象
  • 软引用(SoftReference):内存不足时才回收该对象(这个特性适合用来实现缓存)
  • 弱引用(WeakReference):gc回收时,不管内存足不足都会回收
  • 虚引用(PhantomReference)
  • 了解与实际运用

HashCode的作用

ArrayList、LinkedList、Vector的区别

  • ArrayList和Vector底层都带有一个Object[]数组,用来保存元素,通过索引访问元素时,只需简单地通过索引访问内部数组的元素;而LinkedList通过一个双向链接的节点列表实现。要通过索引访问元素,你必须查找所有节点,直至找到目标节点。
  • Vector和ArrayList一样是数组实现的,二者的差别在于:Vector是线程安全的,所以性能上不如ArrayList
  • 区别详谈请入

String、StringBuffer与StringBuilder的区别

  • String是创建后不可改变的每次对操作都是对一些对象进行操作,而StringBuffer与StringBuilder是字符串变量,每当我们对它们的字符串操作时都是对一个对象操作。
  • 因上所述我们可以看出用String操作字符串速度慢,因为我们要对多个对象进行操作
  • StringBuilder是线程不安全的,StringBuffer是线程安全的(由此可以判断StringBuilder速度最快,大多数情况下我们是单线程的操作,所以大多数情况下是建议使用StringBuilder而非StringBuffer)

List、Set、MapQueue、Stack的特点和用法

  • List接口对Collection接口的扩展,可以将任意类型放入List容器中,并在需要时获得。常用的实现类是ArrayList、LinkedList,上面介绍了它们的各自特点区别。
  • Set接口也是对Collection接口的扩展,不同于List,不能放入重复的元素,没有下标获取的概念,常用的具体实现类HashSet、TreeSet。HashSet底层是HashMap,能快速定位一个元素,但是你放到HashSet中的对象需要实现hashCode()方法。TreeSet底层是TreeMap,能对放入其中的元素进行排序,元素必须实现Comparable接口,重写compareTo()来实现排序。
  • Map是一种将建对象和值对象进行并联的容器
  • Queue(队列)是先进先出的集合
  • Stack(堆栈)是后进先出的集合

我的感受

  • 知道了软引用(SoftReference)可以有效的处理缓存一类的操作(^o^)/~
  • int hashCode()返回的并不是一定是这个对象的内存地址(不要问我为什么,因为我也不清楚~~(>_<)~~),等有兴趣的时候再去这研究下。
  • ArrayList、Vector底层是数组具有数组的特性,Vector是线程安全的,LinkedList底层是链表具有链表的特性
  • 以后单线程记着多用StringBuilder,这样能提高效率

想说的话

  • 博客坚持写,不管怎样,今后学习了新的东西就在这里记录一下,以便今后回顾,也希望小小笔记能帮助你们
  • 如果内容有什么地方不对,望吐槽,希望大家能一起学习和成长
  • 来一句:世界上唯一不变的就是变化,变化非困难,而是挑战。
版权声明:本文为博主原创文章,未经博主允许不得转载。

Java集合的排序和HashCode方法详解

Set集合的排序 我们知道,Set集合是无序的, 可以使用TreeSet类,那么TreeSet进行排序的规则是怎样的呢? 1 TreeSet支持两种排序方式,自然排序和定制排序,在默认情况下,T...

java中hashcode与equals详解(集合中的用法)

一:Java中的equals方法和hashCode方法是Object中的,所以每个对象都是有这两个方法的,有时候我们需要实现特定需求,可能要重写这两个方法 equals()和hashCode()...

vue2.0之axios使用详解(二)

从发了vue2.0之axios使用详解(一)后,有朋友发私信问如何在实际项目中使用,下面把我平常用的两种方法分享下,网上没什么资料,自己在实际项目中总结的方法,有不好的地方还请指正,共同提高,谢谢! ...

vue实力封装axios

找了很多axios的封装,终于组拼除了自己的axios 喜欢的同学。麻烦给个star    https://github.com/zaofeng/just_for_base  import axio...

9.3-全栈Java笔记:List接口常用实现类的特点和底层实现

上节我们讲到「List接口的特点和常用方法」,本节接着上节的内容继续深入学习。 课前回顾:  List接口常用的实现类有3个:ArrayList、LinkedList、Ve...

List集合的子实现类的特点(ArrayList,Vector,LinkedList),JDK5以后提供的新特性

List集合的子实现类的特点:                   ArrayList:                             底层数据结构是数组的形式,满足数组结构的特点:...
  • YQL0258
  • YQL0258
  • 2017年11月15日 18:27
  • 24

集合工具类之List特点和实现类的详解

集合工具类之List特点和实现类的详解

java四种List接口实现类的对比总结

1、ArrayList 非线程安全基于对象数组get(int index)不需要遍历数组,速度快;iterator()方法中调用了get(int index),所以速度也快set(int ind...

java的List接口的实现类 ArrayList,LinkedList,Vector 的区别

Java的List接口有3个实现类,分别是ArrayList、LinkedList、Vector,他们用于存放多个元素,维护元素的次序,而且允许元素重复。 3个具体实现类的区别如下:       ...
  • Di1nuli
  • Di1nuli
  • 2013年03月27日 14:29
  • 15975

List接口常用实现类的特点和底层实现

List接口常用的实现类有3个:ArrayList、LinkedList、Vector。 那么它们的特点和底层实现有哪些呢? ArrayList特点和底层实现 ArrayList底...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JAVA知识回顾-2(四种引用、HashCode、List实现类的区别、字符的处理、各集合特点)
举报原因:
原因补充:

(最多只允许输入30个字)