Java基础集锦

1、 “static”关键字是什么意思?Java中是否可以覆盖(override)一个private或者是static的方法? 
      “static”关键字表明一个成员变量或者是成员方法可以在没有所属的类的实例变量的情况下被访问。 static修饰的成员变量或者是成员方法不属于任何对象,它是属于类本身的。

      Java中static方法不能被覆盖,因为方法覆盖是基于运行时动态绑定的,而static方法是编译时静态绑定的。 静态的方法可以被继承,但是不能重写。如果父类中有一个静态的方法,子类也有一个与其方法名,参数类型,参数个数都一样的方法,并且也有static关键字修饰。

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

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

3、Java支持的数据类型有哪些?
    Java语言支持的8中基本数据类型是: 

• byte • short • int • long • float • double • boolean • char 

4、Java支持多继承么? 

不支持,Java不支持多继承。每个类都只能继承一个类,但是可以实现多个接口

5、值传递和引用传递

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

6、java重写(Override)与重载(Overload)的区别是什么?
重载Overload表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同(即参数个数或类型不同)。

重写Override表示子类中的方法可以与父类中的某个方法的名称和参数完全相同,通过子类创建的实例对象调用这个方法时,将调用子类中的定义方法,这相当于把父类中定义的那个完全相同的方法给覆盖了,这也是面向对象编程的多态性的一种表现。子类覆盖父类的方法时,只能比父类抛出更少的异常,或者是抛出父类抛出的异常的子异常,因为子类可以解决父类的一些问题,不能比父类有更多的问题。子类方法的访问权限只能比父类的更大,不能更小。如果父类的方法是private类型,那么,子类则不存在覆盖的限制,相当于子类中增加了一个全新的方法。

猜你喜欢

转载自blog.csdn.net/prh1023/article/details/79927944