您的当前位置:首页正文

JAVA关于静态static的面试题

来源:华佗健康网
JAVA关于静态static的⾯试题

JAVA关于静态static的⾯试题

版权声明:本⽂为博主原创⽂章,遵循版权协议,转载请附上原⽂出处链接和本声明。本⽂链接:1.静态(static)

static表⽰“全局”或者“静态”的意思,⽤来修饰成员变量和成员⽅法,也可以形成静态static代码块。

static修饰的变量习惯称为静态变量,static修饰的⽅法称为静态⽅法,static修饰的代码块叫做静态代码块。static的意义在于⽅便在没有创建对象的情况下来进⾏调⽤(⽅法/变量)。

“static⽅法就是没有this的⽅法。在static⽅法内部不能调⽤⾮静态⽅法,反过来是可以的。⽽且可以在没有创建任何对象的前提下,仅仅通过类本⾝来调⽤static⽅法。这实际上正是static⽅法的主要⽤途。”2.静态的具体⽤法参考:

补充:静态内部类3.静态的注意事项

4.静态的优缺点优点:

对对象的共享数据提供单独空间的存储,节省空间,没有必要每⼀个对象都存储⼀份可以直接被类名调⽤,不⽤在堆内存创建对象

静态成员可以通过类名直接访问,相对创建对象访问成员⽅便弊端:

访问出现局限性。(静态虽好,但只能访问静态)

5.关于静态的⾯试题

(1)Q:抽象的(abstract)⽅法是否可同时是静态的(static)?

A:抽象⽅法将来是要被重写的,⽽静态⽅法是不能重写的,所以这个是错误的。 (2)Q:是否可以从⼀个静态(static)⽅法内部发出对⾮静态⽅法的调⽤? A:不可以,静态⽅法只能访问静态成员,⾮静态⽅法的调⽤要先创建对象。 (3) Q:static 可否⽤来修饰局部变量? A:static 不允许⽤来修饰局部变量 (4)Q:内部类与静态内部类的区别?

A:静态内部类相对与外部类是独⽴存在的,在静态内部类中⽆法直接访问外部类中变量、⽅法。如果要访问的话,必须要new⼀个外部类的对象,使⽤new出来的对象来访问。但是可以直接访问静态的变量、调⽤静态的⽅法;

普通内部类作为外部类⼀个成员⽽存在,在普通内部类中可以直接访问外部类属性,调⽤外部类的⽅法。

如果外部类要访问内部类的属性或者调⽤内部类的⽅法,必须要创建⼀个内部类的对象,使⽤该对象访问属性或者调⽤⽅法。

如果其他的类要访问普通内部类的属性或者调⽤普通内部类的⽅法,必须要在外部类中创建⼀个普通内部类的对象作为⼀个属性,外同类可以通过该属性调⽤普通内部类的⽅法或者访问普通内部类的属性

如果其他的类要访问静态内部类的属性或者调⽤静态内部类的⽅法,直接创建⼀个静态内部类对象即可。(5)Q:Java中是否可以覆盖(override) ⼀个private或者是static的⽅法?

A:Java中static⽅法不能被覆盖,因为⽅法覆盖是基于运⾏时动态绑定的,⽽static⽅法是编译时静态绑定的。static⽅法跟类的任何实例都不相关,所以概念上不适⽤。

因篇幅问题不能全部显示,请点此查看更多更全内容