java八股文之变量与方法

静态变量有什么作用

  • 静态变量就是用static修饰的变量,属于类的所有实例,无论一个类创建了多少实例,他们都共享同一份静态变量,也就是说静态变量只会分配一次 内存,这样可以节省内存。
  • 静态变量可以通过:类名.变量名的方式访问。(加了private就不可以了)
  • 被final修饰之后会成为常量。

静态方法为什么不能调用非静态成员?

  • 因为静态方法是 属于类的,在类加载的时候就会分配内存,可以通过类名直接访问。非静态成员属于实例对象,只有对象实例化之后才存在,需要通过类的实例对象去访问。
  • 静态方法分配内存时,非静态成员在内存中还不存在,无法调用。

静态方法和实例方法有何不同

  • 调用方式不同:静态方法可以用类名直接调,也可以用对象调,实例方法必须要用对象调。即调用静态方法可以无需创建实例对象。
  • 访问类成员是否存在限制:静态方法只能访问静态成员(静态变量和静态方法),实例对象都可以访问。

重载和重写的区别:

  • 重载 :方法名相同,返回值,参数的顺序,数量,类型,访问修饰符可以不同
  • 重写:方法名相同,参数相同,子类的返回值类型范围应当比父类方法返回值类型更小或相等,抛出的异常范围《=父类,访问修饰符范围》=父类。遵循两同,两小一大。另:如果方法的返回类型是 void 和基本数据类型,则返回值重写时不可修改。但是如果方法的返回值是引用类型,重写时是可以返回该引用类型的子类的。

什么是可变长参数?

  • 就是在调用方法时可以传入不定个数的参数
public static void method1(String... args) {
   //......
}

  • 可变参数只能作为函数的最后一个参数,但是其前面也可以没有任何其他参数。
  • 遇到重载的情况怎么办:优先匹配固定参数的,优先度更高。

你可能感兴趣的:(java,开发语言)