1、面向对象的三大特性?
封装、继承、多态
2、ArrayList、linkedList、vector的区别?
ArrayList 和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,都允许直接序号索引元素,但是插入数据要设计到数组元素移动等内存操作,所以索引数据快插入数据慢,Vector由于使用了synchronized方法(线程安全)所以性能上比ArrayList要差,LinkedList使用双向链表实现存储,按序号索引数据需要进行向前或向后遍历,但是插入数据时只需要记录本项的前后项即可,所以插入数度较快!
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set
Map
├Hashtable
├HashMap
└WeakHashMap
3、java反射机制的原理?
Java 的反射机制是使其具有动态特性的非常关键的一种机制,也是在JavaBean 中广泛应用的一种特性。
Java的反射机制的实现要借助于4个类:class,Constructor,Field,Method;
其中class代表的时类对象,
Constructor-类的构造器对象,
Field-类的属性对象,
Method-类的方法对象。
4、对于Serizable序列化的理解和运用?
理解: 为了保存在内存中的各种对象的状态(也就是实例变量,不是方法),并且可以把保存的对象状态再读出来。虽然你可以用你自己的各种各样的方法来保存object states,但是Java给你提供一种应该比你自己好的保存对象状态的机制,那就是序列化。
运用:什么情况下需要序列化?
a)当你想把的内存中的对象状态保存到一个文件中或者数据库中时候;
b)当你想用套接字在网络上传送对象的时候;
c)当你想通过RMI传输对象的时候;
5、单例模式的理解和运用
- 在软件工程中,单例是一种用于实现单例的数学概念,即将类的实例化限制成仅一个对象的设计模式。
- 或者我的理解是: 单例是一种类,该类只能实例化一个对象。
简单的单例:
public class Test{
private static final Test test = new Test();
/*私有的默认构造子*/
private Test() { }
/* 静态工厂方法*/
public static Test getTest() {
return test;
}
}
6、冒泡排序的例子?
public static void maoPao(int []arr) {
for(int i=0;i<arr.length-1;i++){
for(int j=0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
今天去的面试还算是蛮好的,根本没有某些人所谓的严肃氛围,接待的美女也很友善,就是穿着短袖在公交上冷了,现在眼泪鼻涕忍不住,尴尬!