Java学习笔记-02
目录
流程控制语句
分支语句
循环语句
Random随机数
数组
方法
流程控制语句
- 分为顺序语句(从上到下,依次执行),分支语句(if,else...)和循环语句(for,while,do...while)
分支语句
- 分为if与switch两大类
单分支
if(关系表达式){ 语句体; }
- 如果表达式成立,则执行语句体。不满足则不会执行语句体
if(true) {System.out.println("只有表达式成立,才会执行里面的");}
双分支
if(关系表达式){ 语句体1; } else { 语句体2; }
- 如果表达式成立,则执行语句体1。否则则执行语句体2
if(true) {System.out.println("只有表达式成立,才会执行里面的");} else {System.out.println("表达式如果不成立,则执行这里的");}
多分支
if(关系表达式1){ 语句体1; } else if(关系表达式2){ 语句体2; } ... else { 语句体n; }
- 如果表达式1成立,则执行语句体1。如果表达式2成立,则执行语句体2,...如果表达式都不满足,则执行语句体n
int num = 1;if(num == 1) {System.out.println("1111");} else if(num == 2) {System.out.println("2222");} else if(num == 3) {System.out.println("3333");} else {System.out.println("其他的...");}
分支语句 switch
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
......
default:
语句体n;
break;
}
- 值与表达式做对比,如果匹配上了,则执行对应的语句体。如果都没有匹配到,则执行语句n
int num = 1;switch (num) {case 1:System.out.println("111");break;case 2:System.out.println("222");break;default:System.out.println("没有匹配到");break;}
循环语句
- 分为for循环,while循环和do...while循环三大类
- break关键字,会结束循环
- continue关键字,会跳过当前次循环
for循环
for(初始化语句①;条件判断语句②;条件控制语句③){ 循环语句④; }
- 适合确定次数的循环
- ①②④③④③④......,一直到条件不成立,则结束循环
for (int i = 0;i < 10;i++) {System.out.println("这是第" + (i + 1) + "次执行");}
- 会先定义一个变量名为i的变量(局部变量),初始值是0
- 然后判断变量i是否小于10,小于则执行循环语句
- 条件成立(0确实小于10),执行循环语句
- 进行自增,变量i为2
- 然后再进行条件判断,看变量i是否小于10(2也小于10),小于10则执行循环语句
- 重复4和5操作,直到条件不成立,结束循环
while循环
初始化语句;
while(判断条件语句){
循环体语句;
条件控制语句;
}
- 适合不确定次数的循环
int num = 0;while (num < 10) {System.out.println("这是第" + (num + 1) + "次执行");num++;}
do...while循环
do {
循环体语句;
} while(条件判断语句);
- 不管条件成立不成立,至少都会执行一次
int num = 0;do{System.out.println("这是第" + (num + 1) + "次执行");num++;} while (num < 10);
break与continue
- break关键字,会结束循环
- continue关键字,会跳过当前次循环
for (int i = 0;i < 5;i++) {// 变量 i 为 3 的时候,会跳出当前这次的循环if (i == 3) {continue;}// 变量 i 为 4 的时候,会结束当前循环if (i == 4) {break;}System.out.println("这是第" + (i + 1) + "次执行"); // 输出结果只有1 2 3次}
Random随机数
- 生成一个0-n之间的随机数,需要用到Random库
使用
- 导包
import java.util.Random;
- 创建对象
Random r = new Random();
- 获取随机数
int num = r.nextInt(10); // 会生成一个0到10之间的随机数,但是不会取到10
举例
import java.util.Random;
import java.util.Scanner; // 1. 导包public class Main {public static void main(String[] args) {System.out.println("请您输入一个整数数字(需要大于0):");// 获取用户输入,并限制用户只能输入数字型int inputNum = new Scanner(System.in).nextInt();// 2. 创建Random对象Random r = new Random();// 3. 获取随机数int num = r.nextInt(inputNum);System.out.println("得到的随机数为:" + num);}
}
数组
- 可以一次性存储大量的数据变量,并且数据变量必须都为同一个数据类型
- 数组就是一个相同数据变量的集合
数组声明
数据类型 [ ] 变量名 或者 数据类型 变量名 [ ]
int[] arr; // 声明了一个数字型的数组,变量名为arr
int arr2[]; // 声明了一个数字型的数组,变量名为arr2
数组初始化
- java中的数组必须先初始化,然后才能使用
- 初始化就是为数组中的每个数组元素分配内存空间,并为每个数组元素赋值
- 数组初始化分为动态初始化(动态赋值)和静态初始化(静态赋值,给出固定的)
动态初始化
- 初始化的时候只指定数组长度,由系统为数组动态分配初始值
数据类型 [ ] 变量名 = new 数据类型 [ 数组长度 ];
int[] arr = new int[6];
System.out.println(arr); // 直接打印变量名,会输出内存地址
System.out.println(arr[0]); // 0
System.out.println(arr[1]); // 0
每种数据类型的默认值是不一样的
| 数据类型 | 默认值 |
| 整数int | 0 |
| 浮点型double | 0.0 |
| 布尔型boolean | false |
| 字符型char | 空字符 ' ' |
| 引用数据类型 | null |
静态初始化
- 初始化时指定每个数组元素的初始值
数据类型 [ ] 变量名 = new 数据类型 [ ] { 初始值1,初始值2... }; 或者
数据类型 [ ] 变量名 = { 初始值1,初始值2... };
int[] arr = new int[] { 1,2,3 };
System.out.println(arr[0]); // 1
// 简写形式,一般都用这种
int[] arr2 = { 1,2,3,4,5 };
System.out.println(arr[2]); // 3
遍历数组
- 通过for循环进行遍历,数组变量名.length,可以得出数组的长度。
- 但是小标时从 0 开始的,所以需要小于 数组变量名.length
int[] arr = { 1,2,3,4,5 };
for (int i = 0;i<arr.length;i++) {System.out.println("数组第" + i + "项为:" + arr[i]);
}
方法
- 方法其实就是函数,先讲解一下简单的函数
- 要使用方法,必须先声明,再调用
- 方法里面不能套方法,但是可以调用其他方法
方法声明
public static 返回值类型 方法名(参数1,参数2...){
... // 方法体
}
- 返回值类型,函数最终返回什么类型,这里就写什么类型。如果没有返回值,则写void
- 参数格式:数据类型 参数名
方法调用
方法名() // 这是无参数的
方法名(参数1,参数2...) // 这是有参数的
- 方法不调用,自己不会执行
public class Main {// 定义一个没有参数的方法public static void fn() {System.out.println("我没有返回值哦");}// 定义一个有参数的方法public static int getSum(int num1,int num2) {return num1 + num2;}public static void main(String[] args) {// 调用没有参数的方法fn();// 调用有参数的方法int sum = getSum(10,30);System.out.println(sum);}
}
方法重载
- 重载就是多个方法都具有相同的方法名,并且都在同一个类中,但是方法的参数个数或者类型不相同,这就是方法的重载
注意:同一个类中,是不允许出现方法名称和参数列表都一样的方法,否则会报错
public class Main {public static int getSum(int num1,int num2) {return num1 + num2;}public static int getSum(int num1,int num2,int num3) {return num1 + num2 + num3;}public static void main(String[] args) {int sum = getSum(10,30);System.out.println(sum);int sum2 = getSum(10,20,30);System.out.println(sum2);}
}
输出小提示
System.out.println("表示输入并换行");
System.out.print("表示输入但是不换行");
System.out.println(); // 只是单纯起到一个换行作用
相关文章:
Java学习笔记-02
目录 流程控制语句 分支语句 循环语句 Random随机数 数组 方法 流程控制语句 分为顺序语句(从上到下,依次执行),分支语句(if,else...)和循环语句(for,while,do...while) 分支语句 分为if与switch两大类 单分…...
中通快递财报预测:中通快递2023年收入和利润将大幅下降
来源:猛兽财经 作者:猛兽财经 市场对中通快递2023年的预测 卖方虽然预测中通快递(ZTO)在2023年的表现会很不错,但他们也预计中通快递今年的财务业绩将不会像去年那样好。 根据S&P Capital IQ的数据,卖…...
Javaweb | 状态管理:Session、Cookie
💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! 状态管理 问题引入 HTTP协议是无转态的,不能保存提交的信息如果用户发来一个新的请求,服务器无法知道它是否与上次的请求联系对于那些需要多次…...
Redux
Redux 作用 集中式管理react、vue、angular等应用中多个组件的状态,是一个库,不单单可用于react,只是更多的用于react中 模型图 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AaFD3raR-1682994570670)(img/re…...
Nacos配置中心的详解与搭建
Namespace 简介 用于进行租户粒度的配置隔离,不同的命名空间下,可以存在相同的 Group 或 Data ID 的配置 配置Namespace 点击nacos的命名空间——点击新建命名空间 开发环境【dev】测试环境【test】正式环境【prod】 DataID 简介 Data ID 通常用于…...
Java入门教程||Java 封装||Java 接口
Java 封装 在面向对象程式设计方法中,封装(英语:Encapsulation)是指,一种将抽象性函式接口的实作细节部份包装、隐藏起来的方法。 封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码…...
微软开源AI修图工具让老照片重现生机
GitHub - microsoft/Bringing-Old-Photos-Back-to-Life: Bringing Old Photo Back to Life (CVPR 2020 oral) 支持划痕修复,以及模型训练。 Old Photo Restoration (Official PyTorch Implementation) Project Page | Paper (CVPR version) | Paper (Journal vers…...
什么是 Docker?它能用来做什么?
文章目录 什么是云计算?什么是 Docker?虚拟化技术演变特点架构镜像(Image)仓库(Registry )容器(Container) 应用场景 什么是云计算? 云计算是一种资源的服务模式&#x…...
生成器的创建方式(py编程)
1. 生成器的介绍 根据程序员制定的规则循环生成数据,当条件不成立时则生成数据结束。数据不是一次性全部生成处理,而是使用一个,再生成一个,可以节约大量的内存。 2. 创建生成器的方式 生成器推导式yield 关键字 生成器推导式…...
百胜中国:未来将实现强劲增长
来源:猛兽财经 作者:猛兽财经 收入分析与未来展望 在过去的三年里,百胜中国(YUMC)的收入一直受到疫情导致的旅行限制和封锁的影响。为了应对疫情造成的业务中断,该公司开始专注于外卖业务,并将…...
【Celery】任务Failure或一直超时Pending
编写背景 task进入队列后,部分任务出现Failure或者一直Pending,且业务代码没有报错。 运行环境 celery配置 from celery import Celery broker redis://:127.0.0.1:6379/1 backend redis://:127.0.0.1:6379/2 app Celery(brokerbroker,backendbackend,includ…...
【严重】VMware Aria Operations for Logs v8.10.2 存在反序列化漏洞(CVE-2023-20864)
漏洞描述 VMware Aria Operations for Logs前身是vRealize Log Insight,VMware用于处理和管理大规模的日志数据产品。 VMware Aria Operations for Logs 8.10.2版本中存在反序列化漏洞,具有 VMware Aria Operations for Logs 网络访问权限的未经身份验…...
java实现乘法的方法
我们都知道,乘法运算的核心思想就是两个数相乘,如果能将乘法运算转化成一个加数的运算,那么这个问题就很容易解决。比如我们要实现23的乘法,首先需要定义两个变量:2和3。我们将这两个变量定义为一个变量:2x…...
SSD目标检测
数据集以及锚框的处理 数据集: 图像:(batch_size , channel , height , width) bounding box: (batch_size , m , 5) m: 图像中可能出现的最多边界框的数目 5: 第一个数据为边界框对应的种…...
SpringBoot项目结构及依赖技术栈
目录 1、pom.xml文件配置说明 2、SpringBoot项目结构说明 3、入门案例关键配置说明 🌈 前面我们学习了SpringBoot快速入门案例,本节我们通过POM文件和项目结构分析两部分内容了解下关于SpringBoot的一些配置说明,以便全面了解SpringBoot项…...
crash怎么分析kdump core文件
kdump是Linux内核的一种机制,可以在出现系统崩溃时自动生成一个内存转储文件(core file),也称为crash dump。这个core文件包含了系统当时的内存状态和各个进程的调用栈信息,可以帮助分析和定位崩溃的原因。 要分析kdump core文件,…...
微内核与宏内核的区别和联系
微内核与宏内核的区别和联系 一、什么是内核?二、微内核和宏内核的区别 一、什么是内核? 内核是计算机操作系统的核心程序,它负责整个OS功能的调控。 二、微内核和宏内核的区别 微内核(Micro)宏内核(Monolithic/ Macro)地址空间内核服务和用…...
都什么年代了,还在用Excel和ACCESS做应用系统?快来学Eversheet
表格用的越久,就越头疼 稍微有规模的企业,各种表格都会多如牛毛,一堆堆的,有时候这里一张,那里一张,容易整乱,更容易丢失。不管你是用WPS还是用Excel,有些问题你还是依旧解决不了。…...
【JAVAEE】JAVA数据库连接(JDBC)
1.什么是JDBC? Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC也是Sun Microsyste…...
Nestjs全网最佳翻译-概况-守卫-Guards
守卫 带上装饰器 Injectable() 并实现了 CanActivate 接口的类,就是守卫。 守护只做一件事情。他们根据运行时的某些条件(如权限、角色、ACL等)来决定一个给定的请求是否会被路由处理程序处理。这通常被称为授权。在传统的Express应用程序中…...
环境科学家都在偷偷用的NotebookLM技巧(2024中科院实测TOP5插件清单)
更多请点击: https://codechina.net 第一章:NotebookLM在环境科学研究中的范式变革 传统环境科学研究长期受限于多源异构数据整合困难、跨学科知识理解门槛高、因果推断缺乏可解释性支持等瓶颈。NotebookLM 作为基于用户自有文档构建的语义增强型AI协作…...
告别安装报错!Windows 10/11 保姆级 MySQL 5.7.44 配置指南(含my.ini文件详解)
Windows 10/11 下 MySQL 5.7.44 终极安装指南:从避坑到精通配置 每次在Windows系统上安装MySQL,总会有那么几个"经典"错误让人抓狂——服务启动失败、初始化报错、环境变量配置无效... 作为一个经历过无数次安装折磨的老手,我决定…...
5分钟掌握XUnity自动翻译器:打破游戏语言障碍的终极指南 [特殊字符]
5分钟掌握XUnity自动翻译器:打破游戏语言障碍的终极指南 🎮 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 你是否曾因语言障碍而错过心仪的游戏大作?XUnity自动翻译器…...
GD32C10x 标准库 EXTI 驱动源码深度解析
前言 在 GD32C10x 单片机开发中,外部中断 EXTI是实现外设异步响应、按键检测、电平触发等功能的核心外设,几乎所有嵌入式项目都会用到 EXTI。 兆易创新提供的 GD32C10x 标准库中,gd32c10x_exti.c是 EXTI 外设的底层驱动文件,封装了 EXTI 初始化、中断使能、标志位操作、软…...
AI-Git-Narrator:基于LLM的Git提交历史自动化分析与文档生成工具
1. 项目概述与核心价值最近在折腾一个挺有意思的开源项目,叫AI-Git-Narrator。简单来说,它就像一个能“看懂”你代码提交历史的AI解说员。每次你往Git仓库里推送代码,它都能自动分析你这次提交到底改了啥,然后用自然语言生成一段清…...
用Arduino Nano和MAX7219模块,5分钟搞定一个8x8 LED点阵显示(附完整代码)
用Arduino Nano和MAX7219模块快速打造8x8 LED点阵显示系统 周末整理零件箱时翻出一片落灰的MAX7219模块和Arduino Nano,突然想起可以给工作室做个实时温度显示器。这个组合堪称电子爱好者的"乐高积木"——不需要复杂的电路设计,短短几行代码就…...
如何在DS918+上免费开启Synology Photos人脸识别功能:完整补丁指南
如何在DS918上免费开启Synology Photos人脸识别功能:完整补丁指南 【免费下载链接】Synology_Photos_Face_Patch Synology Photos Facial Recognition Patch 项目地址: https://gitcode.com/gh_mirrors/sy/Synology_Photos_Face_Patch 你是否曾经在群晖DS918…...
基于MCP协议的本地代码历史管理工具:无感备份与即时回溯
1. 项目概述:一个为开发者打造的“时光机”如果你是一名开发者,大概率经历过这样的场景:在调试一个复杂功能时,你反复修改了一段代码,运行、测试、再修改……几个小时后,你突然意识到,两个小时前…...
3分钟彻底移除Windows Defender:释放30%系统性能的实战指南
3分钟彻底移除Windows Defender:释放30%系统性能的实战指南 【免费下载链接】windows-defender-remover A tool which is uses to remove Windows Defender in Windows 8.x, Windows 10 (every version) and Windows 11. 项目地址: https://gitcode.com/gh_mirror…...
Python自动化资源管理工具closeclaw:智能清理闲置窗口与进程
1. 项目概述与核心价值最近在GitHub上看到一个挺有意思的项目,叫closeclaw,作者是krishpranav。乍一看这个仓库名,你可能会有点摸不着头脑——“关闭爪子”?这到底是干嘛的?点进去研究了一番,发现这是一个用…...
