Java开发基础系列(三):数据操作

news2024/11/28 8:36:18
😊 @ 作者: 一恍过去
💖 @ 主页: https://blog.csdn.net/zhuocailing3390
🎊 @ 社区: Java技术栈交流
🎉 @ 主题: Java开发基础系列(三):数据操作
⏱️ @ 创作时间: 2023年07月16日

在这里插入图片描述

目录

  • 1、变量
    • 1.1 变量声明
    • 1.2 类变量与实例变量
    • 1.3 变量初始化
  • 2、数据运算
    • 2.1 算术运算
    • 2.2 赋值运算
    • 2.3 比较运算
  • 3、条件语句
  • 3.1 条件语句
    • 3.2 多重条件(switch)
  • 4 循环语句
    • 4.1 while循环
    • 4.2 do while循环
    • 4.3 for循环

1、变量

1.1 变量声明

Java变量是用于存储数据的一种命名内存位置。在Java中,每个变量都有一个特定的数据类型,比如:整数、浮点数、布尔值等。

在Java中,变量的使用必须先进行声明,指定变量的名称和类型。声明变量后,可以给它赋予特定的值,并随后在程序中引用和操作该值。

变量声明时的命名规则,需要遵循一定规则:

  • 变量名包含字母、数字和下划线,且以字母或下划线开头。
  • 变量名区分大小写。
  • 避免使用Java关键字作为变量名。
  • 变量名应具有描述性,能清楚表达变量的用途。

变量声明:

// 单个变量声明
int a;

// 多个变量声明
int i,j,k;

1.2 类变量与实例变量

在Java中,变量可以根据其所属的上下文和作用域分为两种类型:静态变量(类变量)和实例变量

静态变量(类变量):

  • 静态变量属于类本身,而不是类的任何特定实例。
  • 它们在类加载时创建,存在于整个程序的生命周期中。
  • 静态变量使用static关键字进行声明。
  • 所有该类的实例共享相同的静态变量。
  • 静态变量可以通过类名直接访问,无需创建类的实例。
  • 通常用于存储与类相关的共享数据。
public class Main{
	// 静态变量声明
   private static int a; 

    public static void main(String[] args) {
     	// 直接使用静态变量
        a= 10;
        System.out.println(a);
    }
}

实例变量:

  • 实例变量属于类的实例(对象),每个对象都有自己的一份。
  • 它们在创建对象时分配内存,并随着对象的销毁而被销毁。
  • 实例变量不使用 static 关键字进行声明。
  • 每个对象都有自己的实例变量副本,彼此独立。
  • 实例变量需要通过对象引用来访问。
public class Main{
	// 变量声明
   private int a; 

    public static void main(String[] args) {
		Main m = new Main();
		// 使用实例变量
        m.a= 10;
        System.out.println(m.a);
    }
}

1.3 变量初始化

在变量声明后,如果要使用该变量,必须先进行初始化操作,否则会导致运行时程序报错,比如以下错误的使用:

// 变量声明
int a;
// 直接使用未初始化的变量,会导致报错
System.out.println(a);

在进行初始化操作时,可以直接声明时初始化,也可以声明后赋值初始化。

  • 直接初始化:在声明变量的同时,使用赋值操作符将初始值赋给变量。
int a = 10;
System.out.println(a);
  • 赋值初始化:在使用变量前,再对变量进行初始化。
int a;
a = 10;
System.out.println(a);

在这里插入图片描述

2、数据运算

Java提供了多种运算符,用于执行各种操作,包括算术运算、赋值运算、比较运算、逻辑运算等。以下是Java中常见的运算符类型:算术运算符、赋值运算符、比较运算符、逻辑运算符

2.1 算术运算

  • 算术运算符:用于执行基本的数学运算。
    • +:加法
    • -:减法
    • *:乘法
    • /:除法
    • %:取模(取余)

算术运算符中,如果使用/(除法)时,两个操作数都是整数结果也是整数,比如:

int a = 10/3; // 结果为3,而不是3.33333.....

当操作数的类型不同时,那么就会进行数值类型之间的转换,比如:

double v1 = 100.22d / 100;
float v2 = 100.22f / 100;
long v3 = 100L / 100;

转换基本规则如下:

  • 如果,存在一个数据类型为double类型,则结果会转换为double类型;
  • 否则,存在一个数据类型为float类型,则结果会转换为float类型;
  • 否则,存在一个数据类型为long类型,则结果会转换为long类型;

2.2 赋值运算

  • 赋值运算符:用于将值赋给变量。
    • =:赋值
    • --:自减赋值,例如:x--; 等价于 x = x - 1;
    • ++:自增赋值,例如:x++; 等价于 x = x + 1;
    • +=:加并赋值,例如:x += 5; 等价于 x = x + 5;
    • -=:减并赋值,例如:x -= 3; 等价于 x = x - 3;
    • *=:乘并赋值,例如:x *= 2; 等价于 x = x * 2;
    • /=:除并赋值,例如:x /= 4; 等价于 x = x / 4`;
    • %=:取模并赋值,例如:x %= 3; 等价于 x = x % 3;

赋值运算是常用的一类运算符,因为可以直接对变量进行运算和赋值,比如:

int a = 10;
a+=5; // 结果为:15
a++; //结果为: 16
a--; //结果为: 15
a-=5; // 结果为:10

2.3 比较运算

  • 比较运算符:用于比较两个值的关系,并返回布尔值。
    • ==:相等
    • !=:不相等
    • >:大于
    • <:小于
    • >=:大于等于
    • <=:小于等于
  • 逻辑运算符:用于组合和操作布尔值。

3、条件语句

3.1 条件语句

在Java中,条件语句用于根据给定的条件来控制程序的执行流程,主要为:ifif elseelse if

  • if语句:使用 if 关键字来执行单一条件的判断,如果条件满足(即为真),则执行特定的代码块。
    int a = 1;
    if (a > 0) {
        System.out.println("this is true");
    }
    
  • if-else语句:除了执行满足条件的代码块,还可以在条件不满足时执行另一组代码块,使用 else 关键字。
    int a = 1;
    if (a < 0) {
        System.out.println("this is true");
    }else{
    	System.out.println("this is false");
    }
    
  • else if语句:用于在多个条件之间进行判断。如果第一个条件不满足,将依次检查后续的 else if 条件,直到找到满足的条件为止。
    int a = 1;
    if (a < 0) {
        System.out.println("this is a < 0");
    }else if(a == 0){
    	System.out.println("this is a == 0");
    }else if(a == 1){
    	System.out.println("this is a == 1");
    }else{
    	System.out.println("this is a > 1");
    }
    

需要注意的是,存在多个if elseelse子语句与最近的if构成一组条件,比如:

1.	int a = 1;
2.	if (a < 0) {
3.		if(a < -10){
4.			System.out.println("this is a < -10");
5.		}else{
6.			System.out.println("this is a >= -10");
7.		}
8.	}else{
9.		System.out.println("this is a >= 0");
10.	}

在这里,出现了多个if else,并且从第3行~第7行使用了if else子语句,因此第三行的if第五行的else为一组条件语句。

3.2 多重条件(switch)

switch语句:适用于在多个可能值之间进行选择,并根据选择执行相应的代码块。每个 case 表达式后面必须跟着一个 break 语句,以避免执行其他 case 中的代码。

通过switch语句可以解决使用过多if else if带来的代码冗余,switch语句将目标值与case值进行比较,满足条件则执行,并且使用break语句结束当前语句,如果没有匹配到case,则执行default 子句

case 标签可以是:

  • 类型为 char、byte、 short 或 int 的常量表达式。
  • 枚举常量。
  • 从 Java SE 7开始, case 标签还可以是字符串字面量。

if else ifswitch case对比:

if else if 写法:

int a = 3;
if (a == 0) {
   System.out.println("a==0");
} else if (a == 1 || a == 2) {
   System.out.println("a==1 || a==2");
} else if (a == 3) {
   System.out.println("a==3");
} else {
   System.out.println("a > 3");
 }

switch case写法:

int a = 3;
switch (a) {
   case 0:
     System.out.println("a==0");
     break;
  case 1:
  case 2:
    System.out.println("a==1 || a==2");
    break;
 case 3:
    System.out.println("a==3");
    break;
 default:
   System.out.println("a > 3");
}

需要注意的时switch case不支持范围比较,比如a<0,无法通过switch case进行实现

4 循环语句

在Java中,循环语句用于重复执行一段代码,直到满足特定的条件。Java提供了几种类型的循环语句:for循环、while循环、do-while循环

循环语句的使用允许我们重复执行特定的代码块,可以根据条件灵活地控制循环的次数。在循环中,通常需要使用适当的控制语句(如break和continue)来提前终止循环或跳过当前迭代。谨记在循环中更新循环变量,以避免进入无限循环。

4.1 while循环

在未知循环次数但需要先检查条件的情况下使用,只要条件为真,循环就会一直执行,在执行前就需要满足判断条件,可以使用break跳出循环。

int i = 0;
while (i < 5) {
    System.out.println(i);
    i++;
}
int i = 0;
while (true) {
	if(i>=5){
		// 结束while语句
		break;
	}
    System.out.println(i);
    i++;
}

4.2 do while循环

类似于while循环,不同之处在于先执行一次循环体,然后再检查条件,只要条件为真,循环会继续执行,会先执行一次,然后再判断是否满足条件,满足则继续循环执行,可以使用break跳出循环。

int i = 0;
do{
	System.out.println(i);
    i++;
}
while (i < 5);
int i = 0;
do{
	if(i>=5){
		// 结束while语句
		break;
	}
	System.out.println(i);
    i++;
}
while (true);

4.3 for循环

在已知循环次数的情况下使用,通过指定循环变量的初始值、循环条件和每次迭代后的更新操作来控制循环执行。

for循环由三部分组成:初始值、判断条件、迭代部分,当初始值满足判断条件时则执行一次迭代部分语句,比如:

for (int i = 0; i < 5; i++) {
    System.out.println(i);
}

在上面的循环语句中:

  • ①:int i = 0为初始值;
  • ②:i < 5为判断条件,如果满足则执行 System.out.println(i);
  • ③:当执行代码块后,又执行i++,进行迭代
  • ④:循环第 ②、③两个步骤,直到不满足判断条件后,自动退出循环

break与continue:

  • break:跳出循环,结束当前的for循环语句;
  • continue:满足执行条件下,不执行当前代码块的逻辑,直接执行迭代部分

比如,以下语句同时存在break与continue,并且执行结果为0、1、3

for (int i = 0; i < 5; i++) {
	if(i==2){
		// 不继续往下执行,直接执行`迭代部分`
		continue;
	}
	if(i==4){
		// 结束整个循环体,即使满足条件也不再执行for循环中的逻辑
		break;
	}
    System.out.println(i);
}

for语句无限循环写法,类似于while(true)

for(;;){
	System.out.println("无限循环");
}

在这里插入图片描述

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

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

相关文章

Java线程池实现原理

随着计算机行业的飞速发展&#xff0c;摩尔定律逐渐失效&#xff0c;多核CPU成为主流。使用多线程并行计算逐渐成为开发人员提升服务器性能的基本武器。J.U.C提供的线程池&#xff1a;ThreadPoolExecutor类&#xff0c;帮助开发人员管理线程并方便地执行并行任务。了解并合理使…

x86架构ubuntu22下运行3DS模拟器Citra

0. 环境 i5 ubuntu22&#xff08;安装系统时候选择 自动上网下载第三方驱动软件&#xff0c;主要是显卡驱动opengl&#xff09; 1. apt安装依赖 1.1 SDL2 sudo apt install libsdl2-dev 1.2 OpenSSL (optional) sudo apt install libssl-dev 1.3 Qt 6.2 sudo apt install …

零基础学Python-必备工具安装

文章目录 1. Python 安装与卸载Python 安装包下载安装Python如何验证Python 安装成功扩展 电脑中其实可以装多个不同版本的python 卸载Python 2. Python 开发有哪些常用的IDEPyCharm 安装PyCharm 安装包下载安装PyCharm PyCharm 使用VScode 安装VScode 安装包下载安装VScodeVsc…

libbpf-bootstrap开发指南:网络包监测-tc

目录 前置知识 代码分析 BPF部分 功能说明 struct __sk_buff 说明 bpf_htons & bpf_ntohs 为什么有l2 1、l31 data 数据的排布 用户部分 功能说明 DECLARE_LIBBPF_OPTS 执行效果 前置知识 IP数据包的总长度指的是整个IP数据包的长度&#xff0c;包括IP头部和…

React(2)

题外话&#xff1a;vscode有个插件可以很方便的快速写代码 输入rcc回车 1.组件嵌套 import React, { Component } from reactclass Navbar extends Component{render(){return <div>Navbar</div>} }const Swiper()>{return <div>Swiper</div> }cons…

学习babylon.js --- [2] 项目工程搭建

本文讲述如何搭建babylonjs的项目工程。 一 准备 首先创建一个目录叫MyProject&#xff0c;然后在这个目录里再创建三个目录&#xff1a;dist&#xff0c;public和src&#xff0c;如下&#xff0c; 接着在src目录里添加一个文件叫app.ts&#xff0c;本文使用typescript&#…

论文笔记--PTR: Prompt Tuning with Rules for Text Classification

论文笔记--PTR: Prompt Tuning with Rules for Text Classification 1. 文章简介2. 文章概括3 文章重点技术3.1 Pre-training & Fine-tuning & Prompt-based Fine Tuning3.2 PTR(Prompt Tuning with Rules)3.3 task decomposition3.4 Sub-prompts composition3.5 多个l…

平衡二叉搜索树--AVL详解剖析

目录 一、什么是AVL树 二、AVL树的作用 三、树节点的定义 四、节点的插入 五、旋转 1.左单旋 2.右单旋 左右双旋代码 &#xff1a; 4.右左双旋 一、什么是AVL树 AVL树就是二叉搜索树的进一步的优化&#xff0c;二叉搜索树虽可以缩短查找的效率&#xff0c;但是当数据有…

SDN系统方法 | 1. 概述

随着互联网和数据中心流量的爆炸式增长&#xff0c;SDN已经逐步取代静态路由交换设备成为构建网络的主流方式&#xff0c;本系列是免费电子书《Software-Defined Networks: A Systems Approach》的中文版&#xff0c;完整介绍了SDN的概念、原理、架构和实现方式。原文: Softwar…

SpringFactoriesLoader解析

一、SpringFactoriesLoader 介绍 1.1 SpringFactoriesLoader 简介 SpringFactoriesLoader 工厂加载机制是 Spring 内部提供的一个约定俗成的加载方式&#xff0c;与 java spi 类似&#xff0c;只需要在模块的 META-INF/spring.factories 文件中&#xff0c;以 Properties 类型…

DOT slam论文翻译

DOT:视觉SLAM的动态目标跟踪 摘要 - 在本文中&#xff0c;我们提出了DOT(动态目标跟踪)&#xff0c;这是一个添加到现有SLAM系统中的前端&#xff0c;可以显着提高其在高动态环境中的鲁棒性和准确性。DOT结合实例分割和多视图几何来生成动态对象的掩模&#xff0c;以允许基于刚…

实现 Rollup 插件alias 并使用单元测试提高开发效率

本篇文章是对 实现 Rollup 插件 alias | 使用 TypeScript 实现库的基本流程 | 使用单元测试提高开发效率 的总结。其中涉及到开发一个组件库的诸多知识点。 实现一个经常用的 rollup 插件 alias 首先执行npm init命令初始化一个package.json文件&#xff0c;因为插件使用了ty…

DevOps系列文章之Argo CD 使用

一、什么是 argo cd Argo CD 是用于 Kubernetes 的声明性 GitOps 连续交付工具。 二、为什么使用 argo cd Argo CD 可在指定的目标环境中自动部署所需的应用程序状态&#xff0c;应用程序部署可以在 Git 提交时跟踪对分支&#xff0c;标签的更新&#xff0c;或固定到清单的特…

测试开发之路 ---- 可读性,可维护性,可扩展性

目录 前言 测试框架与测试脚本的目标&#xff08;部分&#xff09; 分层 使用类似 xml 这种可扩展性强的语义存储数据 代码复用&#xff1a;抽象一切可抽象的&#xff0c;减少一切可能的代码相似与重复 活用 java 注解和反射&#xff08;python 中应该也有相关的机制&…

如何从视频中提取音频?分享三个免费的方法给大家!

在数字时代&#xff0c;视频和音频的使用越来越广泛。有时&#xff0c;您可能希望从视频中提取音频&#xff0c;以便单独使用或与他人分享。无需购买昂贵的软件或具备专业技能&#xff0c;下面将介绍三种免费的方法&#xff0c;帮助您从视频中提取音频。这些方法简单易行&#…

Unity学习笔记--siki学院保卫萝卜

生命周期&#xff1a; 在同一个脚本中的执行先后顺序&#xff1a;先左后右 Inspector 赋值 > 外部调用 > Awake > OnEnable > Start 脚本对象的失活与激活不作用于Awake方法&#xff0c;当方法中只有Awake方法时&#xff0c;控制脚本激活失活的对勾会消失掉 当…

vue3 中ref的函数用法

简介 这里说的ref不是响应式ref,是用在组件身上的ref标识&#xff0c;一般都是ref“某一个字符串”&#xff0c;本文介绍第二种用法&#xff0c;ref“()>{}”,对没错&#xff0c;ref可以等于一个回调函数 ref可以是一个回调 <el-input:ref"(vc: any) > (inputAr…

lwip-2.1.3自带的httpd网页服务器使用教程(三)使用CGI获取URL参数(GET类型表单)

上一篇&#xff1a;lwip-2.1.3自带的httpd网页服务器使用教程&#xff08;二&#xff09;使用SSI动态生成网页部分内容 认识URL参数 在上网的时候&#xff0c;我们经常会见到在网址后面带有?AB&CD这样的语法格式。例如&#xff1a;https://blog.csdn.net/ZLK1214/articl…

OpenCV的HSV颜色空间在无人车中颜色识别的应用

RGB属于三基色空间&#xff0c;是大家最为熟悉的&#xff0c;看到的任何一种颜色都可以由三基色进行混合而成。然而一般对颜色空间的图像进行有效处理都是在HSV空间进行的&#xff0c;HSV(色调Hue,饱和度Saturation,亮度Value)是根据颜色的直观特性创建的一种颜色空间, 也称六角…

如何撤销git上一次的commit(或已push)

如何撤销git上一次的commit&#xff08;或已push&#xff09; 当多人开发时&#xff0c;我们本地commit后&#xff0c;刚要push&#xff0c;发现忘记pull最新代码&#xff0c;此时会有冲突push失败&#xff0c; 我们想要撤销最近的一次commit 我们先简单介绍一下git git有三大…