2022年Java常见面试题与三大框架面试:作用域和集合类区别

1 下载量 130 浏览量 更新于2024-01-16 收藏 32KB DOC 举报
2022年Java常见面试题及三大框架面试 在Java的面试过程中,常常会遇到一些基础知识的问题,这些问题对于应聘者来说非常重要。本文将总结一些2022年Java常见面试题及三大框架面试中的重要内容,并根据题目内容进行详细描述。 Java基础方面 1、作用域public、private、protected以及不写时的区别 作用域是指定义在类中的变量、方法和类能够被访问的范围。在Java中,有四种作用域:public、private、protected和默认(不写时)。 - public:定义了一个类、方法或者变量为公有的,可以被该类内部的其他类、方法和变量、同一包下的其他类、方法和变量、子孙类以及其他包中的类、方法和变量访问。 - private:定义了一个类、方法或者变量为私有的,只能被该类内部的其他方法和变量访问,其他类无法访问。 - protected:定义了一个类、方法或者变量为受保护的,可以被该类内部的其他类、方法和变量、同一包下的其他类、方法和变量访问,但是不能被其他包中的类、方法和变量访问。 - 默认(不写时):默认的作用域是friendly,也被称为包访问权限。定义了一个类、方法或者变量为friendly,可以被同一包下的其他类、方法和变量访问,但是不能被其他包中的类、方法和变量访问。 2、ArrayList和Vector的区别,HashMap和Hashtable的区别 ArrayList和Vector以及HashMap和Hashtable是Java中常见的集合类。它们之间存在一些区别。 - ArrayList和Vector的区别: 1. 同步性:Vector是线程安全的,也就是说是同步的,保证了在多线程环境下的线程安全;而ArrayList是线程不安全的,不是同步的。在多线程环境下如果不做额外的同步处理,使用ArrayList可能会导致数据不一致的问题。 2. 数据增长:当需要增长时,Vector默认增长为当前容量的两倍;而ArrayList则是增长为当前容量的一半。 总的来说,如果在多线程环境下使用或者需要保证线程安全,可以选择使用Vector;如果在单线程环境下使用或者不需要保证线程安全,可以选择使用ArrayList。 - HashMap和Hashtable的区别: 1. 历史原因:Hashtable是基于陈旧的Dictionary类的,而HashMap是Java 1.2引入的Map接口的一种实现。 2. 同步性:Hashtable是线程安全的,也就是说是同步的,适合在多线程环境下使用;而HashMap是线程不安全的,不是同步的。在多线程环境下如果不做额外的同步处理,使用HashMap可能会导致数据不一致的问题。 3. null值:Hashtable不允许键或值为null,而HashMap允许键或值为null。 总的来说,如果在多线程环境下使用或者需要保证线程安全,可以选择使用Hashtable;如果在单线程环境下使用或者不需要保证线程安全,可以选择使用HashMap。 以上是关于Java基础方面的一些常见面试题及其详细描述。在面试中,掌握这些知识点可以帮助应聘者更好地回答问题,展示自己的能力和知识水平。当然,除了这些内容之外,还有很多其他重要的Java面试题目,应聘者需要充分准备。希望本文对大家的面试准备有所帮助!