java基础面试总结(1)

内容源于网络和个人整理。

1. static关键字的作用

static的作用从三个方面来谈,分别是静态变量、静态方法、静态类。

1)静态变量

    声明为static的静态变量实质上就是全局变量,当声明一个对象时,并不产生static变量的拷贝,

而是该类所有实例变量共用同一个static变量。也就是说这个静态变量只加载一次,只分配一块储存空间。

2)静态方法

声明为static的静态方法有以下几个特点:

.静态方法只能调用静态方法;

.静态方法只能访问静态数据;

.静态方法不能以任何方式引用this或super;

3)静态类

    通常一个普通类不允许声明为静态,只有一个内部类才可以(main方法就是一个典型),

这时这个声明的静态类可以直接作为一个普通类来使用,而不需要实例一个外部类。

详情: 浅析static关键字

2. final关键字的作用

final出现是源于代码设计和执行效率考虑而出现的,

final关键字可以用来修饰类、方法和变量(包括成员变量和局部变量)。

1)修饰类

    当用final修饰一个类时,表明这个类不能被继承。也就是说,如果一个类你永远不会让他被继承,

就可以用final进行修饰。final类中的成员变量可以根据需要设为final,

但是要注意final类中的所有成员方法都会被隐式地指定为final方法。

2)修饰方法

    使用final方法的原因有两个。第一个原因是把方法锁定,以防任何继承类修改它的含义;

第二个原因是效率。在早期的Java实现版本中,会将final方法转为内嵌调用。

但是如果方法过于庞大,可能看不到内嵌调用带来的任何性能提升。

在最近的Java版本中,不需要使用final方法进行这些优化了。

3)修饰变量

    对于一个final变量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;

如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象。

使用final修饰变量的根本目的是不想让变量数据在编译或初始化之后值改变。

详情: 浅析final关键字

3.abstract关键字的作用

abstract用于修饰抽象类和抽象方法。

在类的前面有修饰符abstract的类称为抽象类,同理在方法的前面有修饰符abstract修饰的方法称为抽象方法。

1)抽象类作为被继承类,子类必须实现抽象类中的所有抽象方法,除非子类也为抽象类;

如果抽象类的子类还是抽象类,那么这个子类即可以重写父类的抽象方法,也可以继承父类的抽象方法。

2)抽象类不能用final进行修饰,并且必须是public和友元权限(default默认权限,或者也叫做friendly--友好权限),

      故不能使用private和protected;

3)抽象类不能被实例化,也就是说你用的时候不能通过new关键字实例化;

4)抽象类中可以包含抽象方法和非抽象方法,抽象方法没有方法体,也就是没有具体实现,

只是定义了有什么功能,但是非抽象方法含有方法体;

详情: 浅析abstract关键字



猜你喜欢

转载自blog.csdn.net/yhl_jxy/article/details/80868085