Java基础面试每日3题:day11
Posted 闲言_
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java基础面试每日3题:day11相关的知识,希望对你有一定的参考价值。
1.在一个静态方法内调用一个非静态成员为什么是非法的?
由于静态方法可以不通过对象进行调用,因此在静态方法里,不能调用其他非静态变量,也不能访问非静态方法。 (静态不能访问非静态)
2.在类中已经存在有参构造方法的时候,为什么还要定义一个不做事且没有参数的构造方法?
Java 程序在执行子类构造方法之前,如果没有用super()来调用特定的构造方法,则会调用父类中 没有参数的构造方法。因此,如果父类中只定义了有参的构造方法,而子类的构造方法中又没有用super()来调用父类特定的构造方法,则 编译时会发生错误,因为Java程序在父类中 找不到没有参数的构造方法可执行。解决办法是在父类中定义一个不做事且没有参数的构造方法
3.成员变量和局部变量的区别?
在类中的位置不同
成员变量: 在类中方法外
局部变量: 在方法定义中或者方法声明上
在内存中的位置不同
成员变量: 在堆内存
局部变量: 在栈内存
生命周期不同
成员变量: 随着对象的创建而存在,随着对象的消失而消失
局部变量: 随着方法的调用而存在,随着方法的调用完毕而消失
初始值不同
成员变量: 有默认初始值
局部变量: 没有默认初始值,必须定义,赋值,然后才能使用
以上是关于Java基础面试每日3题:day11的主要内容,如果未能解决你的问题,请参考以下文章