你们好,我是Java面试题库
的提裤姐
,今天这篇是JavaSE系列的第四篇,主要总结了JavaSE语法中会出现的相关面试题,在后续,会沿着第一篇开篇的知识线路一直总结下去,作到日更!若是我能作到百日百更,但愿你也能够跟着百日百刷,一百天养成一个好习惯。面试
方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,然后者实现的是运行时的多态性。ide
重载发生在一个类中,同名的方法若是有不一样的参数列表(参数类型不一样、参数个数不一样或者两者都不一样)则视为重载;
重写发生在子类与父类之间,重写要求子类被重写方法与父类被重写方法有相同的返回类型,比父类被重写方法更好访问,不能比父类被重写方法声明更多的异常(里氏代换原则)。
重载对返回类型没有特殊的要求。code
方法重载的规则:
对象
方法重写的规则:
内存
能够重写,也能够重载
不能显式调用,不能把构造方法当成普通方法调用,只有在建立对象的时候才会被系统调用io
静态变量:
是被 static 修饰符修饰的变量,也称为类变量,它属于类,不属于类的任何一个对象,一个类无论建立多少个对象,静态变量在内存中有且仅有一个拷贝;实例变量:
必须依存于某一实例,须要先建立对象而后经过对象才能访问到它。静态变量能够实现让多个对象共享内存。编译
显式转换就是强制类型转换,把一个大类型的数据强制赋值给小类型的数据;
隐式转换就是自动类型转换,大范围的变量可以接受小范围的数据;变量
拆箱:把包装类型转化为基本数据类型
装箱:把基本数据类型转化为包装类型循环
break 和 continue 都是用来控制循环的语句。
break 用于彻底结束一个循环,跳出循环体执行循环后面的语句。
continue 用于跳过本次循环,执行下次循环。权限
内部类:
一、内部类中的变量和方法不能声明为静态的。
二、内部类实例化:B是A的内部类,实例化B:A.B b = new A().new B()
。
三、内部类能够引用外部类的静态或者非静态属性及方法。
静态内部类:
一、静态内部类属性和方法能够声明为静态的或者非静态的。
二、实例化静态内部类:B是A的静态内部类,A.B b = new A.B()
。
三、静态内部类只能引用外部类的静态的属性及方法。
两者比较:
静态内部类
相对于外部类是独立存在的,在静态内部类中没法直接访问外部类中的变量、方法。若是要访问,必须new一个外部类的对象,使用new出来的对象访问。可是能够直接访问静态的变量,调用静态的方法。普通内部类
做为外部类的一个成员存在,在普通内部类中能够直接访问外部类的属性,调用外部类的方法。普通内部类
的属性或者方法,必须在外部类中建立一个普通内部类的对象做为属性,外部类能够经过该属性调用普通内部类的方法或者访问普通内部类的属性。静态内部类
的属性或者方法,直接建立一个静态内部类对象便可。