面向对象面试题

1、面向对象的优点?

         易拓展,易维护

 

2、如何声名一个静态块?

         使用static 关键字,后面跟上大括号

 

3、接口与抽象类的区别?

         凡是用abstract修饰的类都叫做抽象类

         抽象类可以有零个或多个抽象方法,也可以包含非抽象方法

         抽象类中可以没有抽象方法,但是有抽象方法的类必须是抽象类,

         抽象类不能创建对象,必须由抽象类派生子类来实现

 

         接口是用interface修饰的类,接口只能被接口继承

         接口里面的方法只能是抽象方法

         接口里面的变量只能是常量,(publicstatic final)

         接口不能实例化,只能通过多态的方式来实例化

 

4、说出用于类和接口的关键字

         定义类用class关键字,

         定义接口用interface关键字

 

5、如何创建数组?

         创建数组有两种方式

         第一种使用new关键字

         第二种直接声明,大括号直接赋值的方式

 

6、如何创建一个构造方法?要注意哪些?

         public关键字加方法名,

         需要注意,方法名和类名相同

         构造方法没有返回值

 

7、类的组成和执行顺序

         属性,方法,静态代码块,非静态代码块

         执行顺序:父类,子类,静态块,静态字段,非静态块,非静态字段,构造器,方法

 

8、main方法必须被什么修饰?

         main方法必须是publicstatic 修饰,返回值void ,参数类型是一个字符串的数组

 

9、如何理解面向对象

         举例面向过程,辅助说明面向对象

 

10、构造方法可否能被重写

         构造方法不能被继承,因此不能被重写,但能被重载。

 

11、静态方法中能有静态的变量吗?

         不能!静态变量是类变量,不可以定义在方法里

 

12、String与StringBuffer的区别

         string是常量,是一个不可以变的字符序列。

         StringBuffer是一个可变的字符序列。

         如果需要频繁改变字符串,string每改变一次就创建一次对象,

         而stringBuffer不管怎么改变,都是操作一个对象,因此要使用stringBuffer比String性能更快

 

13、重载(overloading)与重写(override)的区别

         方法重载:在一个类里面,方法名一样,参数列表不同,与返回值无关

         方法重写:在继承关系中,方法名一样,,参数列表相同

 

14、(==)与equals()的区别

         ==可以比较变量的值,也可以比较对象的地址

         equals只能用来比较对象,如果equals没有重写,只能比较对象的地址,

         因此没有重写equals情况下,使用equals是没有意义的

 

15、StringBuilder和StringBuffer的区别

         StringBuilder比StringBuffer性能快,但是线程 不安全,

 

 

16、JRE,JDK,JVM分别是什么,它们有什么联系

         jvm是java虚拟机

         jdk是java开发工具包

         jre是运行时环境

         jvm属于jre一部分

 

17、普通类继承抽象类为什么一定要重写其中的抽象方法?

         普通类继承抽象类必须重写抽象方法,否则子类对象就无法实例化

 

18、什么是拆箱和装箱?

         拆箱和装箱是指八大基本数据类型和与其对应的包装类型之间的类型转换

         拆箱:包装类型转基本数据类型

         装箱是基本数据类型转包装类型

         JDK1.5新特性提供了自动装箱和自动拆箱,用等号连接

 

19、继承与实现的区别?

         继承针对类,实现针对接口

         继承只能单继承,实现可以多实现

         实现需要重写接口所有方法,继承不需要

 

20、abstract为什么不能与private,final同时使用?

         abstrace是用来修饰类和方法的,被修饰的类和方法必须被子类重写才能实例化,

         而private和final修饰的类和方法不能被继承,因此不能同时使用

 

21、继承最大好处?

         提高代码的复用性,提高开发效率

         继承使类与类产生关系,为多态提供前提

 

22、写出String类常见的5个方法,并详细解释?

indexOf()返回指定字符串在该字符串出现的序列

startsWith()判断该字符串是否以指定字符开始

concat() 将指定字符串连接在该字符串的结尾

length()返回字符串的长度

substring返回该字符串从索引开始结束于字符串末尾或者指定索引的一个子字符串

 

23、普通方法的方法名可以与类名一致吗?

可以

24、在什么情况下局部变量会覆盖全局变量?

        当局部变量名与全局变量名相同类型相同

25、static 修饰的方法可否支持多态?

         不支持,

         多态的前提是子类重写父类方法,

         static修饰的方法属于类本身,不能被继承,所以static修饰的方法不支持多态

 

26、使用数组前应该注意的什么?

         需要对数组进行初始化,数组下标是否越界

 

27、Java语言最大的特点?

         跨平台(一次编译,多平台执行)

 

28、请你说说byte short char之间可以互相转换吗?为什么?

         可以通过强转,范围小的转范围大的,子类可以转父类,反之不行,会抛异常

 

29、请说说引用和对象?

         引用和对象是分不开的,对象生成一个地址,引用指向这个地址

         Aa = new A();

         a为引用,等号右边是对象

 

30、怎样将一个String添加到另一个String的后面?

         用两种方法,第一种用加号连接,

         第二种用stringBuffer或 stringBulider的append方法

 

31、有几种数据类型?

         基本数据类型和引用数据类型

 

32、传参有几种类型?有几种特殊类型?

         基本数据类型和引用数据类型

 

33、什么是匿名类,有什么好处

         匿名类是么有名字的类,封装号,安全性高,用一次就销毁

 

34、jar是什么格式的文件,有什么好处

         jar是java class文件的压缩包,方便管理class文件

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值