欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

(收集)面试总结一

程序员文章站 2022-05-30 12:07:13
...
一.JAVA基础
1.八种基本类型的大小,以及他们的封装类
基本类型 封装类 字节
boolean Boolean 1/8
byte Byte 1
char Character 2
short Short 2
int Integer 4
float Float 4
long Long 8
double Double 8

2.Switch能否用String做参数
能,JAVA7之后支持,实际使用String的hashCode()进行判断

3.equals与==的区别
==比较的是两个变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同
equals用来比较两个对象内容是否相同,继承自Object的equals返回的仍是==,一般object的子类需重写equals方法

4.Object有哪些公用方法
Object clone() 保护方法,实现对象的浅复制,只有实现了Cloneable接口才可以调用此方法。
boolean equals(Object obj) 与==相同,比较两个对象是否相等(内存地址),子类一般都要重写此方法
void finalize() 该方法用于释放资源
Class<?> getClass() 获取对象的运行时类型
int hashCode() 获取对象的hashCode,重写equals方法时一般建议也重写hashCode(equals的对象hashCode必须相等)
void notify() 该方法唤醒在该对象上等待的某个线程
void notifyAll() 该方法唤醒在该对象上等待的所有线程
String toString() 一般都有子类覆盖
void wait() 此方法使当前线程等待该对象的锁,调用该方法后当前线程进入睡眠状态,直到以下事件发生。
void wait(long) (1)其他线程调用了该对象的notify方法
void wait(long, int) (2)其他线程调用了该对象的notifyAll方法
(3)其他线程调用了interrupt中断该线程
(4)时间间隔到了

5.hashCode的作用
该方法返回对象的哈希码值,如果两个对象相等(equals),则两个对象的hashCode必须相等。如果两个对象的hashCode相等, 则两个对象有可能不相等,也有可能相等。

5.hashCode的作用
该方法返回对象的哈希码值,如果两个对象相等(equals),则两个对象的hashCode必须相等。如果两个对象的hashCode相等, 则两个对象有可能不相等,也有可能相等。

6.ArrayList(动态数组)、LinkedList(链表)、Vector(动态数组)的区别
(1)同步性:ArrayList、LinkedList是不同步的,Vector是同步的
(2)数据增长:ArrayList和Vecotr都是使用数组形式来存储的,缺省情况下,Vector自动增长原来一倍的数组长度,而ArrayList是原来的50%。
(3)检索、插入、删除对象的效率:
ArrayList和Vector检索一个对象,或在集合的末尾插入、删除一个对象的时间是一样的,可表示为O(1)。但是,如果在集合的其他位置增加或移除元素,那么花费的时间会呈线性增长:O(n-i),其中n代表集合中元素的个数,i代表元素增加或移除元素的 索引位置。
LinkedList中,在插入、删除集合中任何位置的元素所花费的时间都是一样的O(1)。但它在索引一个元素的时候比较慢,为O(i),其中i是索引的位置。

7.String、StringBuffer与StringBuilder的区别