java基础知识回顾:
主要是记录 java的一些基础知识,之前学习过,但是很长时间没有使用,这里回顾一下
- 基本数据类型
- 面向对象
基本数据类型:
java 的8大基本数据类型,数值类型的默认值都是0,boolean默认为false char默认空‘’
整数类型包括:byte int short long,他们的区别在于 数据范围不同,整数型默认 int。
long:在声明一个long型变量时,需要在数值后面加一个L:
long num = 100L;
浮点类型:double和float都是 用来声明小数或者数值范围比较大的数值
float:在声明一个float变量时,需要使用F标记(大小写均可),因为创建小数默认是double型,double的数值也可以在后面用D标识,例
float num = 100.22f;
double num2 = 5.0;
double num3 = 5D;
字符类型:char,用来表示单个字符,并且字符使用单引号包围
char c = 'A';
boolean型:只有2个值 true、false 创建一个boolean变量,默认是false,并且在java中 1 和 0 标识 true false ,但是不能与数值型数据类型做转换
boolean flag; //默认false
flag = true;
数据类型之间是可以相互转换的,分为
自动转换:数据范围小的数据类型可以自动转换为数据类型大的数据类型
1.参与运算的数据类型不同,则需要转换成同一种数据类型进行运算
2.转换按照数据长度增加的方向进行转换(数据范围小的 转成数据范围大的),老保证数据的精度不降低
3.所有的浮点运算都是以双精度进行的
4.char和short进行运算,必须要先转换成int
char c = 'A';
int num = c ;
System.out.Println(num); //得到的结果是 65 A在ascII码中是65
强制转换:强制将一种数据类型转换为另一种数据类型
double pai = 3.1415926;
int paiInt = (int)pai;//强制转换
System.out.Println(paiInt);// 3
关于运算, ++ 和 –
变量在前运算在后的,例如 a++,a–,是先进行等号左边的赋值,再进行运算 ,变量在后的,是先进行自身运算再给等号左边赋值。
int a = 10
int ab = a++;//a++是先赋值给等号右边的变量,再进行自增
System.out.println(ab);// 10
System.out.println(a);// 11
三元运算: 某个表达式a?b:c 如果a是true则执行b,否则c
面向对象:
面向对象:Object -Oriented-Programming 简称 OOP
面向对象的特性:继承 封装 多态
- 封装
private 修饰成员变量
对于已经被private 修饰的变量 使用 get set方法来取值和赋值 - 继承
继承使用关键字 extends
class 子类 extends 父类 {
}
子类可重写父类方法(子类方法名称与父类方法名称一致)
使用父类的方法可用super关键字
父类被private修饰的方法 参数 不能被子类继承
一个类只能有一个父类
子类和父类的成员变量重名时 使用的是子类的成员变量
子类在初始化时,会初始化父类的构造方法
- 多态
杂项:
- 抽象类
使用abstract修饰的类是抽象类,包含抽象方法的类, 抽象方法是 abstract修饰的方法,并且没有方法体:
抽象类中并不是所有方法都是抽象方法。
public abstract test();
抽象方法类似于接口,但是又不同于接口,一般是继承的形式使用抽象类,如果要实现接口则需要实现接口中所有的方法,而抽象方法不用重写所有的方法,但是必须要重写抽象类中所有的抽象方法
抽象类中不一定含有抽象方法,但是有抽象方法的类一定是抽象类
访问权限
内部类:在类内部嵌套的类
普通内部类:
类似于普通的类, 调用方式:
静态内部类:
是用static修饰的内部类
局部内部类:
方法体内的内部类
匿名内部类:
没有名称的内部类
使用匿名内部类可以重写接口的方法如下图:
使用lambda表达式,也可以实现使用匿名内部类 来实现接口,