java面试题复习02

目录:

6.使用 final 关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?
7."=="和 equals 方法究竟有什么区别?
8.静态变量和实例变量的区别?
9.Integer 与 int 的区别?
10.作用域 public,private,protected,以及不写时的区别
11.Overload 和 Override 的区别。Overloaded 的方法是否可以改变返回值的类型?
12.构造器 Constructor 是否可被 override?
13.面向对象的特征有哪些方面
14.abstract class 和 interface 有什么区别?
15.String 是最基本的数据类型吗?

6.使用 final 关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?

使用 final 关键字修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中的内容还是可以改变的。例如,对于如这语句:final StringBuffer a=new StringBuffer("immutable");

执行如这语句将报告编译期错误:a=new StringBuffer("");

但是,执行如这语句则可以通过编译:a.append(" broken!");

final关键字的作用:

修饰类:不能被继承

修饰方法:引用的指向不能发生改变,引用指向对象可以

修饰变量:不能被重写


7."=="和 equals 方法究竟有什么区别?

==操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类 ,型的数据或两个引用变量是否相等,只能用==操作符

equals 方法是用于比较两个独立对象的内容是否相同,就好比去比较两个人的长相是否相同,它比较的两个对象是独立的。例如, 对于下面的代码:

String a=new String("foo");
String b=new String("foo");

8.静态变量和实例变量的区别?

在语法定义上的区别:静态变量前要加 static 关键字,而实例变量前则不加。
在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间才能使用这个实例变量。

9.Integer 与 int 的区别?

1.Integer是int的包装类,int则是java的一种基本数据类型

2.Integer变量必须实例化才能使用,int变量不需要实例化

3.Integer的默认值是null,而int的默认值是0

4.Integer实际是一个对象的引用,当new一个Integer对象时,实际是生成一个指针指向该对象,而int是基本数据类型,直接存储数值


10.作用域 public,private,protected,以及不写时的区别

这四个作用域的可见范围如下表所示。
说明:如果在修饰的元素上面没有写任何访问修饰符,则表示 friendly
作用域
当前类
同一 package
子孙类
其他 package
public
protected
×
friendly
×
×
private
×
×
×
备注:只要记住了有 4 种访问权限, 4 个访问范围,然后将全选和范围在水平和垂直方向上分别按排从小到大或从大到小的顺序 ,排列,就很容易画出上面的图了。

11.Overload 和 Override 的区别。Overloaded 的方法是否可以改变返回值的类型?
Overload 是重载的意思, Override 是覆盖的意思,也就是重写。
重载 Overload 表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同(即参数个数或类型不同)。

12.构造器 Constructor 是否可被 override?

Constructor不能被继承,所以Constructor也就不能被override。每一个类必须有自己的构造函数,负责构造自己这部分的构造。子类不会覆盖父类的构造函数,相反必须负责在一开始调用父类的构造函数。”


13.面向对象的特征有哪些方面

面向对象,重写与重载 

特点:封装:就是类的私有化。将代码及处理数据绑定在一起的一种编程机制,该机制保证程序                         和数据不受外部干扰。

           继承:就是保留父类的属性,开扩新的东西。通过子类可以实现继承,子类继承父类的所               有状态和行为,同时添加自身的状态和行为。

           多态:是允许将父对象设置成为和一个和多个它的子对象相等的技术。包括重载和重写。                         重载为编译时多态,重写是运行时多态。

         列如:

class Animal{
    public void eat(){
    System.out.println("很多行,吃肉.....");
 }
}

class laohu extends Animal{
  public void eat(){
   System.out.println("猛虎吃肉");
  }
}

class long extends Animal{
  public void eat(){
   System.out.println("狼吃素");
  }
}


14.abstract class 和 interface 有什么区别?

abstractclass在Java语言中表示的是一种继承关系,一个类只能使用一次继承关系。但是,一个类却可以实现多个interface。

如:

interface Father{

}
interface Mum{

}
class sonl implements Father,Mum{

}
abstract classAA{
  void a(){
 }
    abstract void b();
}
interface BB{
 abstract void a();
}

抽象类与接口:抽象类:单继承,可以有抽象方法也可以有具体实现的非抽象方法。

 接口:多实现,只能由抽象方法。


15.String 是最基本的数据类型吗?

基本数据类型包括 byte int char long float double boolean short
ava.lang.String 类是 final 类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,应该用 StringBuffer
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值