Java基础零碎知识点总结(持续补充)
1.重载:同名不同参
重写:同名同参同返回类型(方法体与父类一致),只存在于继承关系中(多态),需要父类原有方法可用super(),子类函数访问修饰权限不能少于父类。
2.OOP(Object Oriented Programming):面向对象编程
OOP三大特性:继承、多态、封装
3.Java的跨平台特性:Java编译生成字节码(字节码不能直接运行,机器码才可以),不同平台下编译生成的字节码是一样的,但是JVM会根据当前平台将字节码翻译成的符合当前平台规范的机器码,这样就实现了一次编写,处处运行。
4.修饰权限:
访问权限 | 类 | 包 | 子类 | 其他包 |
public | √ | √ | √ | √ |
protected | √ | √ | √ | × |
default | √ | √ | × | × |
private | √ | × | × | × |
5.Java数据类型:
①基本类型(值类型):boolean(1位)、char(16位)、byte(8位)、short(16位)、int(32位)、long(64位)、float(单精度、32位)、double(双精度、64位);
②引用类型:
- 引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时被指定为一个特定的类型,比如 Employee、Puppy 等。变量一旦声明后,类型就不能被改变了。
- 对象、数组都是引用数据类型。
- 所有引用类型的默认值都是null。
- 一个引用变量可以用来引用任何与之兼容的类型。
- 例子:Site site = new Site("Runoob")。
- 自动类型转换
低 ------------------------------------> 高
byte,short,char—> int —> long—> float —> double
6.基本类型的声明:
long a = 100000L,float f1 = 234.5f
"L"理论上不分大小写,但是若写成"l"容易与数字"1"混淆,不容易分辩。所以最好大写;
不加L默认是int,int转为long是安全的,所以会自动转,能编译通过,但如果超过int的取值范围还不加L,会直接报错;
浮点数不加F默认是double类型,double转float可能损失精度,因为不会自动转,编译是通不过的。
7.数组的声明:
①特殊初始化,不用new关键字完成,在数组声明的同时完成初始化操作,也被称其为静态初始化。主要原因是因为采用这种初始化的方式,数组的存储空间的分配是由编译器完成的。
int[] a = { 1, 2, 3 }; Integer[] b = { new Integer(1), new Integer(2), 3 };
②先使用new关键字创建数组,然后再分别为数组中的元素赋值,完成初始化操作。(注:如果数组元素类型为基本数据类型,在完成new 操作之后,数组中的元素会自动初始化为空值,可以直接使用,但是数组元素为引用类型,在完成new操作之后,没有给引用类型赋值,就直接使用数组中的元素,会产生运行时异常。)
int[] a = new int[2]; // 需要指定数组的长度 a[0] = 1; a[1] = 2;
③使用new关键字创建数组,同时为数组中的元素赋值,完成初始化操作。
int[] a = new int[] { 1, 2, 3 }; // 与第二种方法不同,这里new不需要指定数组的长度,数组长度由其后的初始化操作确定 int[] b = new int[] { new Integer(1), new Integer(2), 3 };
8.