Java常见面试题二(抽象、接口完)
Java常见面试题二(抽象、接口完)
1. 使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?.1
2. "=="和equals方法究竟有什么区别? (1)
3. 静态变量和实例变量的区别? (2)
4. 是否可以从一个static方法内部发出对非static方法的调用?有什么限制? (2)
5. Integer与int的区别 (2)
6. 下面的两行代码有什么不妥之处? (2)
7. 请说出作用域public,private,protected,以及不写时的区别 (2)
8. Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型? .. 2
9. 构造器Constructor是否可被override? (3)
spring品牌10. 接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继
承具体类(concrete class)? 抽象类中是否可以有静态的main方法? (3)
11. 写clone()方法时,通常都有一行代码,是什么? (3)
12. 面向对象的特征有哪些方面,请分别说明? (3)
13. java中实现多态的机制是什么? (3)
14. abstract class和interface有什么区别? (3)
Class()方法调用 (4)
15. String是最基本的数据类型吗?它可以被继承吗?以及它和StringBuffer的区
别? (4)
16. String s = "Hello";s = s + " world!";这两行代码执行后,原始的String对象中的内
容到底变了没有? (5)
17. String s = new String("xyz");创建了几个String Object? 二者之间有什么区别?.5
18. 如何把一段逗号分割的字符串转换成一个数组? (5)
19. 数组有没有length()这个方法? String有没有length()这个方法? (5)
20. 下面这条语句一共创建了多少个对象:String s="a"+"b"+"c"+"d"; (5)
1.使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?
答:修饰基本类型时,值不能变;修饰引用类型时,是引用不能变。
2."=="和equals方法究竟有什么区别?orphanremoval
答:相同点:都是等于的运算;
不同点:==操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型
的数据或两个引用变量是否相等,只能用==操作符。
equals方法是用于比较两个独立对象的内容是否相同,就好比去比较两个人的长相是否相同,它比较的两个对象是独立的。
3.静态变量和实例变量的区别?
答:相同点:都是变量;
不同点:静态变量用static修饰,实例变量不用;静态变量储存在内存中的静态区,实例变量的变量储存在栈中,引用储存在堆中;静态变量的使用是通过类名.变量名直接使用,实例变量必须通过创建实例对象的方法使用。
4.是否可以从一个static方法内部发出对非static方法的调用?有什么限制?
答:不能。调用的方法也必须是static修饰的。
5.Integer与int的区别
答:相同点:都是整型;
不同点:int是基本类型,Integer是封装类,是一个对象,引用类型。
6.下面的两行代码有什么不妥之处?
1.if(username.equals(“zxx”){}
正确的应为:if(“zxx”.equals(username)) {}
2. int x = 1;
return x==1?true:false;
代码重复
7.请说出作用域public,private,protected,以及不写时的区别
答:public :全部类都可以调用
private :只有本类可以调用
protected :同包下或者子类中
default :同包下
8.Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
答:Overload是方法重载,要求变量名相同,参数列表不同,作用与同一个类中,没有权限要求;
Override是方法重写,要求变量名相同,参数列表相同,作用与继承子类中,有访问权限:public > proteced > default > private;
Overloaded可以改变返回值类型。
9.构造器Constructor是否可被override?
答:构造器不能被继承,因此不能被重写。
10.接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承具体
类(concrete class)? 抽象类中是否可以有静态的main方法?
答:接口可以继承接口;
抽象类可以实现接口;
java常见笔试题抽象类可以继承具体类;
抽象类中可以有静态的main方法。
抽象类和具体类的唯一区别就是不能创建实例对象,允许有abstract方法。
11.写clone()方法时,通常都有一行代码,是什么?
答:是super.clone();先把父类中的成员复制到位,然后才是复制自己的成员。
12.面向对象的特征有哪些方面,请分别说明?
1.封装:将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对
异步传输的英文缩写>mediumint与integer的取值范围象的内部信息,而是通过该类提供的方法来实现对内部信息的操作和访
问。用private修饰。
2.继承:代码的重用,可以继承父类的属性和方法,用关键字extends来实
现。
3.多态:编译时类型和运行时类型不一致。(编译时类型:声明变量时的类
型;运行时类型:实际赋值给变量的对象类型)
4.抽象就是出一些事物的相似和共性之处,然后将这些事物归为一个类,
这个类只考虑这些事物的相似和共性之处,并且会忽略与当前主题和目标无关的那些方面,将注意力集中在与当前目标有关的方面。
13.java中实现多态的机制是什么?
答:靠的是父类或接口定义的引用变量可以指向子类或具体实现类的实例对象,而程序调用的方法在运行期才动态绑定,就是引用变量所指向的具体实例对象的方法,也就是内存里正在运行的那个对象的方法,而不是引用变量的类型中定义的方法。
14.abstract class和interface有什么区别?
1.抽象类可以有构造方法,接口中不能有构造方法。
2.抽象类中可以有普通成员变量,接口中没有普通成员变量
3.抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。
4. 抽象类中的抽象方法的访问类型可以是public,protected和(默认类型,虽然
eclipse下不报错,但应该也不行),但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型。
5. 抽象类中可以包含静态方法,接口中不能包含静态方法
6. 抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public static final类型,并且默认即为public static final类型。
7. 一个类可以实现多个接口,但只能继承一个抽象类。
Class()方法调用
下面程序的输出结果是多少?为什么?
import java.util.Date;
public class Test extends Date{
public static void main(String[] args) {
new Test().test();
}
public void test(){小苏打和碱面有啥区别
System.out.Class().getName());
}
}
答:
输出的结果是:包名.Test;(全限定名)
因为Date中没有getClass()方法,所以继承Object,getClass()方法返回的是运行时的class对象。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论