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应用程序中…...
零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?
一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...

.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
渲染学进阶内容——模型
最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...

Reasoning over Uncertain Text by Generative Large Language Models
https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...
QT3D学习笔记——圆台、圆锥
类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体(对象或容器)QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质(定义颜色、反光等)QFirstPersonC…...
LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》
这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...

并发编程 - go版
1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...