Java学习笔记1——编程基础

news2025/5/20 5:11:34

一、整数类型变量

注意:每个字符型常量占两个字节 

二、自动类型转换和强制类型转换 

 ​​​三、算术运算符

四、赋值运算符

 五、比较运算符

 六、逻辑运算符

 七、运算符的优先级

运算符的优先级可以通过以下口诀来记忆:

括号优先,单目次之,乘除先于加减,移位关系逻辑,三目赋值最后。

详细解释

  1. 括号优先:括号内的运算总是最先执行。

  2. 单目次之:单目运算符(如 +-!~++--)优先级较高。

  3. 乘除先于加减*/% 的优先级高于 +-

  4. 移位运算符<<>>>>> 的优先级高于关系运算符。

  5. 关系运算符<><=>===!= 的优先级高于逻辑运算符。

  6. 逻辑运算符&|^ 的优先级高于三目运算符。

  7. 三目运算符? : 的优先级高于赋值运算符。

  8. 赋值最后=+=-= 等赋值运算符优先级最低。

逻辑运算符的优先级划分

以下是逻辑运算符的优先级顺序,从高到低排列:

  1. 逻辑非 (!)
    优先级最高,用于对布尔值取反。

  2. 按位与 (&)
    优先级次之,用于按位与操作。

  3. 按位异或 (^)
    优先级低于 &,用于按位异或操作。

  4. 按位或 (|)
    优先级低于 ^,用于按位或操作。

  5. 短路与 (&&)
    优先级低于 |,用于短路与操作(仅当第一个操作数为 true 时,才会计算第二个操作数)。

  6. 短路或 (||)
    优先级最低,用于短路或操作(仅当第一个操作数为 false 时,才会计算第二个操作数)。

总结优先级顺序:

! > & > ^ > | > && > || 

注意事项

  • 短路运算符(&&|| 的特点是,它们会根据第一个操作数的值决定是否计算第二个操作数。例如:

    • a && b:如果 afalse,则不会计算 b,直接返回 false

    • a || b:如果 atrue,则不会计算 b,直接返回 true

  • 按位运算符(&|^ 会计算两个操作数的所有位,而不会短路。

八、if……else……条件语句 

在 Java 中,if...else 是一种条件选择语句,用于根据条件的真假来执行不同的代码块。以下是 if...else 语句的详细介绍和用法:

1、if...else 语句的基本结构如下:
if (条件) {
    // 条件为 true 时执行的代码块
} else {
    // 条件为 false 时执行的代码块
}
  • 条件 是一个布尔表达式(返回 truefalse)。

  • 如果条件为 true,则执行 if 后的代码块。

  • 如果条件为 false,则执行 else 后的代码块。

2、if...else if...else 多分支结构

当需要根据多个条件进行判断时,可以使用 if...else if...else 结构:

if (条件1) {
    // 条件1 为 true 时执行的代码块
} else if (条件2) {
    // 条件2 为 true 时执行的代码块
} else if (条件3) {
    // 条件3 为 true 时执行的代码块
} else {
    // 所有条件都不满足时执行的代码块
}
  • 程序会从上到下依次检查每个条件,一旦某个条件为 true,就执行对应的代码块,并跳过后续的条件检查。

  • 如果所有条件都不满足,则执行 else 后的代码块。

3、 嵌套的 if...else

if...else 语句可以嵌套使用,即在一个 if...else 块中再包含另一个 if...else 语句。

4、 注意事项
  1. 条件必须是布尔表达式
    if 后的括号中必须是一个返回 truefalse 的表达式,不能是其他类型(如整数)。

  2. 大括号 {} 的使用

    • 如果 ifelse 后的代码块只有一行,可以省略大括号。

    • 但为了代码的可读性和避免潜在错误,建议始终使用大括号。

  3. 缩进和代码格式

    • 为了提高代码的可读性,建议使用适当的缩进。

5、 总结

if...else 语句是 Java 中最基本的条件判断语句,用于根据条件的真假执行不同的代码块。它支持单分支(if)、双分支(if...else)和多分支(if...else if...else)结构,还可以嵌套使用以处理更复杂的逻辑。

 九、三元运算符

在 Java 中,三元运算符(也称为条件运算符)是一种简洁的条件表达式,用于根据条件的真假返回不同的值。它的语法结构非常紧凑,适合在简单的条件判断中使用。

三元运算符的语法

条件表达式 ? 表达式1 : 表达式2
  • 条件表达式:一个返回 truefalse 的布尔表达式。

  • 表达式1:当条件表达式为 true 时,返回的值。

  • 表达式2:当条件表达式为 false 时,返回的值。

三元运算符的返回值

        三元运算符会根据条件表达式的值返回 表达式1表达式2 的值。返回值的类型由 表达式1表达式2 的类型决定。

三元运算符的优缺点

  • 优点

    • 代码简洁,适合简单的条件判断。

    • 可以在一行代码中完成条件判断和赋值。

  • 缺点

    • 当嵌套使用时,代码可读性会降低。

    • 对于复杂的逻辑,建议使用 if...else 结构以提高可读性。

 十、switch条件语句

在 Java 中,switch 是一种条件语句,用于根据变量的值执行不同的代码块。它提供了一种比 if...else 更清晰的方式来处理多个条件分支。以下是 switch 语句的详细介绍和用法。

1. 基本语法

switch 语句的基本结构如下:

switch (表达式) {
    case 值1:
        // 当表达式等于值1时执行的代码块
        break;
    case 值2:
        // 当表达式等于值2时执行的代码块
        break;
    ...
    default:
        // 当表达式不匹配任何case时执行的代码块
}
  • 表达式switch 后的括号中是一个表达式,其值用于匹配 case 后的值。

  • case:每个 case 后跟一个值,表示一个分支条件。

  • break用于终止当前分支,避免代码继续向下执行(即避免“贯穿”到下一个 case)。

  • default:可选分支,当表达式的值不匹配任何 case 时执行。

2. 支持的数据类型

switch 语句支持以下数据类型:

  • intchar(基本数据类型)

  • String(从 Java 7 开始支持)

  • 枚举类型(enum

注意:C语言中switch不支持字符串

3、示例: 
String 类型的 switch(Java 7 及以上)
String fruit = "apple";
switch (fruit) {
    case "apple":
        System.out.println("这是一个苹果");
        break;
    case "banana":
        System.out.println("这是一个香蕉");
        break;
    case "orange":
        System.out.println("这是一个橙子");
        break;
    default:
        System.out.println("未知水果");
}
// 输出:这是一个苹果
 嵌套的 switch

switch 语句可以嵌套使用,即在一个 switch 块中再包含另一个 switch 语句。

int day = 3;
String time = "morning";

switch (day) {
    case 1:
        switch (time) {
            case "morning":
                System.out.println("周一早上");
                break;
            case "afternoon":
                System.out.println("周一下午");
                break;
            case "evening":
                System.out.println("周日晚上");
                break;
        }
        break;
    case 2:
        System.out.println("周二");
        break;
    default:
        System.out.println("其他时间");
}
4、注意事项

break 的重要性

  • 如果没有 break,程序会继续执行下一个 case 的代码,直到遇到 breakswitch 结束。
  • 这种行为称为 贯穿(fall-through),通常需要避免,除非是故意设计的逻辑。

default 是可选的

  • 如果没有 default 分支,当表达式的值不匹配任何 case 时,switch 语句不会执行任何代码。

case 的顺序

  • case 的顺序会影响程序的执行结果,因为 switch 会从上到下依次检查每个 case

switch 的性能

  • switch 语句的执行效率通常高于多个 if...else 语句,尤其是在分支较多的情况下。

 

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

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

相关文章

微服务核心知识点深度解析:从组件到架构设计

微服务核心知识点深度解析&#xff1a;从组件到架构设计 微服务核心知识点深度解析&#xff1a;从组件到架构设计一、Spring Cloud 5 大核心组件详解二、服务注册与发现&#xff1a;微服务的 “通讯录”概念解析Spring Cloud 中的实现 三、Nacos&#xff1a;不止是注册中心核心…

SpringBoot3+EasyExcel通过WriteHandler动态实现表头重命名

方案简介 为了通过 EasyExcel 实现动态表头重命名&#xff0c;可以封装一个方法&#xff0c;传入动态的新表头名称列表&#xff08;List<String>&#xff09;&#xff0c;并结合 WriteHandler 接口来重命名表头。同时&#xff0c;通过 EasyExcel 将数据直接写入到输出流…

Python小练习系列 Vol.11:回文数筛选(filter + 字符串反转)

&#x1f9e0; Python小练习系列 Vol.11&#xff1a;回文数筛选&#xff08;filter 字符串反转&#xff09; &#x1f50d; 本期我们用 Python 的 filter() 函数结合字符串反转技巧&#xff0c;一行代码搞定“回文数”的判断与筛选&#xff01; &#x1f9e9; 一、题目描述 回…

BUUCTF-web刷题篇(5)

13.upload1 文件上传漏洞&#xff08;上传图片&#xff09; 按照传统方法&#xff0c;新建文件&#xff08;xinjian&#xff09;写一句话木马&#xff0c;利用Windows文件后缀识别的特点&#xff0c;将后缀名改为图片后缀名(xinjian.jpg)&#xff0c;上传文件&#xff0c;抓包…

NestJS——创建项目、编写User模块

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;正逐渐往全干发展 &#x1f4c3;个人状态&#xff1a; 研发工程师&#xff0c;现效力于中国工业软件事业 &#x1f680;人生格言&#xff1a; 积跬步…

《Python Web部署应知应会》No2:如何基于FastAPI 和 OLLAMA 架构实现高并发 AI 推理服务

《Python Web部署应知应会》No2&#xff1a;如何基于FastAPI 和 OLLAMA 架构实现高并发 AI 推理服务&#xff08;上&#xff09; 摘要&#xff1a; 在 FastAPI 和 OLLAMA 架构中实现高并发 AI 推理服务&#xff0c;并优化性能指标采集和缓存策略&#xff0c;可以充分利用 asy…

NUUO摄像头debugging_center_utils命令执行漏洞

免责声明&#xff1a;本号提供的网络安全信息仅供参考&#xff0c;不构成专业建议。作者不对任何由于使用本文信息而导致的直接或间接损害承担责任。如涉及侵权&#xff0c;请及时与我联系&#xff0c;我将尽快处理并删除相关内容。 漏洞描述 NUUO NVR是中国台湾省NUUO公司旗…

2.pycharm部署Ai - 编程好助手

一、pycharm安装continue插件 1.提前安装好pycharm&#xff0c;并双击打开 2.File – Setting 3.Plugins – 搜索Continue &#xff0c; 点击Install安装 4.点ok 二、获取硅基流动API 1.登入网站&#xff1a;https://siliconflow.cn/zh-cn/#/&#xff0c;并注册登入 2.获取AP…

uniapp + Axios + 小程序封装网络请求

前言 小程序自带的网络请求使用起来比较麻烦&#xff0c;不便于管理&#xff0c;就需要封装网络请求&#xff0c;减少繁琐步骤&#xff0c;封装最终效果&#xff0c;根据类别将网络请求封装在文件中&#xff0c;使用得时候调用文件名名称加文件中得自定义名称&#xff0c;就可…

初始数据库--MySQL

一&#xff0c;数据库&#xff08;DataBase&#xff09;概述 思考程序开发中数据存储问题&#xff1f; 变量 int c 10; 对象{名字&#xff0c;价格&#xff0c;颜色} 集合类-->对象 以上方式存储数据都是在内存中存储 程序运行结束后数据都释放了 …

ENSP学习day12

链路聚合–LACP&#xff08;Link Aggregation Control Protocol&#xff09; 链路聚合是指将多条物理链路通过一种技术进行绑定&#xff0c;从而形成一个逻辑上更高带宽、更可靠的链路。这种技术能够提高网络传输速率和可靠性&#xff0c;同时实现负载均衡。链路聚合可以在不同…

C++中ShellExecute函数使用方法说明,如果一开始参数为隐藏,后面还能再显示出来吗

文章目录 一、ShellExecute基础用法函数原型关键参数 nShowCmd示例代码&#xff1a;启动程序并隐藏窗口 二、隐藏后能否重新显示窗口直接答案 三、实现隐藏后显示窗口的步骤1. 获取目标窗口句柄2. 显示窗口 四、完整流程示例五、注意事项六、总结 在C中使用ShellExecute函数时&…

MySQL数据库精研之旅第五期:CRUD的趣味探索(上)

专栏&#xff1a;MySQL数据库成长记 个人主页&#xff1a;手握风云 目录 一、CRUD简介 二、Create新增 2.1. 语法 2.2. 示例 三、Retrieve检索 3.1. 语法 3.2. 示例 一、CRUD简介 CURD是对数据库中的记录进行基本的增删改查操作&#xff1a;Create(创建)、Retrieve(检索…

【文件上传】✈️大文件的上传服务器的简单实现

&#x1f4a5;&#x1f4a5;✈️✈️欢迎阅读本文章❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;本篇文章阅读大约耗时五分钟。 ⛳️motto&#xff1a;不积跬步、无以千里 &#x1f4cb;&#x1f4cb;&#x1f4cb;本文目录如下&#xff1a;&#x1f381;&#x1f381;&a…

Windows DOS窗口12个命令

DOS 命令是指在 Windows 命令提示符&#xff08;CMD&#xff09;中使用的命令行工具&#xff0c;源于早期的 Disk Operating System。虽然现代 Windows 系统更多使用图形界面&#xff0c;但命令提示符仍然是测试人员的重要工具。测试人员通常需要执行文件操作、测试网络连接、监…

AI加Python的文本数据情感分析流程效果展示与代码实现

本文所使用数据来自于梯田景区评价数据。 一、数据预处理 数据清洗 去除重复值、空值及无关字符(如表情符号、特殊符号等)。 提取中文文本,过滤非中文字符。 统一文本格式(如全角转半角、繁体转简体)。 中文分词与去停用词 使用 jieba 分词工具进行分词。 加载自定义词…

docker启动nacos+redis+seata

docker启动nacos 最新版本的nacos需要再启动的时候设置mysql的一些属性&#xff0c;【也可以先启动nacos&#xff0c;再到配置文件中找到application.yml设置mysql的一些属性】。 1.如果直接启动nacos设置的mysql我们需要确定两个容器的ip都是一样的。 查看mysql容器中的ip命令…

从 select 到 epoll:拆解 I/O 多路复用的演进与实战

目录 一、引言&#xff1a;为什么需要 I/O 多路复用&#xff1f; 二、select 1.函数介绍 2.原理 3.样例代码 4.优缺点总结 三、poll 1.函数介绍 2.样例代码 3.优缺点总结 四、epoll 1.函数介绍 2.原理 3.LT和ET两种工作模式 4.优缺点总结 五、核心机制对比&…

【力扣hot100题】(017)矩阵置零

还是挺简单的&#xff0c;使用哈希表记录需要置换的行列即可&#xff0c;这样就可以避免重复节省时间。 class Solution { public:void setZeroes(vector<vector<int>>& matrix) {unordered_set<int> row;unordered_set<int> line;for(int i0;i&l…

One Commander 3,文件管理新体验

One Commander 3 是一款集多功能于一体 Windows 10/11的文件管理工具&#xff0c;其设计目的在于为用户带来多元化的操作体验。这款工具通过支持多栏界面布局&#xff0c;让用户能够迅速且高效地组织和管理文件。此外&#xff0c;它还提供了多主题选项和多种图标集&#xff0c;…