2021年Java工程师面试试题
在日复一日的学习、工作生活中,我们都经常看到试题的身影,试题是命题者根据测试目标和测试事项编写出来的。一份什么样的试题才能称之为好试题呢?以下是小编精心整理的`2021年Java工程师面试试题,欢迎大家借鉴与参考,希望对大家有所帮助。
一、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。