您的位置 首页 java

Java面试技术问答宝典(11)——成员变量和局部变量的区别?

我们参加 Java 培训学习都是希望能够毕业后找到满意的工作,然而培训机构只是推荐就业,我们仍然需要进行面试,提高面试技术问答的正确率有助于增加面试官的满意度。本系列全面汇总了企业Java面试的技术问题,希望能够帮助大家。

本文列举的技术问题有:

  • 什么是值传递和引用传递?
  • 重载和重写的区别?
  • 成员变量和局部变量的区别有哪些?
  • 静态方法 和实例方法有何不同?

更多Java面试技术问答后续会继续提供,想要一口气获得所有答案的小伙伴可以评论交流哦~

39、 什么是值传递和引用传递?

对象被值传递,意味着传递了对象的一个副本。因此,就算是改变了对象副本,也不会影响源对象的值,对象被引用传递,意味着传递的并不是实际的对象,而是对象的引用。因此,外部对引用对象所做的改变会反映到所有的对象上。

40、 重载和重写的区别?

方法的重写 Overriding 和重载 Overloading 是 Java 多态性的不同表现。重写 Overriding是父类与子类之间多态性的一种表现,重载 Overloading 是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。

41、 成员变量和局部变量的区别有哪些?

1、从语法形式上,看成员变量是属于类的,而 局部变量 是在方法中定义的变量或是方法的参数;成员变量可以被 public, private , static 等修饰符所修饰,而局部变量不能被访问控制修饰符及 static 所修饰;成员变量和局部变量都能被 final 所修饰;

2、从变量在内存中的存储方式来看,成员变量是对象的一部分,而对象存在于堆内存,局部变量存在于栈内存

3、从变量在内存中的生存时间上看,成员变量是对象的一部分,它随着对象的创建而存在,而局部变量随着方法的调用而自动消失。

4、成员变量如果没有被赋初值,则会自动以类型的默认值而赋值(一种情况例外被 final修饰但没有被 static 修饰的成员变量必须显示地赋值);而局部变量则不会自动赋值。

42、 静态方法和实例方法有何不同?

静态方法和实例方法的区别主要体现在两个方面:

在外部调用静态方法时,可以使用”类名.方法名”的方式,也可以使用”对象名.方法名”的方式。而实例方法只有后面这种方式。也就是说,调用静态方法可以无需创建对象。静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法),而不允许访问实例成员变量和实例方法;实例方法则无此限制。

更多Java面试技术问答后续会继续提供,想要一口气获得所有答案的小伙伴可以评论交流哦~

文章来源:智云一二三科技

文章标题:Java面试技术问答宝典(11)——成员变量和局部变量的区别?

文章地址:https://www.zhihuclub.com/182425.shtml

关于作者: 智云科技

热门文章

网站地图