(收集)面试总结一
程序员文章站
2022-05-30 12:07:55
...
一.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的区别
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的区别
上一篇: PHP Profiler