Java基础题

1.面向对象的特征有哪些方面?

封装(将对象相关的信息和行为状态捆绑成一个单元,即将对象封装为一个具体的类。封装隐藏了对象的具体实现,当要操纵对象时,只需调用其中的方法,而不用管方法的具体实现)

继承(便于对已有函数功能的调用与扩展)

多态(将子对象赋值给父对象,用父对象调用某一方法,实则调用的是子类中重写的该方法。作用把不同的子类对象   作父类来看,可以屏蔽不同子类对象之间的差异---用赋值后的不同父对象调用同一方法,实现的却是不同        子类中该方法的功能。可以写出通用的代码,做出通用的编程,以适应需求 的不断变化。


2.访问修饰符public,private,protected,以及不写(默认)时的区别?

public(类、方法、数据域):表示可以被任何其他的类访问。

protected(方法、数据域):允许任何包中的子类同一包中的类访问。

默认(类、方法、数据域):可以被同一包中的任何一个类访问。称为包私有(package-private)或包内访问(package-access)。

private(方法、数据域):只能在自己的类中被访问(不能被其他类访问)。


从上到下限制越来越严格。


   注意:1)子类可以将父类的protected方法的可见性改为public。当如果父类方法是public,子类中也必须定义为public。

2)终极类(public final class name{})不能被继承,终极方法(public final void function(){})不能被盖,final还可以用来修饰局部变量(终极局部变量),则为常量


3. 是否可以继承String类?

不可以。因为String类是用final修饰的,故不能被继承。


4. 重载(Overload)和重写(Override)的区别。

重载:在一个类中,不同方法具有相同的名字,但有不同的参数列表返回值类型可以相同也可以不同

注意:1)被重载的方法必须具有不同的参数列表。不能基于不同修饰符或返回值类型来重载方法。

2)调用方法时,Java编译器寻找最精确匹配的方法。

3)歧义调用:调用一个方法时,会有两个或更多的匹配。如max(int,double)和max(double,int)都有可能与max(1,2)匹配。此时Java编译器无法判断哪个是最精确的匹配


重写(覆盖):子类从父类中继承方法时,修改父类中定义的方法的实现。这个方法在父、子类中具有相同的名字相同的返回值类型相同的参数列表,可以有不同的访问修饰符

注意:1)仅当实例方法是可访问时,他才能被覆盖。所以私有方法不能被覆盖。如果子类中定义的方法在父类中  是私有的,那么这两个方法完全没有关系。

2)如需调用的父类的方法,可用super关键字。

3)与实例方法一样,静态方法也能被继承。但静态方法不能被覆盖。如果父类的静态方法在子类中被重新定义,那父类中的静态方法将被隐藏,可以使用父类名.静态方法名调用隐藏的静态方法。


5.抽象类和接口有什么异同?

       接口是抽象类的变体。

抽象类:包含了一个或多个抽象方法的类。(可以不包含抽象类)


不同点:1)抽象类的变量无限制,接口的所有变量必须是public static final

2)抽象类可以有构造方法,接口没有构造方法

3)抽象类的方法无限制,接口的所有方法必须是公共的抽象实例方法(public abstract)

4)抽象类不支持多继承,接口支持多继承

5)抽象类可以有定义(抽象方法)和实现(普通方法),接口只有定义(跟第3条差不多一个意思)


相同点:都不能被实例化,都可以通过继承实现其抽象方法(必须实现全部抽象方法)。


6.Java中的final关键字有哪些用法?

1)修饰(终极类--public final class name{}),则此类不能被继承。

2)修饰方法(终极方法--public final void function(){}),则此类不能被覆盖(修改)。

3)修饰变量,若修饰的是基本数据类型的变量,则为常量;若修饰的是引用类型的变量(即对象实例),则此对象不能再被重新赋值而指向另一个变量。

:private 将方法隐式的指定为final类型


7.常见的运行时异常有哪些?

ArithmeticException(除数为零)

NullPointerException

IndexOutOfBoundsException

IllegalArgumentException(传递给方法的参数非法或不合适)等等


8.List、Set、Map是否继承自Collection接口?

List(ArrayList、Vector)与Set(HashSet、TreeSet)继承自Collection接口,而Map(HashMap、HashTable)与Collection同级。















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值