方正璞华面试总结
1.final、finally、finalize的区别?
1、final修饰符(关键字)。被final修饰的类,就意味着不能再派生出新的子类,不能作为父类而被子类继承。因此一个类不能既被abstract声明,又被final声明。将变量或方法声明为final,可以保证他们在使用的过程中不被修改。被声明为final的变量必须在声明时给出变量的初始值,而在以后的引用中只能读取。被final声明的方法也同样只能使用,即不能方法重写。
2、finally是在异常处理时提供finally块来执行任何清除操作。不管有没有异常被抛出、捕获,finally块都会被执行。try块中的内容是在无异常时执行到结束。catch块中的内容,是在try块内容发生catch所声明的异常时,跳转到catch块中执行。finally块则是无论异常是否发生,都会执行finally块的内容,所以在代码逻辑中有需要无论发生什么都必须执行的代码,就可以放在finally块中。
3、finalize是方法名。java技术允许使用finalize()方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在object类中定义的,因此所有的类都继承了它。子类覆盖finalize()方法以整理系统资源或者被执行其他清理工作。finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。
2.java中的作用域
1,public 2,protected 3,(default) 4,private
1任何类都可以访问
2在同一个包中的所有类可以访问,以及该类的子类
3同一个包中的所有类
4只能在本类中访问
3.request和response的区别
4.collection 和conllections的区别
Collection是集合类的上级接口,继承与他的接口主要有Set 和List.
Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。
反转:reverse()
public class CollectionsDemo {
public static void main(String[] args) {
//这个是数组 int[] arr =new int[] {1,4,2,7,5,9,0};
ArrayList list = new ArrayList();
list.add(3);
list.add(4);
list.add(1);
list.add(45);
list.add(5);
//排序方法Sort
Collections.sort(list);
System.out.println(list);
//随机顺序shuffle
Collections.shuffle(list);
System.out.println(list);
//找最大数max
int max= (int) Collections.max(list);
System.out.println(max);
}
}
5.使用*打印一个倒三角(编程)
public class DaoSanjiao {
public static void main(String[] args) {
for(int i=0;i<5;i++) {
for(int j=5;j>i;j--) {
System.out.print("*");
}
System.out.println();
}
}
}
6.理解">>",">>>"
符号右移时,对于正数 高位补0,对于负数 高位补1;
无符号右移,长度扩展为4字节,最高位都为0,但正数扩展位补0,负数扩展位补1
public static void main(String[] args) {
int a=10;
System.out.println(a>>1);//5
System.out.println(a>>2);//2
System.out.println(a>>30);//0
int b=-1;
System.out.println(b>>1);//-1
System.out.println(b>>31);//-1
int c=1;
System.out.println(c>>>1);//0
}