Java面试的常见问题

Java语言的优点:

1.      Java为纯面向对象语言,容易理解。

2.      平台无关性,无论你是Windows,Mac或者是Linux,都可以只用,跨平台时不会有任何错误出现。

3.      Java提供了很多内置的类库,通过这些类库,程序员可以减轻工作压力。

4.      通过了对web开发的支持。

5.      有较好的安全性和健壮性。

6.      有自己的垃圾回收机制(GC)。

7.      在创建对象会自动分配内存,并当该对象的引用不存在时释放内存。

 

Java与C++有什么异同

1.      Java是解释性语言,C/C++是编译型语言。

2.      Java为纯面向对象语言,除基本数据类型都是类,java不存在全局变量或全局函数。C++兼具备面向过程和面向过程变成的特点,可定义全局变量和全局函数。

3.      Java没有指针的概念。

4.      Java不支持多继承,但引出接口

5.      Java中提供了垃圾回收机制。

 

比较面向过程和面向对象的思想:

面向过程的思想:由过程,步骤,函数组成,以过程为核心。

面向对象的思想:以对象为中心,先开发类,得到对象,通过对象之间的相互通信实现功能。

 

面向过程是现有算法,后有数据结构。

面向对象是现有数据结构,热后再算法。

 

两者的出发点也不同:

面向过程是引用过程的抽象和模块化。

面向对象是强调把问题域的要领直接映射到对象及其对象的接口上。

 

 

 

在面向对象的开发过程中,能复用的就复用,不能复用就开发一个新的对象。

 

封装:是对象的属性尽可能的私有,对象的方法尽可能的公开。

 

都要要养成一个良好的编程习惯,其实就是在继承父类时,加上父类无参的构造方法。

 

关于多态

 

多态的实现机制是什么?

1.      方法的重载。重载指的是一个类中有多个重名的方法,这些方法的参数不同。

2.      方法的覆盖。覆盖是指子类可以覆盖父类的方法,但是同样的方法会在两个类中有不同的变现形式。(记住在继承时,一定要加上父类无参的构造方法)

 

重载和覆盖的区别:

重载需要注意以下几点:

1.  重载是通过不同的方法参数来区分的

2.  不能通过方法的访问权限、返回值、类型和抛出的异常来进行重载

3.  对于继承来说,古国积累方法的访问权限为private,那么就不能再子类中对其重载。

 

覆盖是指子类三叔覆盖父类函数。覆盖一个方法并对去重写,以达到不同的效果,在覆盖时需要注意以下几点:

1.      子类的覆盖方法必须要和父类被覆盖的方法有相同的函数名和参数.

2.      方法的返回值必须相同

3.      抛出异常一致(这里注意:在捕获异常时,应先捕获子类的异常,如果先捕获父类的异常,则子类的异常不会被捕获)

 

成员函数被重载的特征如下:

1.      相同的范围(在同一个类中)

2.      函数名字相同

3.      参数不同

4.      关键字可有可无

 

覆盖的特征:

1.      不同的范围(分别位于子类与父类)

2.      函数名字相同

3.      参数相同

4.      一个方法不能再同一个类中被覆盖,子类函数必须有关键字

 

不能继承的情况:匿名的内部类是没有名字的内部,不能extends其他类,但一个内部类可以作为一个接口,有另一个内部类来实现。

 

另外继承需要注意的几点:

1.      实体类继承一个抽象类,必须覆盖抽象方法

2.      抽象类继承一个抽象类,可以覆盖也可以不覆盖方法

 

抽象类必须被继承使用,抽象类不能生成实体

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值