java面试题01

来源:互联网 发布:淘宝新开的店铺发货慢 编辑:程序博客网 时间:2024/05/19 12:27
1.作用域:
                           当前类            同一package    子孙类    其他package


public                  √                     √                    √              √ 


protected            √                    √                    √              × 
 
friendly               √                    √                    ×              × 
 
private               √                    ×                   ×              × 


不写时默认friendly;




2. 匿名内部类是否可以继承其它类,是否可以实现接口?


匿名的内部类是没有名字的内部类,不能继承其它类,但一个内部类可以作为一个接口,由另一个内部类实现;


3.&与&&的区别


&是位与运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与;


4.Collection和Collections的区别
Collection 是集合类的上级接口,继承与它的接口主要有Set和List 
Collections是针对集合类的一个帮助类,它提供一系列的静态方法实现对各种集合的搜索,排序,线程安全化等操作。


5.override和overload的区别
方法的重写和重载是java多态性的不同表现,重写是父类和子类之间多态性的一种表现,重载是一个类中多态性的一种表现,如果子类定义的某个方法与父类具有相同的名称
和参数,我们说该方法被重写,子类的对象使用这个方法时,将调用子类中的定义,如果在一个类中定义了多个同名的方法,他们或有不同的参数或有不同的参数类型,则称为
方法的重载,overload方法可以改变返回值的类型。


6.Set元素是不能重复的,那么用什么方法来区分重复与否呢,使用==还是equals()?他们有何区别?
Set元素是不能重复的,那么用iterator()方法来区分重复与否,equals()方法是判断两个set是否相等,
equals方法用于检测一个对象是否等于另一个对象,在Object类中,这个方法将判断两个对象是否具有相同的引用;
==用于比较引用和比较基本数据类型时具有不同的功能:
比较基本数据类型,如果两个值相同,则结果为true 




7.常见的运行时异常


NullPointerException                 空指针错误


IndexOutOfBoundsException    下标越界


ClassCastException                  ClassCastException是JVM在检测到两个类型间转换不兼容时引发的运行时异常


IllegalStatamentException    


EmptyStackException       堆栈为空


8.抽象类和接口有什么区别:

声明方法的存在而不去实现它的类叫做抽象类,它用于要创建一个体现某些基本行为的类,

并为该类声明方法,但不能在该类中实现该类的情况,不能创建抽象类的实例,然而可以

创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造

函数或抽象静态方法。抽象类的子类为他们父类中的所有抽象方法提供实现。


接口是抽象类的实体,在接口中,所有方法都是抽象的,多继承性可以通过实现这样的接口而获得。

接口只可以定义 static final 成员变量。instanceof 运算符可以用来决定某对象的类是否实现了接口 。

最大的区别是抽象类中的方法可以有具体的实现,而接口不可以。接口是公开的,里面不能有私有的
方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的。 





















原创粉丝点击