Java基础语法

发布 | 2024-08-02 | JAVA




Java基础部分主要涵盖了数据类型,变量,运算符,分支语句,循环。

📕 基本数据类型


{message type="info" content="位宽:表示二进制位数,其中一位代表符号位"/}

{mtitle title="整数型"/}

类型位宽容量范围字节
byte8($2^3$)$2^7$-128 到 1271
short16($2^4$)$2^{15}$-32,768 到 32,7672
int32($2^5$)$-2^{31}$到$2^{31}$-1-2,147,483,648 到 2,147,483,6474
long64($2^6$)-$2^{64}$到$2^{64}$-1-9,223,372,036,854,775,808 到 9,223,372,036,854,775,8078

{mtitle title="浮点型"/}

类型位宽容量范围字节
float32($2^6$)约$10^{47}$IEEE 754标准4
double64($2^6$)约$10^{308}$IEEE 754标准8

{mtitle title="字符型"/}

类型位宽容量范围字节
char16($2^4$)$2^{15}$-32,768 到 32,7672

{mtitle title="逻辑型"/}

类型位宽容量范围字节
boolen不固定2true 或 false通常为1

示例

//byte类型 8位整数类型,范围从-128到127
byte a = 100;
//short类型 16位整数类型,范围从-32,768到32,767
short b = 10000;
//int类型 32位整数类型,范围从-2^31到2^31-1
int c = 100000;
//long类型 64位整数类型,范围从-2^63到2^63-1
long d = 1000000000L;
//float类型 32位单精度浮点数
float e = 3.14F;
//double类型 64位双精度浮点数
double f = 3.141592653589793;
//char类型 16位Unicode字符
char g = 'A';
//boolean类型 只有两个值:true和false
boolean h = true;


📕 引用数据类型

基本数据类型外的所有类型都是引用数据类型
例如:类,接口,对象,数组等

示例

String str = "Hello, World!";
int[] arr = {1, 2, 3, 4, 5};



注意
基本数据类型传值得到的是值的副本
引用数据类型传值得到的是地址值




📉 变量


  • 变量类型的声明与作用域


    局部变量
    在方法体内声明,只能在该方法内使用
    实例变量
    在类中,方法、构造函数之外声明,实例变量属于该类的对象,必须创建对象才能调用
    静态变量
    静态变量属于类,该类不生产对象,通过类名就可以调用静态变量


  • 变量初始化


    声明变量时需要指定类型,初始化可以在声明时进行或稍后进行


📠 运算符


算数运算符


加+, 减-, 乘*, 除/, 取模%


int a = 10, b = 20;
int sum = a + b; // 加法
int diff = b - a; // 减法
int product = a * b; // 乘法
int quotient = b / a; // 除法
int remainder = b % a; // 取模

关系运算符


等于==, 不等于!=, 大于>, 小于<, 大于等于>=, 小于等于<=


boolean isEqual = (a == b);
boolean isNotEqual = (a != b);
boolean isGreater = (a > b);
boolean isLesser = (a < b);

逻辑运算符


与&&, 或||, 非!


boolean and = (a > 5 && b < 30);
boolean or = (a > 15 || b < 30);
boolean not = !(a > 5);

赋值运算符


基本赋值=, 加等+=, 减等-=, 乘等*=, 除等/=, 取模等%=


int a = 10;
a += 5; // 等同于 a = a + 5
a -= 3; // 等同于 a = a - 3
a *= 2; // 等同于 a = a * 2
a /= 2; // 等同于 a = a / 2
a %= 3; // 等同于 a = a % 3

三元运算符


条件表达式? 表达式1 : 表达式2


int a = 10, b = 20;
int max = (a > b) ? a : b; // 如果a大于b,max等于a,否则max等于b

位运算符


与&, 或|, 异或^, 取反~, 左移<<, 右移>>, 无符号右移>>>


int x = 5; // 0101
int y = 3; // 0011
int and = x & y; // 0001
int or = x | y; // 0111
int xor = x ^ y; // 0110
int not = ~x; // 1010
int leftShift = x << 2; // 10100
int rightShift = x >> 2; // 0001
int unsignedRightShift = x >>> 2; // 0001

{alert type="info"}
在基本数据类型中,同一数据类型中不同数值范围的类型,小范围为大范围赋值存在自动类型提升,反之需要强制类型转换。
{/alert}


📝 控制语句


  • 条件语句


    if-else语句


    int age = 20;
    if (age >= 18) {
      System.out.println("成人");
    } else if {
      System.out.println("未成年");
    } else {
      System.out.println("数据错误");
    }

    switch-case语句


    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("其他");
    }

    新特性

    public int getNumberOfWeekday(String day) {
      return switch (day) {
          case "Monday", "Tuesday", "Wednesday" -> 1;
          case "Thursday", "Friday" -> 2;
          case "Saturday" -> 3;
          case "Sunday" -> 4;
          default -> -1;
      };
    }
    double feeRate = switch (transactionType) {
      case "DOMESTIC" -> {
          double rate = (transactionAmount < 1000) ? 0.01 : 0.005;
          yield rate;
      }
      case "INTERNATIONAL" -> {
          double rate = (transactionAmount < 1000) ? 0.02 : 0.015;
          yield rate;
      }
      case "TRANSFER" -> {
          double rate = (transactionAmount < 500) ? 0.005 : 0.002;
          yield rate;
      }
      default -> {
          yield 0.0; // 为无效的transactionType返回默认费率
      }
    };


  • 循环语句


    for循环


    for (int i = 0; i < 5; i++) {
      System.out.println(i);
    }

    while循环


    int i = 0;
    while (i < 5) {
      System.out.println(i);
      i++;
    }

    do-while循环


    int i = 0;
    do {
      System.out.println(i);
      i++;
    } while (i < 5);

  • 跳转语句


    break语句


    用于终止循环或switch语句

    for (int i = 0; i < 10; i++) {
      if (i == 5) {
          break; // 当i等于5时跳出循环
      }
      System.out.println(i);
    }

    continue语句


    用于跳过当前循环中的剩余语句,并开始下一次循环

    for (int i = 0; i < 10; i++) {
      if (i % 2 == 0) {
          continue; // 跳过当前循环的剩余部分
      }
      System.out.println(i); // 只打印奇数
    }

    return语句


    用于从方法返回值并终止方法的执行

    public int add(int a, int b) {
      return a + b; // 返回两个数的和
    }

💻 基础语法综合示例

/**
 * 这是一个Java基础语法的示例类
 * 包含变量声明、运算符使用、控制语句等
 */
public class BasicSyntaxExample {

    public static void main(String[] args) {
        // 变量声明与初始化
        int number = 10;
        double pi = 3.14159;
        boolean isJavaFun = true;
        char grade = 'A';
        String message = "Hello, Java!";

        // 运算符使用
        int sum = number + 5; // 加法运算
        double product = pi * 2; // 乘法运算
        boolean isGreater = number > 5; // 关系运算
        boolean isTrue = isJavaFun && (grade == 'A'); // 逻辑运算

        // 输出结果
        System.out.println("Number: " + number);
        System.out.println("Sum: " + sum);
        System.out.println("Product: " + product);
        System.out.println("Is number greater than 5: " + isGreater);
        System.out.println("Is Java fun and grade A: " + isTrue);
        System.out.println("Message: " + message);

        // 控制语句
        if (isJavaFun) {
            System.out.println("Java is fun!");
        } else {
            System.out.println("Java is not fun.");
        }

        switch (grade) {
            case 'A':
                System.out.println("Excellent!");
                break;
            case 'B':
                System.out.println("Good!");
                break;
            case 'C':
                System.out.println("Fair");
                break;
            default:
                System.out.println("Invalid grade");
        }

        // 循环语句
        for (int i = 0; i < 5; i++) {
            System.out.println("For loop iteration: " + i);
        }

        int count = 0;
        while (count < 5) {
            System.out.println("While loop iteration: " + count);
            count++;
        }

        int n = 0;
        do {
            System.out.println("Do-while loop iteration: " + n);
            n++;
        } while (n < 5);

        // 跳转语句
        for (int i = 0; i < 10; i++) {
            if (i == 5) {
                break; // 跳出循环
            }
            System.out.println("Break example: " + i);
        }

        for (int i = 0; i < 10; i++) {
            if (i % 2 == 0) {
                continue; // 跳过当前循环的剩余部分
            }
            System.out.println("Continue example: " + i);
        }
    }
}


标签
基础语法

© 著作权归作者所有

本文由 趣代码Blog 创作,采用 知识共享署名4.0 国际许可协议进行许可,本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。

评论关闭