2021Java最常见面试试题
在学习、工作生活中,我们经常接触到试题,借助试题可以更好地检查参考者的学习能力和其它能力。你知道什么样的试题才能切实地帮助到我们吗?下面是小编帮大家整理的2021Java最常见面试试题,仅供参考,大家一起来看看吧。
一、java中Static关键字有哪些特点?
1、static成员变量
静态变量:属于类,内存中只有一个复制,所有实例都指向同一个内存地址,只要类被加载,静态变量就会本分配空间,调用方式有两种。
实例变量:属于对象,只有对象被创建,实例对象才会被分配空间,调用方式:对象实例变量
2、static成员方法
静态方法:属于类,不需要创建对象,就可以被调用。
非静态方法:属于对象,只能在对象被创建出来之后才可以被使用。
注意:static方法中,不能使用this和super关键字,不能调用非static方法,只能访问所属类的静态成员变量和静态成员方法。
二、java中length属性与length()方法有什么区别?
length属性属于数组,用来获取数组的长度;而length()方法属于String用来计算字符串长度。
三、java中Collections框架是什么?
Collection是整个集合框架的基础,它里面存储了一组对象,用于表示不同类型的Collections.主要有一下三种,其特点如下。
1、set主要特点集合中元素不能重复。
2、list有序的Collection,按照对象的`进入顺序保存对象,可以重复。
3、map提供了从键映射到值得数据结构,值可以重复单键必须唯一。
四、java中ArrayList、Vector、LinkedList有什么区别?
ArrayList、Vector、LinkedList类均在java.util包,均为可伸缩数组,即可以动态改变长度的数组。
ArrayList、Vector都是基于数组来实现的,数据存储是连续的,支持下标访问元素,查询快,插入慢。
区别在于:ArrayList提供的方法都不是同步的,且线程不安全,但效率高。Vector大部分方法都是同步的,且线程安全,效率低。
LinkedList采用双向链表来实现,因此访问效率低,插入效率高,且该容器是非线性安全的。
五、java中HashTable与HashMap有什么区别?
1、父类不同:
HashMap是继承自AbstractMap类,而HashTable是继承自Dictionary。但都是实现了Map方法。
2、null值不同:
HashMap可以允许存在一个为null的key和任意个null的value,但是HashTable中的key和value都不允许为null。
3、线程安全性:
hashtable是线程安全的,hashmap不之初线程同步,不是线程安全的