引言
作为一名有着四年多java开发工作经验的程序员,个人觉得java基础知识还是挺重要的。java是一门高级编程语言,它的特性是简洁性、可移植性和面向对象。本文主要介绍的知识点包括数据类型和变量、运算符和表达式、流程控制、数组、方法、类和对象等。
数据类型和变量
在java中,数据类型可以分为两大类:基本数据类型和引用数据类型。基本数据类型包括整形、浮点型、字符型和布尔型,而引用数据类型包括接口、类和数组。变量用于存储数据并提供对数据的访问。
基本数据类型
- 整形:包括
byte、short、int和long,这些类型的取值范围和占用存储空间不同。
byte:8位(1字节),默认值0,取值范围-2^7 ~ 2^7short:16位(2字节),默认值0,取值范围-2^15 ~ 2^15int:32位(4字节),默认值0,取值范围-2^31 ~ 2^31long:64位(8字节),默认值0,取值范围-2^63 ~ 2^63
- 浮点型:包括
float和double,用于表示实数
float:32位(4字节),默认值0,取值范围-2^31 ~ 2^31,单精度浮点数double:64位(8字节),默认值0,取值范围-2^63 ~ 2^63,双精度浮点数
- 字符型:
char,用户表示Unicode字符
char:16位(2字节),默认值为空字符,取值范围0 ~ 2^16 - 1
- 布尔型
boolean:8位(1字节),默认值false,取值范围true或者false
注意:空字符和空串是不同的概念。空字符表示一个字符位置为空(\u0000),而空串则表示一个字符串没有任何字符。在 Java 中,空串可以通过 "" 或 String 类的 isEmpty() 方法来表示。
引用数据类型
在java中引用数据类型是一种用于存储对象的数据类型。与基本数据类型不同引用数据类型是通过引用来访问和操作对象的。
- 类:类是一种用户自定义的引用数据类型,他是
java中最基本的构建模块。通过定义类,可以创建对象并对其进行操作。 - 接口:接口定义一组方法的规范,可以被类实现。一个类可实现一个或者多个接口,以获得接口中定义的方法。
- 数组:数组是一种用于存储多个相同类型元素的容器。他可以存储基本数据类型或者引用数据类型的元素。
- 枚举:枚举是一种特殊的类,它限制了对象的可能值为一组预定义的常量。枚举通常用于定义一组相关的常量。
- 字符串:字符串是一种特殊的引用数据类型,用于表示文本数据。在
java中,字符串是不可变的,即创建后不能修改。 - 类型包装器:类型包装器提供了将基本数据类型包装为对象的功能。例如,可以使用
Integer类来包装int类型的数据。
除了这些常见的引用数据类型之外,还可以使用java提供的类库或自定义的类来创建更多的引用数据类型。
变量
java中的变量可以分为以下几种类型:
- 基本数据类型:
java提供了一组基本数据类型,用于存储简单的值。基本数据类型上面已经介绍过了。 - 引用数据类型:引用数据类型用于存储对象的引用。引用数据类型也在上面介绍过了
- 局部变量:局部变量是在方法、代码块或构造函数中声明的变量。它们只在声明它们的方法、代码块或构造函数中可见,并且在方法执行完毕后会被销毁。
- 成员变量:成员变量是在类中生命的变量,它们属于类的实例,每个实例都有一组独立的成员变量。成员变量可以通过创建类的对象来访问。
- 静态变量:静态变量是在类中声明的变量,他们属于类本身而不是类的实例。静态变量只有一份副本,被所有的实力共享,并且可以直接通过类名来访问。
- 参数:参数是在方法或构造函数定义中声明的变量,用于接收传递给方法或构造函数的值。参数允许将值从调用代码传递给方法或构造函数内部。
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提供丰富的运算符和表达式,用于进行算术运算、逻辑判断、赋值操作等。
- 算术运算符
- 加法:+
- 减法:-
- 乘法:*
- 除法:/
- 取余:%
- 自增:++
- 自减:--
- 关系运算符
- 等于:==
- 不等于:!=
- 大于:>
- 小于:<
- 大于等于:>=
- 小于等于:<=
- 逻辑运算符
- 与:&&
- 或:||
- 非:!
- 赋值运算符
- 简单赋值:=
- 加法赋值:+=
- 减法赋值:-=
- 乘法赋值:*=
- 除法赋值:/=
- 取余赋值:%=
- 位运算符
- 与:&
- 或:|
- 异或:^
- 取反:~
- 左移:<<
- 右移:>>
- 无符号右移:>>>
- 条件运算符
- 三元运算符:? :
这些运算符可以用于操作不同类型的操作数,包括整数、浮点数、布尔值和字符等。表达式由运算符和操作数组成,可以进行各种计算和比较操作。
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 (表达式) {
case 值1:
// 表达式等于值1时执行的代码
break;
case 值2:
// 表达式等于值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中,数组是一种用于存储多个相同类型数据的容器。数组提供了一种有效的方式来组织和访问一组数据。
- 声明和创建数据
int[] numbers; // 声明整数数组
numbers = new int[5]; // 创建长度为5的整数数组
- 初始化数组
- 静态初始化:指定数组元素的初始值,并在创建数组时进行初始化。
int[] numbers = {1, 2, 3, 4, 5};
- 动态初始化:创建数组后,逐个为数组元素赋值
String[] names = new String[3];
names[0] = "Alice";
names[1] = "Bob";
names[2] = "Charlie";
- 访问和修改数组元素
可以使用索引来访问和修改数组中的元素。数组的索引从0开始,最大索引为数组长度减1。
int[] numbers = {1, 2, 3};
int firstNumber = numbers[0]; // 访问第一个元素
numbers[1] = 10; // 修改第二个元素的值为10
- 数组长度
使用数组的length属性可以获取数组的长度,即数组中元素的个数。
int[] numbers = {1, 2, 3, 4, 5};
int length = numbers.length; // 数组长度为5
- 遍历数组
可以使用循环结构(如for循环、增强型for循环或迭代器)来遍历数组中的所有元素,并对每个元素进行操作。
for (int i = 0; i < 数组名.length; i++) {
// 访问数组元素:数组名[i]
// 执行操作
}
方法
方法是一段可重用的代码块,用于执行特定的任务或操作。方法可以接受参数并返回一个值,也可以不接受参数或不返回值。通过将代码组织到方法中,可以提高代码的可读性、可维护性和重用性。
- 方法的声明
在java中,方法的声明由以下部分组成:
- 修饰符(可选):用于控制方法的可见性和行为
- 返回类型:指定方法返回值的数据类型,可以是基本数据类型或引用数据类型,如果方法不返回任何值,则使用关键字
void - 方法名:方法的名称,用于唯一标识方法
- 参数列表:方法接受的参数,可以有零个或多个参数,每个参数由数据类型和参数名组成
- 异常列表(可选):方法可能抛出的异常类型。
public int add(int num1, int num2) {
// 方法体
int sum = num1 + num2;
return sum;
}
- 方法的调用
要调用方法并执行其中的代码,需要使用方法名和提供的参数(如果有)来调用方法。
int result = add(5, 3);
- 方法的参数
方法可以接受零个或多个参数,参数用于向方法传递数据。参数由数据类型和参数名组成,多个参数之间用逗号分隔。
public void greet(String name) {
System.out.println("Hello, " + name + "!");
}
- 方法的返回值
方法可以有一个返回值,返回值由方法的返回类型指定。使用关键字 return 可以将结果返回给调用者。
public int multiply(int num1, int num2) {
int product = num1 * num2;
return product;
}
- 方法的重载
在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 类描述了一个人的属性(name 和 age)和行为(introduce() 方法)。通过在 main 类中创建 Person 对象,可以使用对象的方法来执行特定的操作。
类和对象是面向对象编程的基本构建块,它们允许我们将数据和行为封装在一个单独的实体中,使代码更加模块化、可维护和可重用。通过定义类和创建对象,可以模拟现实世界中的对象和其交互,实现复杂的程序逻辑。
总结
本文简单的介绍了java的基础知识,数据类型和变量、运算符和表达式、流程控制、数组、方法、类和对象等。
- 数据类型和变量:基本数据类型和引用数据类型来存储和操作数据,使用变量来存储和引用数据。
- 运算符和表达式:各种运算符用于执行各种计算操作,表达式由运算符和操作数组成。
- 流程控制:提供了条件语句和循环语句来控制程序的执行流程。
- 数组:数组是用于存储多个相同类型的元素的容器,可以通过索引访问和修改数组元素。
- 方法:方法是一段可重用的代码块,用于执行特定的任务。方法可以接受参数并返回结果,可以封装复杂的逻辑和操作数据。
- 类和对象:类是对一类对象的抽象描述,包含属性和方法。对象是类的具体实例,具有类定义的属性和方法。