垃圾回收机制
System.gc();只能起到通知回收机制的作用,不能决定什么时候回收垃圾,是否回收垃圾
package
不需要导包的情况:
①同包下
②java.lang包下的内容不需要导包
导包方式:
1.import
位置:在类的上面,当前类中都有效
可以使用*模糊匹配:
可以匹配这个包下所有的内容
例如:import java.util.Scanner;和import java.util.Random;可以用import java.util.*; 代替
会降低编译效率,但是不会降低执行效率
静态导入:
只导入类中的 某个静态内容
2.定义全名的形式使用
使用报名+类名的形式告诉编译器当前这个内容的位置,但是只有当前这一次可以使用,下次使用需要重新指定,例如:java.util.Scanner sc=new java.util.Scanner(System.in);
继承(extends)
继承的特点:
1.一个子类只能继承一个父类
2.构造器不能被继承
3.静态内容可以被继承
super关键字
super关键字 与this之间的区别
this:指代当前创建的对象
①this调用本类中的其他构造器
②区分局部和成员同名问题
super:指代父类对象
①super可以用于,子类构造器首行调用父类构造器,super(实参)
如果没有显示调用父类构造器,默认在首行调用父类的空构造 super()
②如果子类父类出现成员同名问题:默认找子类的成员,因为就近原则
如果先要指定找父类,可以通过super.
创建对象时: 如果有子父类继承关系,先父类后子类(在创建子类对象的时候,会在子类的内存空间中构建一个父类对象,子类对象可以使用父类的成员)
权限修饰符
public在所有类中都能使用, private 只能在本类中使用
public, protected, default, private 修饰符都是成员修饰符,不能修饰局部
重写(Override)
①被final修饰的方法不能被重写
②被private修饰的方法不能被重写
③静态的方法不能被重写 (如果父类中有一个静态方法,子类存在同名方法,那这个同名方法也需要被static修饰,并且不叫做重写)
重写方法的条件:
1.== 子类中重写方法的方法签名,要求与父类中的同名方法的方法签名一模一样
2.<= 返回值类型: 基本数据类型|void:相等 (就是int,double之类的) 引用数据类型:子类重写的返回值类型<=父类中方法的
3.>= 修饰符 子类重写方法的修饰符>=父类的方法的
final 关键字
①被final修饰的变量为常量
②被final修饰的方法不能被重写
③被final修饰的类不能被继承(太监类)