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. Golang如何实现节假日不打扰用户?

    ​ 1.场景 想象下以下场景,嘿嘿...! 一个iphone用户,闹钟是可以按节假日不响的! 每日新闻机器人,节假日是可以不打扰我的! 我的业务,节假日是可以... 2.思路 要实现识别节假日,大概有 ...

  2. SpringMVC学习笔记 - 第一章 - 工作流程、Bean加载控制、请求与响应(参数接收与内容返回)、RESTful

    [前置内容]Spring 学习笔记全系列传送门: Spring学习笔记 - 第一章 - IoC(控制反转).IoC容器.Bean的实例化与生命周期.DI(依赖注入) Spring学习笔记 - 第二章 ...

  3. 移动端安卓开发学习记录--Android Studio使用adb链接夜神模拟器常用指令

    1.下载安装模拟器,打开模拟器,本步骤不再赘述 2.打开模拟机器安装路径,在地址栏输入cmd,回车,就会打开命令行窗口 3.输入 nox_adb.exe connect 127.0.0.1:62001 ...

  4. 定时调度插件------FluentScheduler

    定时调度插件------FluentScheduler 源码地址 官网文档地址 使用说明 dll引用 文章使用的版本为5.5.1版本 使用GuGet搜索FluentScheduler即可找到 如果框架 ...

  5. RAM算法原理

    1 应用场景 信道的不对称性和信道的高波动是移动环境中无线信道的两个显著特征.因此,当在车辆网络等移动环境中使用IEEE 802.11设备时,有一个能够处理这些问题的有效速率自适应方案至关重要.RAM ...

  6. 从历代GC算法角度刨析ZGC

    作者:京东科技 文涛 前言 本文所有介绍仅限于HotSpot虚拟机, 本文先介绍了垃圾回收的必要手段,基于这些手段讲解了历代垃圾回收算法是如何工作的, 每一种算法不会讲的特别详细,只为读者从算法角度理 ...

  7. 【Redis场景4】单机环境下秒杀问题

    单机环境下的秒杀问题 全局唯一ID 为什么要使用全局唯一ID: 当用户抢购时,就会生成订单并保存到订单表中,而订单表如果使用数据库自增ID就存在一些问题: 受单表数据量的限制 id的规律性太明显 场景 ...

  8. 0基础搭建基于OpenAI的ChatGPT钉钉聊天机器人

    前言:以下文章来源于我去年写的个人公众号.最近chatgpt又开始流行,顺便把原文内容发到博客园上遛一遛. 注意事项和指引: 注册openai账号,需要有梯子进行访问,最好是欧美国家的IP,亚洲国家容 ...

  9. Cow Picnic S 更新了(在后面)

    解题思路: 从每头奶牛的节点开始做搜索,用dfs走遍所有路径(走到底,不回头).每遍历到一个节点该节点遍历次数就加一,最后所有奶牛都搜索完之后,检查每个节点的遍历次数,如果该节点的遍历次数等于奶牛数则 ...

  10. 重新思考 Vue 组件的定义

    重新总结组件的定义 这是官方对组件的定义:组件允许我们将 UI 划分为独立的.可重用的部分,并且可以对每个部分进行单独的思考.在实际应用中,组件常常被组织成层层嵌套的树状结构. 对于 Vue 开发经验 ...