java基础语法

数据类型与常量变量

Java 中的数据类型分为两类:基本数据类型和引用数据类型。

基本数据类型

Java 的基本数据类型包括整数类型(byte、short、int、long)、浮点数类型(float、double)、字符类型(char)和布尔类型(boolean)。这些数据类型在内存中占用的空间大小是固定的,可以直接存储数据值。
整数类型用于表示整数值,分为四种不同大小的类型:

  • byte: byte 类型是 Java 中最小的整数类型,占用 1 个字节(8 位),取值范围为 -128 到 - 127。
  • short: short 类型占用 2 个字节(16 位),取值范围为 -32768 到 32767。
  • int: int 类型占用 4 个字节(32 位),取值范围为约 -2的31次方到 2的31次方-1。
  • long: long 类型占用 8 个字节(64 位),取值范围为-2的63次方到 2的63次方-1。
  • float: float 类型占用 4 个字节(32 位),可以表示约 7 位有效数字,取值范围负数为-3.402823E到1.401298E-45,正数为1.401298E-45到3.402823E+38。
  • double: double 类型占用 8 个字节(64 位),可以表示约 15 位有效数字,取值范围负数为-1.797693E+308到-4.9000000E-324,正数为4.9000000E-324到1.797693E+308。
  • char: char 类型用于表示单个字符,如字母、数字、标点符号等。字符类型用于表示单个字符,使用 Unicode 编码,占用 2 个字节(16 位),取值范围为 ‘\u0000’(0)到 ‘\uffff’(65535)之间的字符。
  • boolean: boolean 类型用于表示逻辑值,只能存储 true 或 false。布尔类型用于表示逻辑值,只有两个取值:true 和 false。布尔类型通常用于条件判断和逻辑运算。

引用数据类型

引用数据类型在 Java 编程语言中用于存储对对象的引用,而不是直接存储对象的数据。Java 中的引用数据类型包括类、接口、数组等,它们在内存中存储的是对象的地址,而不是对象的实际数据。下面详细描述引用数据类型的几种常见形式:

  • class类是 Java 中最基本的引用数据类型,它用于定义对象的结构和行为。类包括字段(属性)和方法,可以用于创建具体的对象实例。
public class Person {
    String name;
    int age;
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    public void sayHello() {
        System.out.println("Hello, my name is " + name + " and I am " + age + " years old.");
    }
}
  • 接口是一种抽象类型,它定义了对象的行为规范,但不提供具体的实现。接口中可以包含常量和抽象方法的定义,而具体的实现则由实现接口的类来完成。
public interface Animal {
    void eat();
    void sleep();
}
  • 数组是一种存储相同类型数据的集合,它在内存中分配连续的存储空间。数组的长度是固定的,一旦创建后大小不能改变。
int[] numbers = {1, 2, 3, 4, 5};
  • 枚举类型是一种特殊的引用数据类型,用于定义一组有限的常量集合。枚举类型中的每个常量都是唯一的,可以通过枚举类型名称来访问。
public enum Day {
    MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}

常量

常量是在程序运行过程中其值不会改变的数据。在 Java 中,常量可以分为字面常量(literal constants)和命名常量(named constants)两种形式。下面详细描述这两种常量:

  1. 字面常量
  • 整数常量: 如 123, -45, 0 等。
  • 浮点数常量: 如 3.14, -0.5, 1.0e10(科学计数法表示)等。
  • 字符常量: 使用单引号括起来的字符,如 ‘a’, ‘b’, ‘3’, ‘%’ 等。
  • 字符串常量: 使用双引号括起来的字符序列,如 “Hello”, “Java”, “123” 等。
  • 布尔常量: 表示真假值的常量,只有两个值:true 和 false。
  1. 命名常量
    命名常量是通过关键字 final 声明的变量,一旦赋值后其值将不再改变。命名常量通常用大写字母表示,并通过下划线 _ 分隔单词,以增加可读性。命名常量在程序中用于存储不变的值或者共享的常量值。
public class Constants {
    public static final int MAX_COUNT = 100;
    public static final double PI = 3.14;
    public static final String MESSAGE = "Hello, World!";
}

在上面的示例中,MAX_COUNT, PI 和 MESSAGE 都是命名常量,它们在程序中表示一些固定的值,而且其值在程序运行期间不会改变,可以看到上述例子中常量通常是全大写的表示。

变量

  • 命名:变量的命名应具有描述性,并遵循命名规范,以增加代码的可读性和可维护性。一般而言,变量名应以字母或下划线 _ 开头,后续可以是字母、数字或下划线的组合。变量名区分大小写。
  • 赋值:赋值是将数据存储到变量中的过程,可以使用赋值运算符 = 将数据赋给变量。
  • 作用域:变量的作用域是指变量在程序中的可见范围。在 Java 中,变量的作用域可以是方法内的局部变量,也可以是类的成员变量。
    局部变量(Local Variables): 在方法内部声明的变量称为局部变量,其作用域仅限于声明它的方法内部。
    成员变量(Instance Variables): 在类内部声明的变量称为成员变量,其作用域为整个类,可以被类中的任何方法访
  • 生命周期:变量的生命周期是指变量在内存中存在的时间段。局部变量的生命周期随着方法的执行而开始和结束,而成员变量的生命周期则与对象的生命周期相关联。

运算符

算数运算

算术运算符是用于执行基本数学运算的符号或符号组合。在 Java 中,算术运算符用于执行常见的数学运算,例如加法、减法、乘法和除法等。下面详细描述 Java 中常用的算术运算符:

  1. 加法运算符 +
    加法运算符用于将两个数相加,也可用于字符串连接。
int result = 5 + 3; // result 的值为 8
String text = "Hello" + " " + "World"; // text 的值为 "Hello World"
  1. 减法运算符 -
    减法运算符用于将一个数减去另一个数。
int result = 8 - 3; // result 的值为 5
  1. 乘法运算符 *
    乘法运算符用于将两个数相乘。
int result = 5 * 3; // result 的值为 15
  1. 除法运算符 /
    除法运算符用于将一个数除以另一个数。如果除数为 0,则会抛出异常。
double result = 10.0 / 3.0; // result 的值为 3.3333...
  1. 取模运算符 %
    取模运算符用于计算两个数相除的余数。
int result = 10 % 3; // result 的值为 1
  1. 自增运算符 ++ 和自减运算符 –
    自增运算符用于将变量的值增加 1,自减运算符用于将变量的值减少 1。
int num = 5;
num++; // num 的值变为 6
num--; // num 的值变为 5
  1. 负号运算符 -
    负号运算符用于将数值取反。
int num = 5;
int negativeNum = -num; // negativeNum 的值为 -5

关系运算

  1. 相等运算符 ==
    相等运算符用于判断两个操作数是否相等。如果相等,则返回 true,否则返回 false。
int a = 5;
int b = 5;
boolean isEqual = (a == b); // isEqual 的值为 true
  1. 不相等运算符 !=
    不相等运算符用于判断两个操作数是否不相等。如果不相等,则返回 true,否则返回 false。
int a = 5;
int b = 3;
boolean isNotEqual = (a != b); // isNotEqual 的值为 true
  1. 大于运算符 >
    大于运算符用于判断左操作数是否大于右操作数。如果是,则返回 true,否则返回 false
int a = 5;
int b = 3;
boolean isGreater = (a > b); // isGreater 的值为 true
  1. 小于运算符 <
    小于运算符用于判断左操作数是否小于右操作数。如果是,则返回 true,否则返回 false。
int a = 3;
int b = 5;
boolean isLess = (a < b); // isLess 的值为 true
  1. 大于等于运算符 >=
    大于等于运算符用于判断左操作数是否大于或等于右操作数。如果是,则返回 true,否则返回 false。
int a = 5;
int b = 5;
boolean isGreaterOrEqual = (a >= b); // isGreaterOrEqual 的值为 true
  1. 小于等于运算符 <=
    小于等于运算符用于判断左操作数是否小于或等于右操作数。如果是,则返回 true,否则返回 false。
int a = 3;
int b = 5;
boolean isLessOrEqual = (a <= b); // isLessOrEqual 的值为 true

逻辑运算

逻辑运算符用于对布尔类型的操作数进行逻辑运算,常用于组合多个条件并得出最终的逻辑结果。在 Java 中,逻辑运算符有三种:与运算(&)、或运算(|)和非运算(!),与运算和非运算还有特殊的短路用法(&&)和(||)。下面详细描述这几种逻辑运算符的用法:

  1. 与运算符 &和&&
    与运算符用于判断两个条件是否同时为真,只有当两个条件都为真时,整个表达式的结果才为真;否则,结果为假。
boolean condition1 = true;
boolean condition2 = false;
boolean result = condition1 & condition2; // result 的值为 false
//当condition4 为false时候,condition3将不被执行,直接返回false。
boolean condition3 = true;
boolean condition4 = false;
boolean result = condition4 && condition3 ; // result 的值为 false
  1. 或运算符 |和||
    或运算符用于判断两个条件是否至少有一个为真,只要有一个条件为真,整个表达式的结果就为真;只有当两个条件都为假时,结果才为假。
boolean condition1 = true;
boolean condition2 = false;
boolean result = condition1 | condition2; // result 的值为 true
//当condition3 为true时候,condition4将不被执行,直接返回true。
boolean condition3 = true;
boolean condition4 = false;
boolean result = condition3 | condition4; // result 的值为 true
  1. 非运算符 !
    非运算符用于取反操作,将布尔值的真变为假,假变为真。
boolean condition = true;
boolean result = !condition; // result 的值为 false

逻辑运算符常用于条件判断和控制流程,能够帮助程序员构建出复杂的逻辑关系。通过组合多个条件并使用逻辑运算符,可以编写出清晰、简洁的逻辑判断语句,提高代码的可读性和可维护性。

流程控制

if-else

在 Java 中,if-else 语句是用于根据条件执行不同代码块的控制语句,if-else有3种不同的形式。if-else 语句的基本结构如下:

if (condition) {
    // 如果条件为真,执行这里的代码块
} else {
    // 如果条件为假,执行这里的代码块
}

在这个结构中,condition 是一个布尔表达式,用于判断条件是否为真。如果 condition 为真,则执行 if 代码块中的语句;如果 condition 为假,则执行 else 代码块中的语句。

  1. 单个 if 语句
int x = 10;
if (x > 5) {
    System.out.println("x 大于 5");
} 
  1. 嵌套 if-else 语句
int x = 10;
int y = 20;
if (x > y) {
    System.out.println("x 大于 y");
} if (x < y) {
    System.out.println("x 小于 y");
} else {
    System.out.println("x 等于 y");
}
  1. 多个条件的 if-else语句
int x = 10;
if (x > 5) {
    System.out.println("x 大于 5");
} else if (x > 0) {
    System.out.println("x 大于 0,小于等于 5");
} else {
    System.out.println("x 小于等于 0");
}

switch-case

在 Java 中,switch-case 语句是一种多分支选择结构,用于根据表达式的值选择执行不同的代码块,比起if-else的范围判断,switch-case更加适合等值判断。switch-case 语句的基本结构如下:

switch (expression) {
    case value1:
        // 如果表达式的值等于 value1,执行这里的代码块
        break;
    case value2:
        // 如果表达式的值等于 value2,执行这里的代码块
        break;
    // 可以有多个 case 分支
    default:
        // 如果表达式的值不匹配任何 case 值,执行这里的代码块
}

在这个结构中,expression 是一个表达式,它的值会与每个 case 后面的 value 进行比较。如果找到匹配的 case,则执行对应的代码块,然后跳出 switch 语句;如果没有匹配的 case,则执行 default 后面的代码块。

int day = 3;
switch (day) {
    case 1:
        System.out.println("星期一");
        break;
    case 2:
        System.out.println("星期二");
        break;
    case 3:
        System.out.println("星期三");
        break;
    default:
        System.out.println("其他");
}

在这个示例中,如果 day 的值为 1,则输出 “星期一”;如果 day 的值为 2,则输出 “星期二”;如果 day 的值为 3,则输出 “星期三”;如果 day 的值不是 1、2 或 3,则输出 “其他”。

注意事项

  1. 每个 case 后面的值必须是一个常量表达式,且必须是整数、字符或枚举类型。
  2. 每个 case 后面的代码块必须以 break 语句结束,用于跳出 switch 语句;否则,程序将会继续执行下一个 case 的代码块,直到遇到 break 或者结束 switch 语句。
  3. default 分支是可选的,用于处理所有不匹配 case 的情况。如果没有 default 分支,并且没有匹配的 case,则 switch 语句将不执行任何代码。

switch-case 语句通常用于多选一的情况,比较适用于枚举类型或整数类型的判断。它可以让代码更加清晰和易于理解,提高了代码的可读性和可维护性。

while

在 Java 中,while 循环是一种基本的循环结构,用于在条件满足的情况下重复执行一段代码块。while 循环的语法结构如下:

while (condition) {
    // 只要条件为真,就重复执行这里的代码块
}

//do-while
do{
	 // 只要条件为真,就重复执行这里的代码块
}while(condition)

在这个结构中,condition 是一个布尔表达式,用于判断是否继续执行循环。只要 condition 的值为 true,就会重复执行 while 循环中的代码块;一旦 condition 的值为 false,循环就会终止,程序会跳出 while 循环。do-while则会先执行一次循环体再进行循环条件判断。

结语

数据类型、常量变量、运算符和流程控制是 Java 编程的基础,掌握这些概念对于编写高效、清晰的代码至关重要。通过学习和理解这些概念,可以更好地掌握 Java 编程语言,并能够编写出更加健壮和优雅的程序。

希望本文能够帮助读者加深对 Java 数据类型、常量变量、运算符和流程控制的理解,为进一步学习 Java 编程打下坚实的基础。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值