java基础知识点整理

323 阅读13分钟

引言

作为一名有着四年多java开发工作经验的程序员,个人觉得java基础知识还是挺重要的。java是一门高级编程语言,它的特性是简洁性、可移植性和面向对象。本文主要介绍的知识点包括数据类型和变量、运算符和表达式、流程控制、数组、方法、类和对象等。

数据类型和变量

java中,数据类型可以分为两大类:基本数据类型和引用数据类型。基本数据类型包括整形、浮点型、字符型和布尔型,而引用数据类型包括接口、类和数组。变量用于存储数据并提供对数据的访问。

基本数据类型

  1. 整形:包括byteshortintlong,这些类型的取值范围和占用存储空间不同。
  • byte:8位(1字节),默认值0,取值范围-2^7 ~ 2^7
  • short:16位(2字节),默认值0,取值范围-2^15 ~ 2^15
  • int:32位(4字节),默认值0,取值范围-2^31 ~ 2^31
  • long:64位(8字节),默认值0,取值范围-2^63 ~ 2^63
  1. 浮点型:包括floatdouble,用于表示实数
  • float:32位(4字节),默认值0,取值范围-2^31 ~ 2^31,单精度浮点数
  • double:64位(8字节),默认值0,取值范围-2^63 ~ 2^63,双精度浮点数
  1. 字符型:char,用户表示Unicode字符
  • char:16位(2字节),默认值为空字符,取值范围0 ~ 2^16 - 1
  1. 布尔型
  • boolean:8位(1字节),默认值false,取值范围true或者false

注意:空字符空串是不同的概念。空字符表示一个字符位置为空(\u0000),而空串则表示一个字符串没有任何字符。在 Java 中,空串可以通过 "" 或 String 类的 isEmpty() 方法来表示。

引用数据类型

在java中引用数据类型是一种用于存储对象的数据类型。与基本数据类型不同引用数据类型是通过引用来访问和操作对象的。

  1. 类:类是一种用户自定义的引用数据类型,他是java中最基本的构建模块。通过定义类,可以创建对象并对其进行操作。
  2. 接口:接口定义一组方法的规范,可以被类实现。一个类可实现一个或者多个接口,以获得接口中定义的方法。
  3. 数组:数组是一种用于存储多个相同类型元素的容器。他可以存储基本数据类型或者引用数据类型的元素。
  4. 枚举:枚举是一种特殊的类,它限制了对象的可能值为一组预定义的常量。枚举通常用于定义一组相关的常量。
  5. 字符串:字符串是一种特殊的引用数据类型,用于表示文本数据。在java中,字符串是不可变的,即创建后不能修改。
  6. 类型包装器:类型包装器提供了将基本数据类型包装为对象的功能。例如,可以使用Integer类来包装int类型的数据。

除了这些常见的引用数据类型之外,还可以使用java提供的类库或自定义的类来创建更多的引用数据类型。

变量

java中的变量可以分为以下几种类型:

  1. 基本数据类型:java提供了一组基本数据类型,用于存储简单的值。基本数据类型上面已经介绍过了。
  2. 引用数据类型:引用数据类型用于存储对象的引用。引用数据类型也在上面介绍过了
  3. 局部变量:局部变量是在方法、代码块或构造函数中声明的变量。它们只在声明它们的方法、代码块或构造函数中可见,并且在方法执行完毕后会被销毁。
  4. 成员变量:成员变量是在类中生命的变量,它们属于类的实例,每个实例都有一组独立的成员变量。成员变量可以通过创建类的对象来访问。
  5. 静态变量:静态变量是在类中声明的变量,他们属于类本身而不是类的实例。静态变量只有一份副本,被所有的实力共享,并且可以直接通过类名来访问。
  6. 参数:参数是在方法或构造函数定义中声明的变量,用于接收传递给方法或构造函数的值。参数允许将值从调用代码传递给方法或构造函数内部。

java中的变量需要先声明,然后才能使用。变量的声明包括指定的变量的类型和名称。例如:

int age; //声明一个整数类型的变量age
age = 25; //给age变量赋值为25

double pi = 3.14; //声明一个双精度浮点型的变量pi,并初始化为3.14

String name = "John"; //声明一个字符串类型的变量name,并初始化为"John"

Person person = new Person(); //声明一个Person类型的变量person,并使用new关键字创建一个Person对象并赋值给person变量

注意:java是静态类型语言,变量的类型在声明时必须明确的指出,并且在使用之前要先进行初始化。

运算符和表达式

java中,运算符用于执行各种操作,而表达式是由运算符、操作数和变量组成的语句片段。java提供丰富的运算符和表达式,用于进行算术运算、逻辑判断、赋值操作等。

  1. 算术运算符
  • 加法:+
  • 减法:-
  • 乘法:*
  • 除法:/
  • 取余:%
  • 自增:++
  • 自减:--
  1. 关系运算符
  • 等于:==
  • 不等于:!=
  • 大于:>
  • 小于:<
  • 大于等于:>=
  • 小于等于:<=
  1. 逻辑运算符
  • 与:&&
  • 或:||
  • 非:!
  1. 赋值运算符
  • 简单赋值:=
  • 加法赋值:+=
  • 减法赋值:-=
  • 乘法赋值:*=
  • 除法赋值:/=
  • 取余赋值:%=
  1. 位运算符
  • 与:&
  • 或:|
  • 异或:^
  • 取反:~
  • 左移:<<
  • 右移:>>
  • 无符号右移:>>>
  1. 条件运算符
  • 三元运算符:? :

这些运算符可以用于操作不同类型的操作数,包括整数、浮点数、布尔值和字符等。表达式由运算符和操作数组成,可以进行各种计算和比较操作。

int a = 5;
int b = 3;
int c = a + b; // 算术运算:相加
boolean result = (a > b) && (a != 0); // 逻辑运算:与和不等于
int x = 10;
x += 5; // 赋值运算:加法赋值
boolean flag = (x > 0) ? true : false; // 条件运算:三元运算符

注意:运算符的优先级和结合性,可以使用括号来明确表达式的执行顺序。

流程控制

java中,流程控制用于控制程序的执行流程,让程序按照特定的条件或循环进行不同的操作。java提供了多种流程控制语句和结构,包括条件语句(if-else语句、switch语句)、循环语句(for循环、while循环、do-while循环)以及跳转语句(break语句、continue语句)等。

条件语句

  • if语句:用于执行条件满足时的操作
if (条件) {
    // 条件满足时执行的代码
} else {
    // 条件不满足时执行的代码
}
  • if-else-if-else语句:用于多个条件判断和执行不同的代码块
if (条件1) {
    // 条件1满足时执行的代码
} else if (条件2) {
    // 条件2满足时执行的代码
} else {
    // 所有条件都不满足时执行的代码
}
  • switch语句:根据表达式的值,选择执行匹配的代码块
switch (表达式) {
    case1:
        // 表达式等于值1时执行的代码
        break;
    case2:
        // 表达式等于值2时执行的代码
        break;
    default:
        // 表达式不匹配任何值时执行的代码
        break;
}

循环语句

  • for循环:用于重复执行一段代码,通常用于一直循环次数的情况下
for (初始化; 条件; 更新) {
    // 循环体中的代码
}
  • while循环:在给定条件为真时,重复执行一段代码,通常用于位置循环次数的情况
while (条件) {
    // 循环体中的代码
}
  • do-while循环:先执行一次循环中的代码,然后在给定条件为真时,重复执行一段代码。
do {
    // 循环体中的代码
} while (条件);

跳转语句

  • break语句:用于中断循环或switch语句的执行
for (int i = 0; i < 10; i++) {
    if (i == 5) {
        break; // 当i等于5时,跳出循环
    }
    // 其他代码
}
  • continue语句:用于终止当前迭代并开始下一次迭代
for (int i = 0; i < 10; i++) {
    if (i == 5) {
        continue; // 当i等于5时,跳过本次循环继续下一次循环
    }
    // 其他代码
}

数组

java中,数组是一种用于存储多个相同类型数据的容器。数组提供了一种有效的方式来组织和访问一组数据。

  1. 声明和创建数据
int[] numbers; // 声明整数数组
numbers = new int[5]; // 创建长度为5的整数数组
  1. 初始化数组
  • 静态初始化:指定数组元素的初始值,并在创建数组时进行初始化。
int[] numbers = {1, 2, 3, 4, 5};
  • 动态初始化:创建数组后,逐个为数组元素赋值
String[] names = new String[3];
names[0] = "Alice";
names[1] = "Bob";
names[2] = "Charlie";
  1. 访问和修改数组元素

可以使用索引来访问和修改数组中的元素。数组的索引从0开始,最大索引为数组长度减1。

int[] numbers = {1, 2, 3};
int firstNumber = numbers[0]; // 访问第一个元素
numbers[1] = 10; // 修改第二个元素的值为10
  1. 数组长度

使用数组的length属性可以获取数组的长度,即数组中元素的个数。

int[] numbers = {1, 2, 3, 4, 5};
int length = numbers.length; // 数组长度为5
  1. 遍历数组

可以使用循环结构(如for循环、增强型for循环或迭代器)来遍历数组中的所有元素,并对每个元素进行操作。

for (int i = 0; i < 数组名.length; i++) {
    // 访问数组元素:数组名[i]
    // 执行操作
}

方法

方法是一段可重用的代码块,用于执行特定的任务或操作。方法可以接受参数并返回一个值,也可以不接受参数或不返回值。通过将代码组织到方法中,可以提高代码的可读性、可维护性和重用性。

  1. 方法的声明

java中,方法的声明由以下部分组成:

  • 修饰符(可选):用于控制方法的可见性和行为
  • 返回类型:指定方法返回值的数据类型,可以是基本数据类型或引用数据类型,如果方法不返回任何值,则使用关键字void
  • 方法名:方法的名称,用于唯一标识方法
  • 参数列表:方法接受的参数,可以有零个或多个参数,每个参数由数据类型和参数名组成
  • 异常列表(可选):方法可能抛出的异常类型。
public int add(int num1, int num2) {
    // 方法体
    int sum = num1 + num2;
    return sum;
}
  1. 方法的调用

要调用方法并执行其中的代码,需要使用方法名和提供的参数(如果有)来调用方法。

int result = add(5, 3);
  1. 方法的参数

方法可以接受零个或多个参数,参数用于向方法传递数据。参数由数据类型和参数名组成,多个参数之间用逗号分隔。

public void greet(String name) {
    System.out.println("Hello, " + name + "!");
}
  1. 方法的返回值

方法可以有一个返回值,返回值由方法的返回类型指定。使用关键字 return 可以将结果返回给调用者。

public int multiply(int num1, int num2) {
    int product = num1 * num2;
    return product;
}
  1. 方法的重载

java中,可以定义具有相同名称但参数列表不同的多个方法,称为方法的重载。方法的重载可以根据参数的个数、类型或顺序的不同来区分不同的方法。

public class Calculator {
    public int add(int num1, int num2) {
        return num1 + num2;
    }
    
    public double add(double num1, double num2) {
        return num1 + num2;
    }
    
    public int add(int num1, int num2, int num3) {
        return num1 + num2 + num3;
    }
}

类和对象

java中,类和对象是面向对象编程的核心概念。类是对一类对象的抽象描述,而对象是类的具体实例。

类:

  • 类是一种用户自定义的数据类型,用于描述具有相似属性和行为的一组对象。
  • 类由属性(成员变量)和方法(成员函数)组成。
  • 属性定义了对象的状态,可以是基本数据类型或引用类型。
  • 方法定义了对象的行为,用于执行特定的操作。
  • 类还可以有构造方法(Constructor),用于创建对象时初始化对象的状态。

对象:

  • 对象是类的具体实例,通过类的构造方法创建。
  • 对象具有类定义的属性和方法,并可以使用这些属性和方法进行操作。
  • 每个对象都有自己的状态,可以独立于其他对象存在和操作。
public class Person {
    // 成员变量
    String name;
    int age;
    
    // 构造方法
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    
    // 成员方法
    public void introduce() {
        System.out.println("My name is " + name + " and I'm " + age + " years old.");
    }
}

public class main {
    public static void main(String[] args) {
        // 创建对象
        Person person = new Person("Alice", 25);
        
        // 调用对象的方法
        person.introduce();
    }
}

在上面的示例中,Person 类描述了一个人的属性(nameage)和行为(introduce() 方法)。通过在 main 类中创建 Person 对象,可以使用对象的方法来执行特定的操作。

类和对象是面向对象编程的基本构建块,它们允许我们将数据和行为封装在一个单独的实体中,使代码更加模块化、可维护和可重用。通过定义类和创建对象,可以模拟现实世界中的对象和其交互,实现复杂的程序逻辑。

总结

本文简单的介绍了java的基础知识,数据类型和变量、运算符和表达式、流程控制、数组、方法、类和对象等。

  1. 数据类型和变量:基本数据类型和引用数据类型来存储和操作数据,使用变量来存储和引用数据。
  2. 运算符和表达式:各种运算符用于执行各种计算操作,表达式由运算符和操作数组成。
  3. 流程控制:提供了条件语句和循环语句来控制程序的执行流程。
  4. 数组:数组是用于存储多个相同类型的元素的容器,可以通过索引访问和修改数组元素。
  5. 方法:方法是一段可重用的代码块,用于执行特定的任务。方法可以接受参数并返回结果,可以封装复杂的逻辑和操作数据。
  6. 类和对象:类是对一类对象的抽象描述,包含属性和方法。对象是类的具体实例,具有类定义的属性和方法。