Java常见面试题(2)

面向对象的特征有哪些方面:

1. 抽象:
抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。

2.继承:
继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类 继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或 增加新的方法使之更适合特殊的需要。

3.封装:
封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。

4. 多态性:
多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。

在JAVA中基本数据类型参数的传值和引用类型的参数传值有什么不同?

一个是储存在栈里,一个是存储在堆栈里;一个是值类型的传递,一个是引用类型的传递;
基本型是传值的拷贝,对象是传引用的拷贝。
public class TestReference {

private int a=0;

public static void main(String[] args) {
int b = 0;
TestReference test = new TestReference();
test.modify(b);
test.modify(test);
System.out.println("After been modified b="+b);//传值类型,不改变值,所传的为变量的副本
System.out.println("After been modified a="+test.a);//引用类型改变所引用内容,传递的是只引用的一个副本
}
//传值类型
public void modify(int a){
a++;
System.out.println("It is modifying");
}
//引用类型
public void modify(TestReference t){
t.a++;
System.out.println("It is modifying");
}
}

北大青鸟网上报名
北大青鸟招生简章