面试题

35 阅读2分钟

1、“==”和“equals”的区别 “==”:它的作用是判断两个对象的地址值是否相等。即判断两个对象是不是同一个对象。 (基本数据类型比较==比较的是值,引用数据类型==比较的的是内存地址)

equals:它的作用也是判断两个对象是否相等,但他一般有两种使用情况: 1)类没有重写equals和hashcode方法,则它等价于"==" 2)类重写了equals和hashcode方法,则比较的是内容是否相等。 注意:如果比较的对象存在null时,则会抛出空指针异常NullPointException,建议使用Objects.equals()进行比较

2、final修饰类、方法、属性有什么作用 final关键字主要用在三个地方:变量、方法、类 final修饰变量:表示这个变量是常量,在初始化后就不能更改; final修饰类 :表示这个类是最终类,不能被继承。final类中的所有方法都会被隐式地指定为final方发生; final修饰方法:表示这个方法是最终方法,不能被重写(可以被重载)

3、基本数据类型?分别占用的字节大小 四类八种L: 整数,小数,字符,布尔 基本数据类型 byte short int long float double char boolean 占字节大小 1 2 4 8 4 8 2 1 | 2 |4 占位大小 8 16 32 64 32 64 16

4、介绍Java中的集合框架 Coolection 接口的接口:对象的集合(单列集合) ---List接口:有序,可重复集合,有索引 -------LinkedList:List接口的实现类,基于双向链表实现,插入删除快,随机访问慢,没有同步,线程不安全 -------ArrayList:List接口实现类,基于动态数组实现,随机访问快,插入删除慢,没有同步,线程不安全 -------Vector:接口实现类,基于数组实现,同步,线程安全,但目前已经被淘汰 ---Set接口:无序,不可重复的集合,并做内部排序,没有索引 -------HashSet:Set接口的实现类,基于哈希表实现,无序集合 ----------LinkedHashSet:保持插入顺序的HashSet -------TreeSet:基于红黑树实现,元素排好了顺序的集合,没有索引 Map接口 键值对的集合(双列集合) -------HashMap:接口的实现类,基于哈希表实现,键无序的双列集合,没有同步,线程不安全; -------LinkedHashMap:基于哈希表和链表实现,保持了插入顺序的HashMap,没有同步,线程不安全; -------TreeMap:基于红黑树实现,红黑树对所有的key进行排序,可以指定排序规则