-
八大类型:
字节类型(byte)、短整型(short)、整型(int)、长整型(long)、单精度浮点型(float)、双精度浮点型(double)、布尔型(boolean)、字符型(char) -
java三大特性
1、封装:封装的主要目的是隐藏对象的内部状态,只允许通过特定的方法进行访问和修改。可以通过访问控制修饰符(private、protected、public)来实现封装。
2、继承:继承某个类,使子类可以使用父类的属性和方法。
3、多态:多态在Java中有三种形式,分别是方法重载(Overloading)、方法重写(Overriding)和方法隐藏(Hiding)。 -
重载和重写的区别
重载: 发生在同一类中,函数名必须一样,参数类型、参数个数、参数顺序、返回值、修饰符可以不一样。
重写: 发生在父子类中,函数名、参数、返回值必须一样,访问修饰符必须大于等于父类,异常要小于等于父类,父类方法是private不能重写。 -
pubilc、protected、(dafault)不写、private修饰符的作用范围
pubilc: 同类、同包、子类、不同包都可以使用。
protected: 同类、同包、子类可以使用,不同包不能。
(dafault)不写: 同类、同包可以使用,子类、不同包不能。
private: 只有同类可以。 -
==和equals的区别如下
1、本质区别:==是运算符,可以用来比较基本数据类型和引用数据类型;equals是方法,只能用来比较引用数据类型。
2、比较内容区别:==比较两个变量或对象实例是否指向同一个内存空间;equals()比较两个变量或对象实例所指向的内存空间的值是否相同。
3‘’使用区别:==可以用于基本数据类型和引用数据类型的比较;equals()方法不能用于基本数据类型的比较。 -
类的加载顺序
1、单独静态类加载顺序
a.静态变量、静态代码块(从上到下依次执行)
b.非静态变量、非静态代码块(从上到下依次执行)
c.构造方法
2、子父类加载顺序
a.父类静态变量、静态代码块(从上到下依次执行)
b.子类静态变量、静态代码块(从上到下依次执行)
c.父类非静态变量、非静态代码块(从上到下依次执行)
d.父类构造方法
e.子类非静态成员、非静态代码块
f.子类构造方法 -
Math提供了三个与取整有关的方法:ceil、floor、round
1、ceil向上取整,如Math.ceil(11.3) = 12;Math.ceil(-11.3) = 11;
2、floor向下取整,Math.floor(11.3) = 11;Math.floor(-11.3) = -12;
3、round四舍五入,Math.round(11.3) = 11;Math.round(-11.3) = -11; -
普通类和抽象类的区别
1、抽象类不能被声明为静态,不能被static、final修饰
2、抽象类不一定含有抽象方法,但含有抽象方法的类一定是抽象类
3、抽象类不能被实例化
4、抽象类的子类必须实现抽象类中的所有方法,否则子类仍然是抽象类 -
接口和抽象类有什么区别
1、接口用interface修饰,抽象类用abstract修饰
2、接口不能实例化,抽象类也不能实例化
3、类可以实现多个接口,抽象类只能单继承
4、java8之后接口中可以定义静态方法,静态方法必须有方法体,普通方法没有方法体,需要被实现;
5、抽象类中可以包含抽象方法和非抽象方法,非抽象方法需要有方法体;
6、如果一个类继承了抽象类,①如果实现了所有的抽象方法,子类可以不是抽象类;②如果没有实现所有的抽象方法,子类仍然是抽象类。
内容持续更新中!!!