Java常见面试题收集
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常见面试题收集的更多相关文章
- java常见面试题及答案
java常见面试题及答案 来源 https://blog.csdn.net/hsk256/article/details/49052293 来源 https://blog.csdn.net/hsk25 ...
- java常见面试题及答案 1-10(基础篇)
java常见面试题及答案 1.什么是Java虚拟机?为什么Java被称作是"平台无关的编程语言"? Java 虚拟机是一个可以执行 Java 字节码的虚拟机进程.Java 源文件被 ...
- Java 常见面试题(一)
1)什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? Java虚拟机是一个可以执行Java字节码的虚拟机进程.Java源文件被编译成能被Java虚拟机执行的字节码文件.Java被设 ...
- 【转载】JAVA常见面试题及解答(精华)
JAVA常见面试题及解答(精华) 1)transient和volatile是java关键字吗?(瞬联) 如果用transient声明一个实例变量,当对象存储时,它的值不需要维持.例如: ...
- JAVA常见面试题问题简述(持续更新中)
JAVA常见面试题问题简述 1. springcloud和dubbo的区别 ①相比之下springcloud 的社区会更加活跃,解决问题的速度也会越来越快,dubbo相对来说如果碰到没有解决的问题,就 ...
- java常见面试题总结2
JAVA必背面试题和项目面试通关要点 简单来讲,equals方法主要是用来判断从表面上看或者从内容上看,2个对象是不是相等. 一 数据库 1.常问数据库查询.修改(SQL查询包含筛选查询.聚合查询和链 ...
- JAVA常见面试题及解答
JAVA相关基础知识1.面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时 ...
- Java常见面试题(含答案)
第一,谈谈final, finally, finalize的区别. final?修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承.因此一个类不能既被声明为 ...
- java常见面试题
JAVA相关基础知识 1.面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分 ...
- java常见面试题及答案 11-20(JVM篇)
11.JVM内存分哪几个区,每个区的作用是什么? Java虚拟机主要分为以下一个区: 方法区:1. 有时候也成为永久代,在该区内很少发生垃圾回收,但是并不代表不发生GC,在这里进行的GC主要是对方法区 ...
随机推荐
- [OpenCV实战]6 基于特征点匹配的视频稳像
目录 1 介绍 1.1 视频稳定的方法 1.2 使用点特征匹配的视频稳定 2 算法 2.1 帧间运动信息获取 2.1.1 合适的特征点获取 2.1.2 Lucas-Kanade光流法 2.1.3 运动 ...
- K8s 为什么会抛弃 docker
为什么 K8s 会抛弃 docker 前言 CRI containerd 参考 为什么 K8s 会抛弃 docker 前言 在这之前先来了解下,k8s 是如何和 docker 进行交互的. CRI k ...
- 震网(Stuxnet)病毒深度解析:首个攻击真实世界基础设施的病毒
摘要:震网病毒主要是通过改变离心机的转速,来破坏离心机,并影响生产的浓缩铀质量. 本文分享自华为云社区<[安全技术]震网(Stuxnet)病毒深度解析:首个攻击真实世界基础设施的病毒(1)[原创 ...
- Linux C 用GPS时间更新系统时间的方法。
思路: 1.GPS模块会自动收到带时间信息的消息. GPS模块会收到很多的协议消息带时间信息的.我们选择"$GPRMC"这条协议.其中的时间格式有的是hhmmss(时分秒) 有的是 ...
- 手把手教你图文并茂windows10安装VMware创建CentOS-7-x86_64运行linux系统
VMware是什么 VMWare (Virtual Machine ware)可以使你的计算机上同时运行几个系统.例如windows.DOS.LINUX等同时存在,可以将这些系统像程序似的随时切换,并 ...
- 日常JS数据各种操作方法总结~~欢迎大家留言板补充哦~~
需求情景一: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...
- Linux备份服务
备份服务 一.备份服务概述 备份服务:需要使用脚本,打包备份,定时任务 通过rsyncd服务,不同主机之间进行数据传输 rsyncd特点: rsync是个服务,也是命令 使用方便,有多种模式 传输数据 ...
- tomcat8 性能优化参考
https://www.jianshu.com/p/c770c1e97531 tomcat8 性能优化参考
- 2023.1.16[模板]BSGS/exBSGS
2023.1.16 [模板]BSGS/exBSGS 全称Boy Step Girl Step 给定一个质数 p,以及一个整数 a,一个整数 b,现在要求你计算一个最小的非负整数 l, 满足\(a^x ...
- IoT 边缘集群基于 Kubernetes Events 的告警通知实现(二):进一步配置
上一篇文章 IoT 边缘集群基于 Kubernetes Events 的告警通知实现 目标 告警恢复通知 - 经过评估无法实现 原因: 告警和恢复是单独完全不相关的事件, 告警是 Warning 级别 ...