java面试的一些试题

             1、多态性(polymorphism):所谓多态性是指相同的操作或方法作用于多种类型的对象上并获得不同的结果。即不同对象收到同一消息,可以产生不同的结果。

2、继承性(inheritance):所谓继承性是子类自动共享父类数据结构和方法的机制,子类也可以扩展自己的特有属性,增加新方法和重新定义超类的方法,是类之间的一种特殊关系。

       子类对父类的继承性,java语言做了一下规定:子类自然地继承其父类中不是private的成员变量作为自己的成员变量,并且自然地继承父类中不是private的方法作为自己的方法。

3、封装性(encapsulation):所谓封装性是指将相关的信息,操作与处理包含在一个对象中,封装就是隐藏信息,是面向对象技术的核心,也是面向对象程序设计语言的基础。

4、重载与重写的区别:方法中的重写主要是针对继承这一重要概念的,对超类中的方法进行重写的,即子类中具有和超类中相同的方法名,参数列表和返回值的方法。而方法重载主要是针对类中的同名方法,即类中拥有很多相同名称的方法,但是参数都不相同,返回值可以相同也可以不相同。方法重载也重写的主要区别如下:

       (1)参数规则不同,重写要求相同的参数,重载要求不同的参数。

       (2)返回值规则不同,重写要求相同的返回值,重载对返回值没有特殊的要求。

    重载的概念(overload):所谓重载是指在一个类里面,方法名字相同而参数不同,重载方法的返回值类型可以相同也可以不同   (方法重载体现了一种多态性)。

    重写的概念(override):所谓重写是指子类在继承超类的方法时并没有原封不动的继承,而是做了一定的修改。方法重写有称方法覆盖。

5、抽象类和接口的区别:

(1)在抽象类中,类可以有自己的数据成员,也可以有非abstract成员方法,而在接口方式的实现中,接口只能有静态的,最终的数据成员,即static final常量,所有的成员方法都是public  abstract,从某种意义上讲,接口是一种特殊形式的抽象类。

(2)抽象类在java语言中表示的是一种继承关系,由于java的单继承机制使得每个类只能使用一次继承关系,而每个接口的继承关系却可以有很多个。

(3)在抽象类的定义中,可以赋予方法默认行为。但是在接口的定义方法中,方法不能拥有默认行为(都为public  abstract)。

(4)在接口中没有默认的行为就会造成一些维护问题,因为如果以后想修改类的节目来适应新的情况或加入新的功能,可能要花费很多时间。但如果界面是通过抽象类来实现的,那么肯能只需要修改定义在其中的默认行为就可以了。

(5)抽象类在java语言中体现了一种继承关系,要想使继承关系合理,父类和子类之间必须存在is-a的关系。即父类和子类在概念上本质上应该是相同的。接口并不要求其实现者和接口定义在概念本质上市一致的,只要实现了接口定义的方法即可。从含义上看,抽象类是is-a关系,接口标识的是like-a关系。

(6)实现抽象类和接口的类必须实现其中的所有方法,抽象类中可以有非抽象方法,但接口中则不能有任何具体的实现方法。

(7)接口中定义的变量默认是public  static final类型,且必须给其赋初值,因此实现类中不能重新定义,也不能改变其值。抽象类中的变量可以在子类中被重新定义,也可以被重新赋值。

(8)接口中的方法默认都是public  abstract 类型的。

6、char型变量中能不能存储一个中文汉字?为什么?

        char型变量是用来存储Unicode编码的字符的,Unicode编码字符集中包含了汉字,所以,char型变量中当然可以存储汉字,不过,如果某个特殊的汉字没有被包含在Unicode编码字符集中,那么,这个char型变量中就不能存储这个特殊汉字。

       补充说明:unicode编码占两个字节,所以,char型变量也是占用两个字节。

7、静态变量与实例变量的区别:

     在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加。

     在程序运行时的区别:实例变量是属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。静态变量不属于某个实例对象,而是属于类,所以也称类变量。只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空,静态变量就可以被使用了,总之,实例变量必须创建对象后才可以通过这个对象使用,静态变量则可以直接使用类名来引用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值