Java基础面试每日3题:day11

Posted 闲言_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java基础面试每日3题:day11相关的知识,希望对你有一定的参考价值。

1.在一个静态方法内调用一个非静态成员为什么是非法的?

  由于静态方法可以不通过对象进行调用,因此在静态方法里,不能调用其他非静态变量,也不能访问非静态方法。 (静态不能访问非静态)

2.在类中已经存在有参构造方法的时候,为什么还要定义一个不做事且没有参数的构造方法?

  Java 程序在执行子类构造方法之前,如果没有用super()来调用特定的构造方法,则会调用父类中 没有参数的构造方法。因此,如果父类中只定义了有参的构造方法,而子类的构造方法中又没有用super()来调用父类特定的构造方法,则 编译时会发生错误,因为Java程序在父类中 找不到没有参数的构造方法可执行。解决办法是在父类中定义一个不做事且没有参数的构造方法

3.成员变量和局部变量的区别?

在类中的位置不同
  成员变量: 在类中方法外
  局部变量: 在方法定义中或者方法声明上
在内存中的位置不同
  成员变量: 在堆内存
  局部变量: 在栈内存
生命周期不同
  成员变量: 随着对象的创建而存在,随着对象的消失而消失
  局部变量: 随着方法的调用而存在,随着方法的调用完毕而消失
初始值不同
  成员变量: 有默认初始值
  局部变量: 没有默认初始值,必须定义,赋值,然后才能使用

以上是关于Java基础面试每日3题:day11的主要内容,如果未能解决你的问题,请参考以下文章

Java基础面试每日3题:day04

Java基础面试每日3题:day01

Java基础面试每日3题:day09

Java基础面试每日3题:day06

Java基础面试每日3题:day02

Java基础面试每日3题:day03