Java基础知识
2024-10-09 11:41:35 4 举报
AI智能生成
Java最基本的知识概念整理
作者其他创作
大纲/内容
1.Java语言特性
简单性
面向对象
分布式
健壮性
安全性
可移植性
多线程
动态性
2.Java注释
单行注释
主要用于注释关键语句中的作用和概念
多行注释
主要用于注释类或方法的使用方法和概念
文本注释
通常用于注释一个文件的内容和作用
3.Java标识符
在程序中,有用户给类名、方法名或变量所取的名字
4.Java关键字
关键字是指Java语言在开发时已经占用且具有特殊用途的一些标识符或者保留字
5.Java数据类型和变量
常量
是指在程序运行过程中通常不变的量
字符常量
整型常量
浮点型常量
布尔常量
...
变量
在程序中会因为运行导致量变的通常称为变量
整型变量
整型
int a = 10;
短整型
short b = 10;
长整型
long c = 10;
字节型
byte d = 10;
浮点型变量
单精度浮点型
float e = 1.0f
多精度浮点型
double f = 1.0;
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的值
8.Java输入与输出
输入
使用scanner来读取字符串、整数、浮点数
输出
输出到控制台,对于Java来说有三种输出方式
System.out.println(msg); //输出带换行
System.out.print(msg); //输出不带换行
System.out.printf("format", msg); //格式化输出,和C语言的输出相似
9.逻辑控制表达式
顺序结构
就是一般的代码执行准许,逐行执行
分支结构
if、switch等语句
循环结构
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();
用于去除字符串中的左右格式,只保留中间空格
16.Object类
object类是所有类的父类
toString方法
获取对象的信息,使用的时候我们需要重写方法
equals方法
对于 == 来说呢我们在比较基本类型的时候,是比较他们的值,但是当我们比较引用类型的时候,我们比较的是地址,所以这时候我么要用到 equals 方法
hashcode方法
在了解这个方法之前呢,我们先来看一下toString的源代码
分支主题
我们可以看到,我们的toString的源代码中体现了hashCode方法,那么它是起到了一个什么作用呢?
hashCode是让我们获得一个具体的对象位置。
对于hashCode这个方法呢,我们现在是不能达到一个具体的了解的,因为这里面的涉及到了数据结构,所以呢在JavaSE基础这里呢,我们知识了解一下其作用。
在我们定义对象的时候呢,当我们定义的对象是一样的时候,是不是认为它们存储在同一个位置。
15.接口
接口就是多个类的一个公共规范,是一种引用类型
接口的使用
对于接口来说,不能直接使用,必须要有一个类开实现接口,实现接口中所有的抽象方法。
接口的特性
1.接口是引用特性,但是不能直接的new对象
2.接口中的方法是不能在接口中实现,只能有实现接口的类来实现
3.接口中不能有静态方法和构造方法
4.如果接口中的方法没有被实现,那么类必须要使用abstract修饰
14.抽象类
前提:在了解概念之前,我们在面向对象的概念中,所有的对象都可以通过类来创建,但是不是所有类都可以完整的描述一个对象
根据以上前提我们可以定义:抽象类就是不能完整描述一个对象的类。
抽象类的特性
1.抽象类不能实例化对象
2.抽象方法是不能使用private的,因为抽象类一定是要重写的,使用private关键字就会导致无法继承和重写。
3.抽象方法不能被final和static修饰
4.抽象类必须要被继承,并且被继承后要把抽象方法给重写,如果在子类中还不想重写,那么我们的子类也要被abstract修饰
5.抽象类中不一定要有抽象方法,但是抽象方法一定要在抽象类当中
抽象类的优点
对于抽象类来说,我们不能实例化对象,要是想使用,我们只能继承子类,然后子类重写抽象类当中的抽象方法
13.面向对象的三大特征
封装
对于封装来说,将数据和操作数据的方法进行有机结合,隐藏对象的属性和实现的细节,仅对外提供接口和对象进行交互,比如我们的电脑来说,我们开机,只提供我们使用但是我们看不见它的实现的方法。
继承
继承是专门用来进行共性抽取,从而达到复用的作用
多态
就是当我们去完成某个行为时,当不同的对象去完成会产生不同的状态
实现的条件
必须在继承的条件下
子类必须要对父类的方法进行重写
通过父类的引用调用重写的方法
12.类和对象
类
类就是对于一个对象的描述的。在我们Java中定义一个类的时候要使用到class关键字
类的定义格式:
class 类名 {
// 字段(属性)或 成员变量
// 成员方法 或 行为
}
注意:
类名要用大驼峰
不能带static关键词
当我们定义一个类,就相当于在计算机中顶一种新的类型,当我们用类创建对象的过程中,称为类的实例化。在Java中采用new关键字,来配合各类实例化对象
对象
对象就是指可以进行程序操控的方法实体,对象是程序操作的最小单位
对象的构造方法和初始化
名字必须与类名相同
没有返回值类型,尽管是void也不行
创建对象时由编译器自动调用,并且在对象的生命周期内只调用一次
构造方法是可以重载的
如果用户没有显示定义时,编译器会生成一份构造方法,生成默认方法一定是无参的。在这里我们要注意,在我们定义之后,编译器不会再生成
构造方法中,可以通过this调用其他构造方法来简化代码。在这里我们注意 this() 构造方法中第一条语句,不能想成闭环
对象的打印
如果我们想要打印对象的属性我们要如何才能打印呢?我们使用 toString 方法。在使用时我们需要再对象中重写toString方法:
分支主题
类和对象的说明
类只是一个模型一样的东西,用来对一个实体进行描述,限定了类有哪些成员。
类是一种自定义的类型,可以用来定义变量。
一个类可以实例化出多个对象,实例化出的对象 占用实际的物理空间,存储类成员变量。
初始化
默认初始化
使用new关键字进行初始化
就地初始化
Class Student {
private String name = "list";
private int age = 15;
}
static成员
在Java中呢,被static修饰的成员,称之为静态成员,也称之为静态成员,其不属于某个具体的对象,是所有对象的所共享的。
static修饰成员变量
static修饰的成员变量,称之为静态成员变量。 其不属于某个具体的对象,是所有对象所共享的
对于静态成员对象,既可以通过对象访问,也可以通过类名访问,但是更推荐使用类名访问
类变量存储在方法区当中
生命周期伴随着类的一生
Java中,被static修饰的成员方法称为静态成员方法,是类的方法,不是某个对象所特有的。静态成员一般是通过静态方法来访问的,在我们的静态方法中我们不能调用非静态成员变量,同时不能存在this这个关键词。
static成员变量初始化
静态初始化
分支主题
就地初始化
分支主题
代码块
在Java中,使用 {} 定义的一段代码称为代码块
内部类
在Java中呢,可以将一个类定义在另一个类或者方法的内部,其前者我们称为内部类,后者我们称外部类。
实例内部类
未被static修饰的类,我们称为实例内部类
分支主题
静态内部类
被static修饰的内部类
分支主题
局部内部类
定义在外部类的方法或者{}中,该种内部类只能在其定义的位置使用,对于这个代码块我们使用的非常少
匿名内部类
分支主题
11.数组的使用
数组就是相同类型的元素的集合,并且空间是连在一起的,起始位置是从0开始。
数组的创建
int[] array = new int[10];
初始化
动态初始化
在创建数组的时候,直接指定数组中的数组个数
静态初始化
在创建数组的时候,省略new数组中存放的类型[数组的个数],使用{data1, data2,data3...}
数组的访问和遍历
数组在内存中是一段连续存在的空间,空间从0位置开始,该编号就是其下标,是依次递增,数组可以通过下标来访问任意位置的下标
数组遍历一般使用for循环进行,常见的冒泡排序法之类的简单算法就可以体现数组的遍历规则
数组的应用场景
一般情况下我们使用数组进行数据的保存,这个数据通常是统一数据类型的,依次进行保存,确保了读取速度和规则
二维数组
相对于一维数组而言,二维数组一般添加了纵向位置,类似于二维坐标的样式
10.方法的使用
方法定义:
修饰符 返回值类型 方法名称(参数类型 形参) {
//方法体
return 返回值;
}
0 条评论
下一页