数据类型分为基本数据类型和引用数据类型:
【基本数据类型】
byte,short,int,long属于数值型中的整数型
float,double属于数值型中的浮点型
char属于字符型
boolean属于布尔型
【引用数据类型】
引用数据类型有三个,分别是类、接口和数组
值得一提的一个问题:为什么String作为形参不会改变本身的值呢?
查看API文档可知,String类型的构造器有一个final修饰符,final修饰符导致了String一旦定义就是最终形态,任何试图改变String值的操作都只能重新开辟地址。所以在回答值传递问题中,【引用数据类型形参的改变会影响实参的变化】这个观点要把String排除。
2.接口和抽象类的区别1)抽象类关键字是class,只能有一个父类;接口用interface可以有多个父接口(抽象类单继承,接口多继承、可以被类多实现)。
2)抽象类属性默认default。接口属性默认是public static final修饰并且需要给出初始值。
3)接口是抽象类的变体,它比抽象类更加抽象,因为抽象类中可以定义构造器,可以有抽象方法和具体方法,而接口中不能定义构造器而且其中的方法全部都是抽象方法。抽象类中抽象方法必须用abstract修饰,接口中方法可以不用abstract修饰,因为接口种方法默认public abstract修饰。
4)抽象类定义子类的公共方法(类的继承强调的【什么是什么】),接口中定义多个无关类的公共方法(接口的实现不需要和实现类有关)。
3.重载重写的区别
重写:
1.参数列表必须「完全与被重写的方法」相同,否则不能称其为重写而是重载.
2.「返回的类型必须一直与被重写的方法的返回类型相同」,否则不能称其为重写而是重载。
3.访问「修饰符的限制一定要大于被重写方法的访问修饰符」
4.重写方法一定「不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常」。
重载:
1.必须具有「不同的参数列表」;
2.可以有不同的返回类型,只要参数列表不同就可以了;
3.可以有「不同的访问修饰符」;
4.可以抛出「不同的异常」;



