动力节点旗下在线教育品牌  |  咨询热线:400-8080-105 学Java全栈,上蛙课网
首页 > 文章

Java基础——java静态变量面试题

08-20 17:05 282浏览
举报 T字号
  • 大字
  • 中字
  • 小字

Java面试中主要考察的就是应聘者的基础知识的掌握情况,静态变量是属于静态存储方式,java中基础性的内容。下面就为大家准备了10道java静态变量面试题,希望可以帮助到有面试需要的朋友们。

1、static在java语言中怎么用?

答:static是一个修饰符,用于修饰成员(成员变量和成员函数)。当成员被静态修饰后,就多了一个调用方式,除了可以被对象调用外,还可以直接被类名调用:类名.静态成员。

2、static关键字会改变类中成员的访问权限吗?

答:有些java零基础的新手朋友在刚学习的时候,会将java中的static与C/C++中的static关键字的功能混淆了C/C++中的static不同,java中的static关键字不会影响到变量或者方法的作用域。在java中能够影响到访问权限的只有private、public、protected(包括包访问权限)这几个关键字。

3、static能作用于局部变量吗?

答:C/C++中static是可以作用域局部变量的,但是在java中切记:static是不允许用来修饰局部变量这是java语法的规定。

4、实例变量和静态变量的区别是什么?

答:实例变量:属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。每创建一个实例对象,就会分配一个random,实例对象之间的random是互不影响的,所以就可以解释为什么输出的两个random值是相同的了。

静态变量:不属于某个实例对象,而是属于整个类。只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了。无论创建多少个实例对象,永远都只分配一static int变量

5、是否可以在static环境中访问非static变量?

答:static变量在java中是属于类的,它在所有的实例中的值是一样的。当类被java虚拟机载入的时候,会对static变量进行初始化。如果代码尝试不用实例来访问非static的变量,编译器会报错,因为这些变量还没有被创建出来,还没有跟任何实例关联上。

6、“static”关键字是什么意思?java中是否可以覆盖(override)一个private或者是static的方法?

答:“static”关键字表明一个成员变量或者是成员方法可以在没有所属的类的实例变量的情况下被访问。Java中static方法不能被覆盖,因为方法覆盖是基于运行时动态绑定的,而static方法是编译时静态绑定的。static方法跟类的任何实例都不相关,所以概念上不适用。

7、请说说static关键字,在项目中是怎么使用的?

答:(1)static 关键字可以用来修饰:属性、方法、内部类、代码块;(2)static修饰的资源属于类级别,是全体对象实例共享的资源;(3)使用static修饰的属性,静态属性是在类的加载期间初始化的,使用类名属性访问。

8、静态的主要优缺点有什么?

答:优点有:对对象的共享数据提供单独空间的存储,节省空间,没有必要每一个对象都存储一份;可以直接被类名调用,不用在堆内存创建对象;静态成员可以通过类名直接访问,相对创建对象访问成员方便。缺点主要是访问出现局限性,静态虽好,但只能访问静态。

9、内部类与静态内部类的区别?

答:静态内部类相对与外部类是独立存在的,在静态内部类中无法直接访问外部类中变量、方法。如果要访问的话,必须要new一个外部类的对象,使用new出来的对象来访问,但是可以直接访问静态的变量、调用静态的方法。

普通内部类作为外部类一个成员而存在,在普通内部类中可以直接访问外部类属性,调用外部类的方法。

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

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

如果其他的类要访问静态内部类的属性或者调用静态内部类的方法,直接创建一个静态内部类对象即可。

10、运行下面程序,输出结果是什么?

public class x {
  private static int a;
  public static void main(String[] args) {
    modify(a);
    System.out.println(a);
  }
  public static void modify(int a) {
    a++;
  }
}

A.0              B.1                  C.2                D.3

答:类的静态变量a在modify()方法中并没有被改变,而是改变了modify()方法的参数,静态变量a的值并没有改变,所以上述答案是0选A。

以上是今天为java程序员们整理的java静态变量面试题的内容。Java静态变量是属于java中的基础性知识点,所以这10道题目不仅仅是为需要面试的朋友们准备的,java零基础的新手们也可以通过这篇文章学习java静态变量基础知识。

0人推荐
共同学习,写下你的评论
0条评论
代码小兵1111
程序员代码小兵1111

5篇文章贡献16067字

作者相关文章更多>

推荐相关文章更多>

Java数据结构

HelloWorld10-31 08:24

浅谈MySQL中SQL优化的常用方法

军哥08-12 23:29

五分钟读懂UML类图

江湖人称小李白12-10 10:41

MyBatis开发框架的四大核心

IT逐梦者08-17 21:43

一次搞定continue,break和return

HelloWorld11-06 11:19

发评论

举报

0/150

取消