4.Java关键字
关键字是指Java语言在开发时已经占用且具有特殊用途的一些标识符或者保留字
6.Java类型转换
在Java中当参与运算的数据类型不一致的时候,就需要进行数据类型的转换
自动转换
这里指的是在程序运行过程中不需要程序员特别指定,程序会自动进行转换。
int a = 10;
long b = 100L;
b = a;//自动类型转换,a与b都为整形,b大,a小
强制转换
这里需要特别进行转换的数据类型,程序不会自动转换,如果没有进行强制转换,会导致程序报错
int a = 20;
long b = 200L;
a = (int) b;//强制类型转换
7.Java运算符
关系运算符
==、!=、>=、<=...
逻辑运算符
逻辑与 &&
逻辑或 ||
逻辑非 !
位运算符
按位与 &
按位或 |
按位取反 ~
按位异或 ^
移位运算符
左移 <<
右移 >>
无符号右移 >>>
条件运算符
表达式1 ? 表达式2 : 表达式3
表达式1为true,则取表达式2的值
表达式1为false,则取表达式3的值
9.逻辑控制表达式
循环结构
while、for、try catch、do while等语句
18.异常
编译时异常
一般都是常见的格式型或者关键字书写错误,一般在编写代码的时候就可以发现。
运行时异常
一般常见的都是空指针异常、内存溢出、类型转换、角标异常或者数据类型不匹配等
常见处理异常的方法有
try catch
抛出异常,throw关键字
异常声明,throws关键字
finally释放资源等
开发中常见的自定义异常
17.String类
字符串构造
String str = "abc";
String str = new String("Hello Word");
char[] array = {'a','b','c','d','e'};
String str = new String(array);
String类比较
== 比较是否是一个对象,对于引用类型,比较的是地址
equals方法比较String类型,按照字典的顺序比较,需要重写,返回boolean类型
compareTo方法返回的是int类型,按照字典顺序比较,这个也需要重写
compareToTlognoreCase方法返回的也是int
字符串查找
charAt(int index)返回index的位置上的字符
indexOf(int char)返回char第一次出现的位置
indexOf(int char, int from)返回从from这个位置到char这个位置的所有字符
indexOf(String str)返回str第一次出现的位置
indexOf(String str, int from)返回这个from位置到str这个位置的所有字符
lastIndexOf(int char, int from)返回这个str字符的from位置到str的char位置的所有字符
字符串转换
数值和字符串转换 String str = String.ValueOf(1234);
大小写转换
str.LowerCase();
str.toUpperCarse();
字符串转换数组
String str = "hello";
char[] ch = s.toCharArray();
格式化
String str = String.format("%d-%d-&d", 2019,9,14);
字符串替换
replaceAll();
replaceFirst();
字符串拆分
split(String regex);
split(String regex, int limit);
字符串截取
substring(int beginIndex);
substring(int beginInndex, int endIndex);
其他方法
trim();
用于去除字符串中的左右格式,只保留中间空格
14.抽象类
前提:在了解概念之前,我们在面向对象的概念中,所有的对象都可以通过类来创建,但是不是所有类都可以完整的描述一个对象
根据以上前提我们可以定义:抽象类就是不能完整描述一个对象的类。
抽象类的特性
1.抽象类不能实例化对象
2.抽象方法是不能使用private的,因为抽象类一定是要重写的,使用private关键字就会导致无法继承和重写。
3.抽象方法不能被final和static修饰
4.抽象类必须要被继承,并且被继承后要把抽象方法给重写,如果在子类中还不想重写,那么我们的子类也要被abstract修饰
5.抽象类中不一定要有抽象方法,但是抽象方法一定要在抽象类当中
抽象类的优点
对于抽象类来说,我们不能实例化对象,要是想使用,我们只能继承子类,然后子类重写抽象类当中的抽象方法
13.面向对象的三大特征
封装
对于封装来说,将数据和操作数据的方法进行有机结合,隐藏对象的属性和实现的细节,仅对外提供接口和对象进行交互,比如我们的电脑来说,我们开机,只提供我们使用但是我们看不见它的实现的方法。
继承
继承是专门用来进行共性抽取,从而达到复用的作用
多态
就是当我们去完成某个行为时,当不同的对象去完成会产生不同的状态
实现的条件
必须在继承的条件下
子类必须要对父类的方法进行重写
通过父类的引用调用重写的方法
12.类和对象
类
类就是对于一个对象的描述的。在我们Java中定义一个类的时候要使用到class关键字
类的定义格式:
class 类名 {
// 字段(属性)或 成员变量
// 成员方法 或 行为
}
注意:
类名要用大驼峰
不能带static关键词
当我们定义一个类,就相当于在计算机中顶一种新的类型,当我们用类创建对象的过程中,称为类的实例化。在Java中采用new关键字,来配合各类实例化对象
对象
对象就是指可以进行程序操控的方法实体,对象是程序操作的最小单位
对象的构造方法和初始化
名字必须与类名相同
没有返回值类型,尽管是void也不行
创建对象时由编译器自动调用,并且在对象的生命周期内只调用一次
构造方法是可以重载的
如果用户没有显示定义时,编译器会生成一份构造方法,生成默认方法一定是无参的。在这里我们要注意,在我们定义之后,编译器不会再生成
构造方法中,可以通过this调用其他构造方法来简化代码。在这里我们注意 this() 构造方法中第一条语句,不能想成闭环
对象的打印
如果我们想要打印对象的属性我们要如何才能打印呢?我们使用 toString 方法。在使用时我们需要再对象中重写toString方法:
分支主题
类和对象的说明
类只是一个模型一样的东西,用来对一个实体进行描述,限定了类有哪些成员。
类是一种自定义的类型,可以用来定义变量。
一个类可以实例化出多个对象,实例化出的对象 占用实际的物理空间,存储类成员变量。
初始化
就地初始化
Class Student {
private String name = "list";
private int age = 15;
}
static成员
在Java中呢,被static修饰的成员,称之为静态成员,也称之为静态成员,其不属于某个具体的对象,是所有对象的所共享的。
static修饰成员变量
static修饰的成员变量,称之为静态成员变量。 其不属于某个具体的对象,是所有对象所共享的
对于静态成员对象,既可以通过对象访问,也可以通过类名访问,但是更推荐使用类名访问
类变量存储在方法区当中
生命周期伴随着类的一生
Java中,被static修饰的成员方法称为静态成员方法,是类的方法,不是某个对象所特有的。静态成员一般是通过静态方法来访问的,在我们的静态方法中我们不能调用非静态成员变量,同时不能存在this这个关键词。
代码块
在Java中,使用 {} 定义的一段代码称为代码块
内部类
在Java中呢,可以将一个类定义在另一个类或者方法的内部,其前者我们称为内部类,后者我们称外部类。
实例内部类
未被static修饰的类,我们称为实例内部类
分支主题
局部内部类
定义在外部类的方法或者{}中,该种内部类只能在其定义的位置使用,对于这个代码块我们使用的非常少
11.数组的使用
数组就是相同类型的元素的集合,并且空间是连在一起的,起始位置是从0开始。
数组的创建
int[] array = new int[10];
初始化
动态初始化
在创建数组的时候,直接指定数组中的数组个数
静态初始化
在创建数组的时候,省略new数组中存放的类型[数组的个数],使用{data1, data2,data3...}
数组的访问和遍历
数组在内存中是一段连续存在的空间,空间从0位置开始,该编号就是其下标,是依次递增,数组可以通过下标来访问任意位置的下标
数组遍历一般使用for循环进行,常见的冒泡排序法之类的简单算法就可以体现数组的遍历规则
数组的应用场景
一般情况下我们使用数组进行数据的保存,这个数据通常是统一数据类型的,依次进行保存,确保了读取速度和规则
二维数组
相对于一维数组而言,二维数组一般添加了纵向位置,类似于二维坐标的样式
10.方法的使用
方法定义:
修饰符 返回值类型 方法名称(参数类型 形参) {
//方法体
return 返回值;
}