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



一、整数类型变量

注意:每个字符型常量占两个字节
二、自动类型转换和强制类型转换



三、算术运算符

四、赋值运算符
五、比较运算符


六、逻辑运算符



七、运算符的优先级

运算符的优先级可以通过以下口诀来记忆:
括号优先,单目次之,乘除先于加减,移位关系逻辑,三目赋值最后。
详细解释:
括号优先:括号内的运算总是最先执行。
单目次之:单目运算符(如
+、-、!、~、++、--)优先级较高。乘除先于加减:
*、/、%的优先级高于+和-。移位运算符:
<<、>>、>>>的优先级高于关系运算符。关系运算符:
<、>、<=、>=、==、!=的优先级高于逻辑运算符。逻辑运算符:
&、|、^的优先级高于三目运算符。三目运算符:
? :的优先级高于赋值运算符。赋值最后:
=、+=、-=等赋值运算符优先级最低。
逻辑运算符的优先级划分
以下是逻辑运算符的优先级顺序,从高到低排列:
逻辑非 (
!)
优先级最高,用于对布尔值取反。按位与 (
&)
优先级次之,用于按位与操作。按位异或 (
^)
优先级低于&,用于按位异或操作。按位或 (
|)
优先级低于^,用于按位或操作。短路与 (
&&)
优先级低于|,用于短路与操作(仅当第一个操作数为true时,才会计算第二个操作数)。短路或 (
||)
优先级最低,用于短路或操作(仅当第一个操作数为false时,才会计算第二个操作数)。总结优先级顺序:
! > & > ^ > | > && > ||注意事项:
短路运算符(
&&和||) 的特点是,它们会根据第一个操作数的值决定是否计算第二个操作数。例如:
a && b:如果a为false,则不会计算b,直接返回false。
a || b:如果a为true,则不会计算b,直接返回true。按位运算符(
&、|、^) 会计算两个操作数的所有位,而不会短路。
八、if……else……条件语句
在 Java 中,if...else 是一种条件选择语句,用于根据条件的真假来执行不同的代码块。以下是 if...else 语句的详细介绍和用法:
1、if...else 语句的基本结构如下:
if (条件) {// 条件为 true 时执行的代码块
} else {// 条件为 false 时执行的代码块
}
条件 是一个布尔表达式(返回
true或false)。如果条件为
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、 注意事项
条件必须是布尔表达式
if后的括号中必须是一个返回true或false的表达式,不能是其他类型(如整数)。大括号
{}的使用
如果
if或else后的代码块只有一行,可以省略大括号。但为了代码的可读性和避免潜在错误,建议始终使用大括号。
缩进和代码格式
为了提高代码的可读性,建议使用适当的缩进。
5、 总结
if...else语句是 Java 中最基本的条件判断语句,用于根据条件的真假执行不同的代码块。它支持单分支(if)、双分支(if...else)和多分支(if...else if...else)结构,还可以嵌套使用以处理更复杂的逻辑。
九、三元运算符
在 Java 中,三元运算符(也称为条件运算符)是一种简洁的条件表达式,用于根据条件的真假返回不同的值。它的语法结构非常紧凑,适合在简单的条件判断中使用。
三元运算符的语法
条件表达式 ? 表达式1 : 表达式2
条件表达式:一个返回
true或false的布尔表达式。表达式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 语句支持以下数据类型:
int和char(基本数据类型)
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的代码,直到遇到break或switch结束。- 这种行为称为 贯穿(fall-through),通常需要避免,除非是故意设计的逻辑。
default是可选的
- 如果没有
default分支,当表达式的值不匹配任何case时,switch语句不会执行任何代码。
case的顺序
case的顺序会影响程序的执行结果,因为switch会从上到下依次检查每个case。
switch的性能
switch语句的执行效率通常高于多个if...else语句,尤其是在分支较多的情况下。

相关文章:
Java学习笔记1——编程基础
一、整数类型变量 注意:每个字符型常量占两个字节 二、自动类型转换和强制类型转换 三、算术运算符 四、赋值运算符 五、比较运算符 六、逻辑运算符 七、运算符的优先级 运算符的优先级可以通过以下口诀来记忆: 括号优先,单目次之&am…...
微服务核心知识点深度解析:从组件到架构设计
微服务核心知识点深度解析:从组件到架构设计 微服务核心知识点深度解析:从组件到架构设计一、Spring Cloud 5 大核心组件详解二、服务注册与发现:微服务的 “通讯录”概念解析Spring Cloud 中的实现 三、Nacos:不止是注册中心核心…...
SpringBoot3+EasyExcel通过WriteHandler动态实现表头重命名
方案简介 为了通过 EasyExcel 实现动态表头重命名,可以封装一个方法,传入动态的新表头名称列表(List<String>),并结合 WriteHandler 接口来重命名表头。同时,通过 EasyExcel 将数据直接写入到输出流…...
Python小练习系列 Vol.11:回文数筛选(filter + 字符串反转)
🧠 Python小练习系列 Vol.11:回文数筛选(filter 字符串反转) 🔍 本期我们用 Python 的 filter() 函数结合字符串反转技巧,一行代码搞定“回文数”的判断与筛选! 🧩 一、题目描述 回…...
BUUCTF-web刷题篇(5)
13.upload1 文件上传漏洞(上传图片) 按照传统方法,新建文件(xinjian)写一句话木马,利用Windows文件后缀识别的特点,将后缀名改为图片后缀名(xinjian.jpg),上传文件,抓包…...
NestJS——创建项目、编写User模块
个人简介 👀个人主页: 前端杂货铺 🙋♂️学习方向: 主攻前端方向,正逐渐往全干发展 📃个人状态: 研发工程师,现效力于中国工业软件事业 🚀人生格言: 积跬步…...
《Python Web部署应知应会》No2:如何基于FastAPI 和 OLLAMA 架构实现高并发 AI 推理服务
《Python Web部署应知应会》No2:如何基于FastAPI 和 OLLAMA 架构实现高并发 AI 推理服务(上) 摘要: 在 FastAPI 和 OLLAMA 架构中实现高并发 AI 推理服务,并优化性能指标采集和缓存策略,可以充分利用 asy…...
NUUO摄像头debugging_center_utils命令执行漏洞
免责声明:本号提供的网络安全信息仅供参考,不构成专业建议。作者不对任何由于使用本文信息而导致的直接或间接损害承担责任。如涉及侵权,请及时与我联系,我将尽快处理并删除相关内容。 漏洞描述 NUUO NVR是中国台湾省NUUO公司旗…...
uv 命令用conda命令解释
uv:安装 | uv-zh-cn 功能 | uv-zh-cn #showkey -a 可看按键的"\eOP"转义序列是啥# 绑定快捷键 f1 到 source .venv/bin/activate函数 bind "\eOP": "source .venv/bin/activate " #conda activate# 绑定快捷键 f2 到uv add函数 …...
解决【vite-plugin-top-level-await】 插件导致的 Bindings Not Found 错误
解决【vite-plugin-top-level-await】 插件导致的 Bindings Not Found 错误 环境设置 操作系统: macOS硬件平台: M1 Pro前端框架: Vue 3Node.js 版本: 20 在使用 Vue 项目时,我们尝试集成 vite-plugin-top-level-await 插件以支持顶层 await 语法。然而ÿ…...
2.pycharm部署Ai - 编程好助手
一、pycharm安装continue插件 1.提前安装好pycharm,并双击打开 2.File – Setting 3.Plugins – 搜索Continue , 点击Install安装 4.点ok 二、获取硅基流动API 1.登入网站:https://siliconflow.cn/zh-cn/#/,并注册登入 2.获取AP…...
uniapp + Axios + 小程序封装网络请求
前言 小程序自带的网络请求使用起来比较麻烦,不便于管理,就需要封装网络请求,减少繁琐步骤,封装最终效果,根据类别将网络请求封装在文件中,使用得时候调用文件名名称加文件中得自定义名称,就可…...
初始数据库--MySQL
一,数据库(DataBase)概述 思考程序开发中数据存储问题? 变量 int c 10; 对象{名字,价格,颜色} 集合类-->对象 以上方式存储数据都是在内存中存储 程序运行结束后数据都释放了 …...
ENSP学习day12
链路聚合–LACP(Link Aggregation Control Protocol) 链路聚合是指将多条物理链路通过一种技术进行绑定,从而形成一个逻辑上更高带宽、更可靠的链路。这种技术能够提高网络传输速率和可靠性,同时实现负载均衡。链路聚合可以在不同…...
【LeetCode 题解】算法:29.两数相除
在算法的世界里,常常会出现一些打破常规、挑战思维的题目。LeetCode 第 29 题 “两数相除” 便是其中之一。这道题不仅要求我们在不能使用乘法、除法和取余运算的前提下实现两数相除,还需要处理 32 位有符号整数的溢出问题,对编程者的逻辑思维…...
打包python文件生成exe
下载PyInstaller 官网 pip install pyinstaller验证是否安装成功 pyinstaller --version打包 pyinstaller "C:\Documents and Settings\project\myscript.py"会生成.spec,build,dist三项,其中build,dist为文件夹,dist是最后的可执行文件&a…...
【NLP】13. NLP推理方法详解 --- 穷举和贪心搜索
NLP推理方法详解 — 穷举和贪心搜索 在自然语言处理(NLP)任务中,推理(Inference)是指在给定模型的情况下,找到最可能的输出序列。由于模型通常是神经网络,它会为每个可能的输出分配一个概率&am…...
Redis延时队列在订单超时未报到场景的应用分享
一、引言 在电商、医疗预约等众多业务场景中,经常会遇到需要处理超时任务的情况。比如医疗预约订单,如果患者在支付成功后,到了预约结束时间还未报到,系统需要自动取消订单。为了实现这样的功能,我们可以利用 Redis 延…...
精心整理-2024最新网络安全-信息安全全套资料(学习路线、教程笔记、工具软件、面试文档).zip
2024最新网络安全-信息安全全套资料(学习路线、教程笔记、工具软件、面试文档),视频教程文档资料共55GB。 一、网络安全-信息安全学习路线 0、网络安全-信息安全思维导图.jpg 1、网络安全大师课 V2024.pdf 2、网络安全行业白皮书.pdf 3、网络…...
多人协同进行qt应用程序开发应该注意什么?
多人协同进行Qt应用程序开发的注意事项 多人协同开发Qt应用程序时,需要注意以下几个关键方面以确保开发效率和代码质量: 1. 代码版本控制 使用Git:建立合理的分支策略(如Git Flow).gitignore配置:确保忽…...
8.4考研408简单选择排序与堆排序知识点深度解析
考研408「简单选择排序与堆排序」知识点全解析 一、简单选择排序 1.1 定义与核心思想 简单选择排序(Selection Sort)是一种选择排序算法,其核心思想是: 每趟选择:从待排序序列中选择最小(或最大&#x…...
C++中ShellExecute函数使用方法说明,如果一开始参数为隐藏,后面还能再显示出来吗
文章目录 一、ShellExecute基础用法函数原型关键参数 nShowCmd示例代码:启动程序并隐藏窗口 二、隐藏后能否重新显示窗口直接答案 三、实现隐藏后显示窗口的步骤1. 获取目标窗口句柄2. 显示窗口 四、完整流程示例五、注意事项六、总结 在C中使用ShellExecute函数时&…...
MySQL数据库精研之旅第五期:CRUD的趣味探索(上)
专栏:MySQL数据库成长记 个人主页:手握风云 目录 一、CRUD简介 二、Create新增 2.1. 语法 2.2. 示例 三、Retrieve检索 3.1. 语法 3.2. 示例 一、CRUD简介 CURD是对数据库中的记录进行基本的增删改查操作:Create(创建)、Retrieve(检索…...
【文件上传】✈️大文件的上传服务器的简单实现
💥💥✈️✈️欢迎阅读本文章❤️❤️💥💥 🏆本篇文章阅读大约耗时五分钟。 ⛳️motto:不积跬步、无以千里 📋📋📋本文目录如下:🎁🎁&a…...
Windows DOS窗口12个命令
DOS 命令是指在 Windows 命令提示符(CMD)中使用的命令行工具,源于早期的 Disk Operating System。虽然现代 Windows 系统更多使用图形界面,但命令提示符仍然是测试人员的重要工具。测试人员通常需要执行文件操作、测试网络连接、监…...
AI加Python的文本数据情感分析流程效果展示与代码实现
本文所使用数据来自于梯田景区评价数据。 一、数据预处理 数据清洗 去除重复值、空值及无关字符(如表情符号、特殊符号等)。 提取中文文本,过滤非中文字符。 统一文本格式(如全角转半角、繁体转简体)。 中文分词与去停用词 使用 jieba 分词工具进行分词。 加载自定义词…...
Go语言手动内存对齐的四大场景与实践指南
Go语言手动内存对齐的四大场景与实践指南 引言:Go的内存对齐机制 Go语言通过编译器自动处理内存对齐问题,开发者通常无需关心底层细节。然而,在特定场景下,手动干预内存对齐是避免程序崩溃或数据错乱的必要操作。本文将深入探讨G…...
PDF多表格结构识别与跨表语义对齐:基于对抗迁移的鲁棒相似度度量模型
文章目录 一. 项目结构二.流程分析2.1 批处理器核心代码解析 三. 跨页表格相似度匹配原理3.1 表头内容相似度-特征向量归一化3.2 表头内容相似度-余弦相似度3.3 定时缓存清理 ocr扫描有其局限性。对于pdf文本类型这种pdfbox,aspose-pdf,spire直接提取文本…...
docker启动nacos+redis+seata
docker启动nacos 最新版本的nacos需要再启动的时候设置mysql的一些属性,【也可以先启动nacos,再到配置文件中找到application.yml设置mysql的一些属性】。 1.如果直接启动nacos设置的mysql我们需要确定两个容器的ip都是一样的。 查看mysql容器中的ip命令…...
从 select 到 epoll:拆解 I/O 多路复用的演进与实战
目录 一、引言:为什么需要 I/O 多路复用? 二、select 1.函数介绍 2.原理 3.样例代码 4.优缺点总结 三、poll 1.函数介绍 2.样例代码 3.优缺点总结 四、epoll 1.函数介绍 2.原理 3.LT和ET两种工作模式 4.优缺点总结 五、核心机制对比&…...


