1、final、finalize、finally之间的区别

final关键字用于对属性、方法、类进行修饰,表示属性值不可修改,定义的对象地址不可修改、方法不可被覆盖,类不可被继承。

finalize()方法类似其他语言当中的析构函数,用于释放对象占用的资源。

finally是异常处理try-catch-finally中的一部分,与其配合使用,表示不管异常是否处理,最终都将执行finally当中的代码。

2、Colection、Map之间的区别

Collection包含 List 和 Set 子接口,用来存储一组对象,而Map存储键值对。Map不能包含两个相同的键,null可以作为键。

继承自Map的类有 HashMap、HashTable。HashMap 缺省情况下是非同步的,可以通过Map Collections.synchronizedMap(Map m)来达到线程同步;

HashTable也是Dictionary的子类,缺省是线程同步的。不允许关键字或值为null。

当元素的顺序很重要时选用TreeMap,当元素不必以特定的顺序进行存储时,使用HashMap。

Hashtable的使用不被推荐,因为HashMap提供了所有类似的功能,并且速度更快。当你需要在多线程环境下使用时,HashMap也可以转换为同步的。

3、ArrayList、LinkedList、Vector、Stack区别

ArrayList、LinkedList 和 Vector 都实现了 List 接口,而List 接口继承自 Collection 接口;而 Stack 继承自 Vector。

ArrayList 是非线程安全的数组实现,因此访问每一个元素所花费的时间一样,检索数据元素效率较高,但对于数据的更新开销较大;相比之下,LinkedList 是非线程安全的链表实现,数据结构由节点组成,通过指针来访问数据元素,检索数据需要进行遍历,效率较低,但对于数据更新效率较高,针对于这种情况,我们会在查询的时候使用 ArrayList,而在进行数据更新的时候使用 LinkedList,所以对于同一组数据的操作,将涉及两者之间的转换;目前,ArrayList的数据更新效率已有了较大的提升,所以当两者效率相差不大的时候,一般会选择使用 ArrayList。Vector 是线程安全的数组实现,但资源开销较大,效率较ArrayList 低,在项目开发当中,应当根据具体的情况来选择。

4、HashMap、HashTable的区别

虽然 HashMap 和 HashTable 都实现了 Map 接口,但 HashTable 继承自 Dictionary。

在多线程环境下,应选择 HashTable,因为它的实现是线程同步的,而如果使用 HashMap,则应该通过自定义同步方法来实现。

在 HashTable 中,键值都不允许为null,这在 HashMap 中是允许的,但不允许存在多个null键,因为它不允许重复键。

具体实现不同,包含其迭代器、哈希值、数组初始大小及扩容方式。

-- 内容来自网络,未经验证,如有谬误,请联系 zndo@live.com 进行指正,我将及时对内容进行修改。

Java常见面试题收集的更多相关文章

  1. java常见面试题及答案

    java常见面试题及答案 来源 https://blog.csdn.net/hsk256/article/details/49052293 来源 https://blog.csdn.net/hsk25 ...

  2. java常见面试题及答案 1-10(基础篇)

    java常见面试题及答案 1.什么是Java虚拟机?为什么Java被称作是"平台无关的编程语言"? Java 虚拟机是一个可以执行 Java 字节码的虚拟机进程.Java 源文件被 ...

  3. Java 常见面试题(一)

    1)什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? Java虚拟机是一个可以执行Java字节码的虚拟机进程.Java源文件被编译成能被Java虚拟机执行的字节码文件.Java被设 ...

  4. 【转载】JAVA常见面试题及解答(精华)

     JAVA常见面试题及解答(精华)       1)transient和volatile是java关键字吗?(瞬联) 如果用transient声明一个实例变量,当对象存储时,它的值不需要维持.例如: ...

  5. JAVA常见面试题问题简述(持续更新中)

    JAVA常见面试题问题简述 1. springcloud和dubbo的区别 ①相比之下springcloud 的社区会更加活跃,解决问题的速度也会越来越快,dubbo相对来说如果碰到没有解决的问题,就 ...

  6. java常见面试题总结2

    JAVA必背面试题和项目面试通关要点 简单来讲,equals方法主要是用来判断从表面上看或者从内容上看,2个对象是不是相等. 一 数据库 1.常问数据库查询.修改(SQL查询包含筛选查询.聚合查询和链 ...

  7. JAVA常见面试题及解答

    JAVA相关基础知识1.面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时 ...

  8. Java常见面试题(含答案)

    第一,谈谈final, finally, finalize的区别. final?修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承.因此一个类不能既被声明为 ...

  9. java常见面试题

    JAVA相关基础知识 1.面向对象的特征有哪些方面  1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分 ...

  10. java常见面试题及答案 11-20(JVM篇)

    11.JVM内存分哪几个区,每个区的作用是什么? Java虚拟机主要分为以下一个区: 方法区:1. 有时候也成为永久代,在该区内很少发生垃圾回收,但是并不代表不发生GC,在这里进行的GC主要是对方法区 ...

随机推荐

  1. Java开发网络安全常见问题

    Java开发网络安全常见问题 等闲识得东风面,万紫千红总是春 1.敏感信息明文传输 用户敏感信息如手机号.银行卡号.验证码等涉及个人隐私的敏感信息不通过任何加密直接明文传输. 如下图中小红书APP 的 ...

  2. SSM框架——SpringMVC

    SpringMVC MVC三层架构 Controller层:取得前端数据.调用相关业务逻辑.转发/重定向到其他页面 Model层:实现业务逻辑.保存数据 View层:显示页面 1.第一个MVC程序 新 ...

  3. [cocos2d-x]捕鱼达人炮台射击角度的旋转实现

    话不多说,先上图,下面是实现代码(在后面会具体讲解实现过程): //第一步:将炮台的坐标转换为世界坐标下的坐标点 CCPoint location = this->getParent()-> ...

  4. P1278 单词游戏【题解】(状压dp)

    单词游戏 题目描述 Io和Ao在玩一个单词游戏. 他们轮流说出一个仅包含元音字母的单词,并且后一个单词的第一个字母必须与前一个单词的最后一个字母一致. 游戏可以从任何一个单词开始. 任何单词禁止说两遍 ...

  5. ES中的内置对象--jquery如何优化代码,少用$进行查找,减少查找次数的方法

  6. 方法引用_通过类名引用静态成员方法-方法引用_通过super引用父类的成员方法

    方法引用_通过类名引用静态成员方法 由于在java.lang .Nath类中已经存在了静态方法 abs,所以当我们需要通过Lambda来调用该方法时,有两种写法.首先是函数式接口∶ 第一种写法是使用L ...

  7. MRS_下载相关问题汇总

    解决问题如下: MRS下载编译时,更改生成文件是HEX文件还是BIN文件 关于MounRiver下载时如何选择配置部分擦除 关于MounRiver下载起始地址配置问题 MRS下载编译时,更改生成文件是 ...

  8. Sqoop导出ClickHouse数据到Hive

    背景 公司采购了外部服务,其存储为ClickHouse,按照公司要求需要将其数据采集到Hive. 验证环境 CDH: 6.3.2 ClickHouse: 19.15.4.10 Sqoop: 1.4.7 ...

  9. Spring配置类理解(Lite模式和Full模式)

    Spring中的注解大家在开发中都常常用到,但是如果我说我们常常用的注解修饰了一个类,表示这个类就是一个配置类很多开发者都会有点迷糊了.具体配置类在开发中有什么样的用途我就不多说了,相信很多人都知道, ...

  10. CesiumJS PrimitiveAPI 高级着色入门 - 从参数化几何与 Fabric 材质到着色器 - 上篇

    目录 0. 基础 0.1. 坐标系基础 0.2. 合并批次 1. 参数化几何 1.1. 几何类清单 1.2. 举例 1.3. 纯手搓几何 1.4. *子线程异步生成几何 2. 使用材质 2.1. 外观 ...