Java学习第二部分——基础语法

目录

 一.数据类型

(一)数值类型(用于存储数字,包括整数和浮点数)

1. **整数类型**

2. **浮点类型**

(二)非数值类型(非数值类型用于存储非数字数据)

1. **char**

2. **boolean**

二.变量与常量

No.1 变量(是存储数据的容器,用于在程序运行过程中存储和操作数据)

(一)变量的声明

(二)变量的初始化

(三)变量的使用

(四)变量的作用域

No.2 常量(是值不能改变的量,用于存储固定不变的数据)

(一)常量的声明

(二)常量的特点

(三)常量的作用

No.3 示例代码

No.4 变量和常量的命名规则

三.运算符

 (一)算术运算符(用于执行基本的数学运算)

(二)比较运算符(用于比较两个值的大小,结果为布尔值即true 或 false)

(三)逻辑运算符(用于组合多个条件,结果为布尔值)

(四)位运算符(用于对整数的二进制位进行操作)

(五)赋值运算符(用于将值赋给变量,也可以与其他运算符结合使用)

(六)条件运算符或三元运算符(用于根据条件选择两个值中的一个)

(七)示例代码

四.控制流程语句

 (一)条件语句(用于根据条件的真假来决定是否执行某些代码块)

1.if语句

2.if-else语句

3.if-else if-else语句

4.switch语句

(二)循环语句(用于重复执行某段代码,直到满足某个条件为止)

1.for循环(用于循环次数已知的情况)

2.while循环(先判断条件,条件为真时执行循环体)

3.do-while循环(先执行一次循环体,然后再判断条件)

(三)跳转语句(用于在循环中控制程序的执行流程)

1.break语句(用于终止循环或switch语句)

2.continue语句(用于跳过当前循环的剩余部分,继续执行下一次循环)

3.return语句(用于从方法中返回值,也可以用于终止方法的执行)

(四)示例代码


 一.数据类型

(一)数值类型(用于存储数字,包括整数和浮点数)

1. **整数类型**


   - **byte**
     - **大小**:1 个字节(8 位)
     - **范围**:-128 到 127
     - **特点**:占用内存空间小,适合存储小范围的整数数据。例如,`byte b = 100;`。
   - **short**
     - **大小**:2 个字节(16 位)
     - **范围**:-32768 到 32767
     - **特点**:比 `byte` 类型范围大,但仍比 `int` 类型小,适用于存储中等范围的整数数据。例如,`short s = 30000;`。
   - **int**
     - **大小**:4 个字节(32 位)
     - **范围**:-2147483648 到 2147483647
     - **特点**:这是最常用的一种整数类型,范围足够大,适用于大多数整数运算。例如,`int i = 1000000;`。
   - **long**
     - **大小**:8 个字节(64 位)
     - **范围**:-9223372036854775808 到 9223372036854775807
     - **特点**:用于存储非常大的整数,例如在处理大数字运算或时间戳等场景。定义时需要在数值后面加上“L”或“l”,如 `long l = 123456789012345L;`。

2. **浮点类型**


   - **float**
     - **大小**:4 个字节(32 位)
     - **特点**:用于存储单精度浮点数,精度较低,但占用内存空间较小。定义时需要在数值后面加上“f”或“F”,如 `float f = 3.14f;`。
   - **double**
     - **大小**:8 个字节(64 位)
     - **特点**:用于存储双精度浮点数,精度高,是浮点数运算的默认类型。例如,`double d = 3.1415926;`。

(二)非数值类型(非数值类型用于存储非数字数据)

1. **char**


   - **大小**:2 个字节(16 位)
   - **特点**:用于存储单个字符,采用 Unicode 编码。字符需要用单引号括起来,如 `char c = 'A';`。


2. **boolean**


   - **大小**:通常认为占用 1 个字节(实际大小取决于 JVM 实现)
   - **特点**:用于存储布尔值,只有两个可能的值:`true` 和 `false`。常用于条件判断,如 `boolean isTrue = true;`。

二.变量与常量

No.1 变量(是存储数据的容器,用于在程序运行过程中存储和操作数据)

(一)变量的声明


数据类型 变量名;
例如:
int age;
double salary;

(二)变量的初始化


数据类型 变量名 = 初始值;
例如:
int age = 25;
double salary = 5000.5;

(三)变量的使用


变量可以在程序中被赋值、读取和修改。
age = 30; // 修改变量值
System.out.println(age); // 输出变量值

(四)变量的作用域


变量的作用域是指变量可以被访问的范围。
- **局部变量**:在方法或代码块中声明,只能在该方法或代码块中使用。
- **成员变量**:在类中声明,属于类的实例,可以在整个类中使用。
- **类变量(静态变量)**:在类中声明,使用 `static` 关键字修饰,属于类本身,可以通过类名访问。

No.2 常量(是值不能改变的量,用于存储固定不变的数据)

(一)常量的声明


常量使用 `final` 关键字声明。
final 数据类型 常量名 = 常量值;
例如:
final double PI = 3.14159;

(二)常量的特点


- 常量的值在声明后不能修改。
- 常量名通常使用大写字母,单词之间用下划线分隔,以提高可读性。

(三)常量的作用


- **提高代码可读性**:使用常量名代替具体的值,使代码更易理解。
- **避免硬编码**:减少代码中直接出现的固定值,便于维护和修改。

No.3 示例代码

public class VariableAndConstantExample {
    // 类变量(静态变量)
    static final double PI = 3.14159;

    // 成员变量
    int radius;

    public static void main(String[] args) {
        // 局部变量
        int age = 25;

        // 使用局部变量
        System.out.println("Age: " + age);

        // 创建对象并使用成员变量
        VariableAndConstantExample example = new VariableAndConstantExample();
        example.radius = 5;

        // 使用类变量
        double circumference = 2 * PI * example.radius;
        System.out.println("Circumference: " + circumference);
    }
}

No.4 变量和常量的命名规则

- **变量名和常量名**:
  - 不能以数字开头
  - 只能包含字母、数字、下划线(_)和美元符号($)
  - 是大小写敏感的
- **变量名**:
  - 通常使用小写字母开头,单词之间用驼峰命名法(如 `myVariableName`)
- **常量名**:
  - 通常使用大写字母,单词之间用下划线分隔(如 `MY_CONSTANT_NAME`)

三.运算符

 (一)算术运算符(用于执行基本的数学运算)

| 运算符 | 描述                     | 示例             | 结果         |
|--------|--------------------------|------------------|--------------|
| `+`    | 加法                     | `a + b`          | `5 + 3 = 8`  |
| `-`    | 减法                     | `a - b`          | `5 - 3 = 2`  |
| `*`    | 乘法                     | `a * b`          | `5 * 3 = 15` |
| `/`    | 除法                     | `a / b`          | `5 / 3 = 1`  |
| `%`    | 取模(求余)             | `a % b`          | `5 % 3 = 2`  |
| `++`   | 自增(加1)              | `a++` 或 `++a`   | `a = a + 1`  |
| `--`   | 自减(减1)              | `a--` 或 `--a`   | `a = a - 1`  |

(二)比较运算符(用于比较两个值的大小,结果为布尔值即true 或 false)

| 运算符 | 描述                     | 示例             | 结果         |
|--------|--------------------------|------------------|--------------|
| `==`   | 等于                     | `a == b`         | `5 == 3` → `false` |
| `!=`   | 不等于                   | `a != b`         | `5 != 3` → `true`  |
| `>`    | 大于                     | `a > b`          | `5 > 3` → `true`   |
| `>=`   | 大于等于                 | `a >= b`         | `5 >= 3` → `true`  |
| `<`    | 小于                     | `a < b`          | `5 < 3` → `false`  |
| `<=`   | 小于等于                 | `a <= b`         | `5 <= 3` → `false` |

(三)逻辑运算符(用于组合多个条件,结果为布尔值)

| 运算符 | 描述                     | 示例                         | 结果         |
|--------|--------------------------|-----------------------------|--------------|
| `&&`   | 逻辑与(AND)            | `a > 0 && b < 10`           | `true && false` → `false` |
| `||`   | 逻辑或(OR)             | `a > 0 || b < 10`           | `true || false` → `true`  |
| `!`    | 逻辑非(NOT)            | `!(a > 0)`                   | `!true` → `false`        |

(四)位运算符(用于对整数的二进制位进行操作)

| 运算符 | 描述                     | 示例             | 结果         |
|--------|--------------------------|------------------|--------------|
| `&`    | 位与                     | `a & b`          | `5 & 3 = 1`  |
| `|`    | 位或                     | `a | b`          | `5 | 3 = 7`   |
| `^`    | 位异或                   | `a ^ b`          | `5 ^ 3 = 6`  |
| `~`    | 位非                     | `~a`             | `~5 = -6`    |
| `<<`   | 左移                     | `a << 2`         | `5 << 2 = 20`|
| `>>`   | 右移(符号位填充)       | `a >> 2`         | `5 >> 2 = 1` |
| `>>>`  | 无符号右移(零填充)     | `a >>> 2`        | `5 >>> 2 = 1`|

(五)赋值运算符(用于将值赋给变量,也可以与其他运算符结合使用)

| 运算符 | 描述                     | 示例             | 等价于       |
|--------|--------------------------|------------------|--------------|
| `=`    | 简单赋值                 | `a = b`          | `a = b`      |
| `+=`   | 加法赋值                 | `a += b`         | `a = a + b`  |
| `-=`   | 减法赋值                 | `a -= b`         | `a = a - b`  |
| `*=`   | 乘法赋值                 | `a *= b`         | `a = a * b`  |
| `/=`   | 除法赋值                 | `a /= b`         | `a = a / b`  |
| `%=`   | 取模赋值                 | `a %= b`         | `a = a % b`  |
| `&=`   | 位与赋值                 | `a &= b`         | `a = a & b`  |
| `|=`   | 位或赋值                 | `a |= b`         | `a = a | b`  |
| `^=`   | 位异或赋值               | `a ^= b`         | `a = a ^ b`  |
| `<<=`  | 左移赋值                 | `a <<= 2`        | `a = a << 2` |
| `>>=`  | 右移赋值                 | `a >>= 2`        | `a = a >> 2` |
| `>>>=` | 无符号右移赋值           | `a >>>= 2`       | `a = a >>> 2`|

(六)条件运算符或三元运算符(用于根据条件选择两个值中的一个)

| 运算符 | 描述                     | 示例                         | 结果         |
|--------|--------------------------|-----------------------------|--------------|
| `? :`  | 条件运算符               | `a > b ? x : y`             | `5 > 3 ? 10 : 20` → `10`    |

(七)示例代码

public class OperatorExample {
    public static void main(String[] args) {
        int a = 5;
        int b = 3;

        // 算术运算符
        System.out.println("a + b = " + (a + b)); // 8
        System.out.println("a - b = " + (a - b)); // 2
        System.out.println("a * b = " + (a * b)); // 15
        System.out.println("a / b = " + (a / b)); // 1
        System.out.println("a % b = " + (a % b)); // 2

        // 比较运算符
        System.out.println("a == b: " + (a == b)); // false
        System.out.println("a != b: " + (a != b)); // true
        System.out.println("a > b: " + (a > b));   // true
        System.out.println("a >= b: " + (a >= b)); // true
        System.out.println("a < b: " + (a < b));   // false
        System.out.println("a <= b: " + (a <= b)); // false

        // 逻辑运算符
        System.out.println("a > 0 && b < 10: " + (a > 0 && b < 10)); // true
        System.out.println("a > 0 || b < 10: " + (a > 0 || b < 10)); // true
        System.out.println("!(a > 0): " + !(a > 0)); // false

        // 位运算符
        System.out.println("a & b = " + (a & b)); // 1
        System.out.println("a | b = " + (a | b)); // 7
        System.out.println("a ^ b = " + (a ^ b)); // 6
        System.out.println("~a = " + (~a));       // -6
        System.out.println("a << 2 = " + (a << 2)); // 20
        System.out.println("a >> 2 = " + (a >> 2)); // 1
        System.out.println("a >>> 2 = " + (a >>> 2)); // 1

        // 赋值运算符
        a += b;
        System.out.println("a += b: " + a);

四.控制流程语句

 (一)条件语句(用于根据条件的真假来决定是否执行某些代码块)

1.if语句


if (条件) {
    // 条件为 true 时执行的代码块
}
示例:
int age = 18;
if (age >= 18) {
    System.out.println("成年人");
}


2.if-else语句


if (条件) {
    // 条件为 true 时执行的代码块
} else {
    // 条件为 false 时执行的代码块
}
示例:
int age = 16;
if (age >= 18) {
    System.out.println("成年人");
} else {
    System.out.println("未成年人");
}

3.if-else if-else语句


if (条件1) {
    // 条件1为 true 时执行的代码块
} else if (条件2) {
    // 条件2为 true 时执行的代码块
} else {
    // 所有条件都不满足时执行的代码块
}
```
示例:
int score = 85;
if (score >= 90) {
    System.out.println("优秀");
} else if (score >= 70) {
    System.out.println("良好");
} else if (score >= 60) {
    System.out.println("及格");
} else {
    System.out.println("不及格");
}

4.switch语句


switch (变量) {
    case 值1:
        // 变量等于值1时执行的代码块
        break;
    case 值2:
        // 变量等于值2时执行的代码块
        break;
    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("其他");
}

(二)循环语句(用于重复执行某段代码,直到满足某个条件为止)

1.for循环(用于循环次数已知的情况)


for (初始化; 条件; 更新) {
    // 循环体
}
示例:
for (int i = 0; i < 5; i++) {
    System.out.println("循环次数:" + i);
}

2.while循环(先判断条件,条件为真时执行循环体)


while (条件) {
    // 循环体
}
示例:
int count = 0;
while (count < 5) {
    System.out.println("while 循环次数:" + count);
    count++;
}

3.do-while循环(先执行一次循环体,然后再判断条件)


do {
    // 循环体
} while (条件);
示例:
int num = 0;
do {
    System.out.println("do-while 循环次数:" + num);
    num++;
} while (num < 3);

(三)跳转语句(用于在循环中控制程序的执行流程)

1.break语句(用于终止循环或switch语句)


for (int i = 0; i < 10; i++) {
    if (i == 5) {
        break; // 终止循环
    }
    System.out.println("循环次数:" + i);
}

2.continue语句(用于跳过当前循环的剩余部分,继续执行下一次循环)


for (int i = 0; i < 10; i++) {
    if (i % 2 == 0) {
        continue; // 跳过偶数
    }
    System.out.println("循环次数:" + i);
}

3.return语句(用于从方法中返回值,也可以用于终止方法的执行)

public int add(int a, int b) {
    return a + b; // 返回结果
}

(四)示例代码

public class ControlFlowExample {
    public static void main(String[] args) {
        // 条件语句
        int age = 18;
        if (age >= 18) {
            System.out.println("成年人");
        } else {
            System.out.println("未成年人");
        }

        // switch 语句
        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("其他");
        }

        // for 循环
        for (int i = 0; i < 5; i++) {
            System.out.println("for 循环次数:" + i);
        }

        // while 循环
        int count = 0;
        while (count < 5) {
            System.out.println("while 循环次数:" + count);
            count++;
        }

        // do-while 循环
        int num = 0;
        do {
            System.out.println("do-while 循环次数:" + num);
            num++;
        } while (num < 3);

        // break 语句
        for (int i = 0; i < 10; i++) {
            if (i == 5) {
                break; // 终止循环
            }
            System.out.println("break 循环次数:" + i);
        }

        // continue 语句
        for (int i = 0; i < 10; i++) {
            if (i % 2 == 0) {
                continue; // 跳过偶数
            }
            System.out.println("continue 循环次数:" + i);
        }
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/912579.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/912579.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis分布式锁核心原理源码

文章目录 概述一、Redis实现分布式锁1.1、第一版1.2、第二版1.3、第三版1.3、第四版 二、Redisson实现分布式锁核心源码分析2.1、加锁核心源码2.2、锁续期核心源码2.3、重试机制核心源码2.4、解锁核心源码 总结 概述 传统的单机锁&#xff08;Synchronized&#xff0c;Reentran…

关于vue2使用elform的rules校验

在使用vue2开发项目的时候使用element组件的el-form大多数情况都需要用到必填项校验 举个栗子&#xff1a; <el-form :model"ruleForm" :rules"rules" ref"ruleForm" label-width"100px" class"demo-ruleForm"><e…

langchain从入门到精通(二十六)——RAG优化策略(四)问题分解策略提升负责问题检索准确率

1. LangChain 少量示例提示模板 在与 LLM 的对话中&#xff0c;提供少量的示例被称为 少量示例&#xff0c;这是一种简单但强大的指导生成的方式&#xff0c;在某些情况下可以显著提高模型性能&#xff08;与之对应的是零样本&#xff09;&#xff0c;少量示例可以降低 Prompt…

Nuxt.js基础(Tailwind基础)

​​1. 按钮组件实现​​ ​​传统 CSS <!-- HTML --> <button class"btn-primary">提交</button><!-- CSS --> <style>.btn-primary {background-color: #3490dc;padding: 0.5rem 1rem;border-radius: 0.25rem;color: white;transi…

[C语言]存储结构详解

C语言存储结构总结 在C语言中&#xff0c;数据根据其类型和声明方式被存储在不同的内存区域。以下是各类数据存储位置的详细总结&#xff1a; 内存五大分区 存储区存储内容生命周期特点代码区(.text)程序代码(机器指令)整个程序运行期只读常量区(.rodata)字符串常量、const全…

【实战】 容器中Spring boot项目 Graphics2D 画图中文乱码解决方案

场景 架构&#xff1a;spring boot 容器技术&#xff1a;docker 服务器&#xff1a;阿里云 开发环境&#xff1a;windows10 IDEA 一、问题 服务器中出现Graphics2D 画图中文乱码 本地环境运行正常 二、原因 spring boot 容器中没有安装中文字体 三、解决方案 安装字体即可 …

深入浅出:Vue2 数据劫持原理剖析

目录 一、什么是数据劫持&#xff1f; 二、核心 API&#xff1a;Object.defineProperty 三、Vue2 中的数据劫持实现 1. 对象属性的劫持 2. 嵌套对象的处理 3. 数组的特殊处理 四、结合依赖收集的完整流程 五、数据劫持的局限性 六、Vue3 的改进方案 总结 一、什么是数…

数据湖 vs 数据仓库:数据界的“自来水厂”与“瓶装水厂”?

数据湖 vs 数据仓库&#xff1a;数据界的“自来水厂”与“瓶装水厂”&#xff1f; 说起“数据湖”和“数据仓库”&#xff0c;很多刚入行的朋友都会觉得&#xff1a; “听起来好高大上啊&#xff01;但到底有啥区别啊&#xff1f;是湖更大还是仓库更高端&#xff1f;” 我得说…

Node.js-path模块

Path 模块 path 模块提供了 操作路径 的功能&#xff0c;我们将介绍如下几个较为常用的几个 API ​​path.resolve([…paths]) 将路径片段​​解析为绝对路径​​&#xff08;从右向左拼接&#xff0c;遇到绝对路径停止&#xff09; // 若参数为空&#xff0c;返回当前工作目…

Java面试题029:一文深入了解MySQL(1)

欢迎大家关注我的专栏,该专栏会持续更新,从原理角度覆盖Java知识体系的方方面面。 一文吃透JAVA知识体系(面试题)https://blog.csdn.net/wuxinyan123/category_7521898.html?fromshare=blogcolumn&sharetype=blogcolumn&sharerId=7521898&

vue3.0所采用得Composition Api与Vue2.XOtions Api有什么不同?

Vue 3.0 引入的 Composition API 相较于 Vue 2.x 的 Options API 有显著的不同。下面从几个方面对比这两者的差异&#xff1a; ✅ 1. 代码组织方式不同 Vue 2.x — Options API 使用 data、methods、computed、watch 等分散的选项组织逻辑。 每个功能点分散在不同的选项中&am…

【IP 潮玩行业深度研究与学习】

潮玩行业发展趋势分析&#xff1a;全球市场格局与中国政策支持体系 潮玩产业正经历从"小众收藏"到"大众情绪消费"的深刻转型&#xff0c;2025年中国潮玩市场规模已达727亿元&#xff0c;预计2026年将突破1100亿元&#xff0c;年复合增长率高达26%。这一千…

进程通信-消息队列

消息队列允许一个进程将一个消息发送到一个队列中&#xff0c;另一个进程从该队列中接收这个消息。 使用流程&#xff1a; 写端&#xff1a; 使用结构体 mq_attr 设置消息队列属性&#xff0c;有四个选项&#xff1a; long mq_flags; // 队列属性: 0 表示阻塞 long …

串行通信接口USART,printf重定向数据发送,轮询和中断实现串口数据接收

目录 UART通信协议的介绍 实现串口数据发送 CubeMX配置 printf重定向代码编写 实现串口数据接收 轮询方式实现串口数据接收 接收单个字符 接收不定长字符串&#xff08;接收的字符串以\n结尾&#xff09; 中断方式实现串口数据接收 CubeMX配置 UART中断方式接收数据…

Kafka 生产者和消费者高级用法

Kafka 生产者和消费者高级用法 1 生产者的事务支持 Kafka 从版本0.11开始引入了事务支持&#xff0c;使得生产者可以实现原子操作&#xff0c;确保消息的可靠性。 // 示例代码&#xff1a;使用 Kafka 事务 producer.initTransactions(); try {producer.beginTransaction();pr…

k8s中crictl命令常报错解决方法

解决使用crictl命令时报默认端点弃用的报错 报错核心原因 默认端点弃用&#xff1a; crictl 会默认尝试多个容器运行时端点&#xff08;如 dockershim.sock、containerd.sock 等&#xff09;&#xff0c;但这种 “自动探测” 方式已被 Kubernetes 弃用&#xff08;官方要求手动…

回转体水下航行器简单运动控制的奥秘:PID 控制和水动力方程的运用

在水下航行器的控制领域中&#xff0c;回转体水下航行器的运动控制是一个关键课题。 今天&#xff0c;就来深入探讨一下其简单运动控制中&#xff0c;PID 控制以及水动力方程的相关运用。 PID 控制的基本原理PID 控制&#xff08;比例 - 积分 - 微分控制&#xff09;是一种广…

从入门到精通:npm、npx、nvm 包管理工具详解及常用命令

目录 1. 引言2. npm (Node Package Manager)2.1 定义与用途2.2 常见命令2.3 使用示例 3. npx (Node Package Execute)3.1 定义与用途3.2 常见命令3.3 使用示例3.4 npm 与 npx 的区别 4. nvm (Node Version Manager)4.1 定义与用途4.2 安装 nvm4.3 常见命令4.4 使用示例 5. 工具…

es6特性-第二部分

Promise 介绍和基本使用 Promise是ES6引入的异步编程的新解决方案&#xff0c;主要用来解决回调地狱问题。语法上 Promise是一个构造函数,用来封装异步操作并可以获取其成功或失败的结果。 Promise构造函数:new Promise() Promise.prototype.then方法 Promise.prototype.ca…

java:如何用 JDBC 连接 TDSQL 数据库

要使用JDBC连接TDSQL数据库&#xff08;腾讯云分布式数据库&#xff0c;兼容MySQL协议&#xff09;&#xff0c;请按照以下步骤编写Java程序&#xff1a; 1. 添加MySQL JDBC驱动依赖 在项目的pom.xml中添加依赖&#xff08;Maven项目&#xff09;&#xff1a; <dependenc…