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. 【RocketMQ】负载均衡源码分析

    RocketMQ在集群模式下,同一个消费组内,一个消息队列同一时间只能分配给组内的某一个消费者,也就是一条消息只能被组内的一个消费者进行消费,为了合理的对消息队列进行分配,于是就有了负载均衡. 接下来 ...

  2. 震网(Stuxnet)病毒深度解析:首个攻击真实世界基础设施的病毒

    摘要:震网病毒主要是通过改变离心机的转速,来破坏离心机,并影响生产的浓缩铀质量. 本文分享自华为云社区<[安全技术]震网(Stuxnet)病毒深度解析:首个攻击真实世界基础设施的病毒(1)[原创 ...

  3. AIGC 很火,想微调个自己的模型试试看?(不是卖课的)

    去年,我们发布过一篇关于 DreamBooth 编程马拉松的活动通知,获得了全球社区的广泛关注和参与,中国社区的成员们也对这个活动有非常高的热情.同时我们也收到了后台留言反馈说参与活动需要使用的 Go ...

  4. 解决node.js报错Invalid character in header content ["Content-Disposition"]

    遇到这种报错一般在于下载文件时候,如果Content-Disposition设置文件名有中文会出现此种问题,解决方案如下: 把第二段代码改为第一段,即可~~ 'Content-Disposition' ...

  5. 公司规定所有接口都用 post 请求,这正确么?

    目录 背景 get 与 post 的区别 所有接口都用 post 请求? 背景 最近在逛知乎的时候发现一个有趣的问题:公司规定所有接口都用 post 请求,这是为什么? 看到这个问题的时候其实我也挺有 ...

  6. 在spring boot3中使用native image

    目录 简介 安装GraalVM 添加Native Image支持 构建spring boot3应用 总结 简介 在之前spring boot3文章中我们介绍了,spring boot3的一个重要特性就 ...

  7. Solon 的插件热插拨管理机制(H-Spi)

    插件热插拨管理机制,简称:H-Spi.是框架提供的生产时用的另一种高级扩展方案.相对E-Spi,H-Spi 更侧重隔离.热插热拨.及管理性. 应用时,是以一个业务模块为单位进行开发,且封装为一个独立插 ...

  8. 【LeetCode字符串#03】图解翻转字符串中的单词,以及对于for使用的说明

    翻转字符串中的单词 力扣题目链接(opens new window) 给定一个字符串,逐个翻转字符串中的每个单词. 示例 1: 输入: "the sky is blue" 输出: ...

  9. WPF 使用动画绘制一个点赞大拇指

    效果图 好久没有写wpf了. 最近看到飞书的点赞动画非常有意思,决定试试,虽然不及飞书那样的绚丽,但是练手还是可以的,希望自己的手艺还在! 那么如何写一个这样的动画呢? 首先需要刨析这个动画的构成: ...

  10. STM32F4库函数初始化系列:串口DMA接收

    1 u8 _data1[4]; 2 void Configuration(void) 3 { 4 USART_InitTypeDef USART_InitStructure; 5 DMA_InitTy ...