面试题

1.栈的空间小,但是操作速度很快,new的对象进入的是堆

String str = new String("hello"); str,进入的是栈,但是hello进入的是静态区

2.构造器不能被继承,不能被重写,但是能被重载

3.a.equals(b) == true 但是他们却又相同的hashCode对不对?

不对,如果两个对象相同,HashCode一定要相同,如果HashCode相同则这两个对象不一定相同

4.String类能被继承吗

不能,String类被final修饰,不能被继承

5.当一个对象被当做一个参数传递之后,是值传递,还是引用传递

值传递,java中调用参数只支持值传递

6.StringBuild和StringBuffer的区别

StringBuild是java 5中引入的和StringBuffer方法完全相同,并且没有被synchronized所修饰,所以要快一些

7.关于抽象类和接口的问题

抽象类和接口都不能实例化,但是可以定义抽象类和接口的引用

如果一个类定义了抽象类和接口就要实现其方法

接口的成员必须全是public,

有抽象方法必须有抽象类,但是有抽象类不一定有抽象方法

8.java中会有内存泄露吗

理论上不会出现类存泄露但是,在开发中会出现无内存可用的情况

例如hibernate的session如果开启不关闭的还gc是不会回收的需要手动的close和flush

9.String str = new String("xyz") 会创建几个对象,会创建2个对象1个new的对象在堆上,另一个对象在静态区中是xyz

for(int i=0;i<arr.length-1;i++){

for(int j=0;j<arr.length-1;j++){

if(arr[j]>arr[j+1]){

int temp = arr[j];

arr[j] = arr[j+1];

arr[j+1] = temp;

}

}

}

原文地址:https://www.cnblogs.com/chenligeng/p/9936372.html