学习Java的第六天

一、变量

1、变量的定义

  • 在程序执行的过程中变量的值会发生变化,直白来说就是用来存储可变化的数据。从本质上讲,变量其实指的是内存中的一小块存储空间,空间位置是确定的,但是里面放置的值不确定。
  • 比如屋子里有多个鞋柜,而你有很多双不同品牌的鞋,鞋柜里可以放A品牌的鞋,也可以放B品牌的鞋等等,你给每一个鞋柜设计个标签,至于这些鞋柜里放哪些品牌的鞋需要你自己去放。这些标签相当于我们定义的变量,至于变量里放什么,你可以自行决定。

2、变量的声明格式

[访问控制符]  [修饰符]  数据类型  变量名 [ = 初始值];

3、变量的注意事项

  • 每个变量都有类型,类型可以是基本类型,也可以是引用类型。

  • 变量名必须是合法的标识符。

  • 变量声明是一条完整的语句,因此每一个声明都必须以分号结束

  • 逐一声明每一个变量可以提高程序可读性。

4、变量的作用域

  • 类变量(静态变量: static variable):独立于方法之外的变量,用 static 修饰。

从属于类,生命周期伴随类始终,从类加载到卸载。 如果不自行初始化,他会自动初始化成该类型的默认初始值。(数值型变量初始化成0或0.0,字符型变量的初始化值是16位的0,布尔型默认是false)

public class Employee {//salary是静态的私有变量private static double salary;// DEPARTMENT是一个常量public static final String DEPARTMENT = "开发人员";public static void main(String[] args){salary = 10000;System.out.println(DEPARTMENT+"平均工资:"+salary);}
}
  • 局部变量(lacal variable):类的方法中的变量。

在使用前必须先声明和初始化(赋初值)。局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。

public static void main(String[] args) {int i=10;int j = i+5 ; System.out.println(j);
}
  • 实例变量(成员变量:member variable):独立于方法之外的变量,不过没有 static 修饰。

从属于对象,生命周期伴随对象始终。如果不自行初始化,他会自动初始化成该类型的默认初始值(数值型变量初始化成0或0.0,字符型变量的初始化值是16位的0,布尔型默认是false)。

public class Test {// 这个实例变量对子类可见public String name;// 私有变量,仅在该类可见private double salary;...
}

二、常量

  • 所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。
  • 常量名一般使用大写字符。程序中使用常量可以提高代码的可维护性。

final 常量名=值;
final double PI=3.14; final String LOVE="hello";

三、命名规范

有变量、方法、类名:见名知意。

类变量、实例变量和局部变量首字母小写,并且遵循驼峰原则。比如:nextMonth。

常量大写字母和下划线。比如:MIN_VALUE。

类名首字母大写,并且遵循驼峰原则。比如:HelloWorld。

方法名首字母小写,并且遵循驼峰原则。比如:twiceJump()。

四、运算符(operator

Java 语言支持如下运算符:

  • 算术运算符: +,-,*,/,%,++,–
  • 赋值运算符: =,+=,-=,*=,/=
  • 关系运算符: >,<,>=,<=,==,!= instanceof
  • 逻辑运算符: &&,||,!
  • 位运算符: &,|,^,~ , >>,<<,>>> (了解!!!)
  • 条件运算符: ?
  • instanceof 运算符

1、算术运算符

解析图:

示例:

public static void main(String[] args) {int a = 10;int b = 20;int c = 25;int d = 25;System.out.println("a + b = " + (a + b) );System.out.println("a - b = " + (a - b) );System.out.println("a * b = " + (a * b) );System.out.println("b / a = " + (b / a) );System.out.println("b % a = " + (b % a) );System.out.println("c % a = " + (c % a) );System.out.println("a++   = " +  (a++) );System.out.println("a--   = " +  (a--) );// 查看  d++ 与 ++d 的不同//首先在控制台输出,然后d自增为26System.out.println("d++   = " +  (d++) );//首先将d自增为27,然后在控制台输出System.out.println("++d   = " +  (++d) );
}

运行结果:

    a + b = 30a - b = -10a * b = 200b / a = 2b % a = 0c % a = 5a++ = 10a-- = 11d++ = 25++d = 27

注意:

除法运算,两个操作数是整型的,结果也会是整型的,舍弃掉小数部分;如果有一个数是浮点数,结果将自动转型为浮点型
取余运算,两个操作数是整型的,结果也会是整型的,如果有一个数是浮点数,结果将自动转型为浮点型
自增自减运算,a++ 相当于 a = a + 1, a++ 是先运用在计算,++a 先计算在运用

2、赋值运算符

解析图:

示例:

public class Test {public static void main(String[] args) {int a = 10;int b = 20;int c = 0;c = a + b;System.out.println("c = a + b = " + c );c += a ;System.out.println("c += a  = " + c );c -= a ;System.out.println("c -= a = " + c );c *= a ;System.out.println("c *= a = " + c );a = 10;c = 15;c /= a ;System.out.println("c /= a = " + c );a = 10;c = 15;c %= a ;System.out.println("c %= a  = " + c );c <<= 2 ;System.out.println("c <<= 2 = " + c );c >>= 2 ;System.out.println("c >>= 2 = " + c );c >>= 2 ;System.out.println("c >>= 2 = " + c );c &= a ;System.out.println("c &= a  = " + c );c ^= a ;System.out.println("c ^= a   = " + c );c |= a ;System.out.println("c |= a   = " + c );}
}

运行结果:

c = a + b = 30
c += a  = 40
c -= a = 30
c *= a = 300
c /= a = 1
c %= a  = 5
c <<= 2 = 20
c >>= 2 = 5
c >>= 2 = 1
c &= a  = 0
c ^= a   = 10
c |= a   = 10

3、关系运算符

解析图:

示例:

public class Test {public static void main(String[] args) {int a = 10;int b = 20;System.out.println("a == b = " + (a == b) );System.out.println("a != b = " + (a != b) );System.out.println("a > b = " + (a > b) );System.out.println("a < b = " + (a < b) );System.out.println("b >= a = " + (b >= a) );System.out.println("b <= a = " + (b <= a) );}
}

运算结果:

a == b = false
a != b = true
a > b = false
a < b = true
b >= a = true
b <= a = false

4、逻辑运算符

解析图:

 示例:

public class Test {public static void main(String[] args) {boolean a = true;boolean b = false;System.out.println("a && b = " + (a&&b));System.out.println("a || b = " + (a||b) );System.out.println("!(a && b) = " + !(a && b));}
}

运行结果:

a && b = false
a || b = true
!(a && b) = true

5、位运算符

解析图:

示例:

public class Test {public static void main(String[] args) {int a = 60; /* 60 = 0011 1100 */ int b = 13; /* 13 = 0000 1101 */int c = 0;c = a & b;       /* 12 = 0000 1100 */System.out.println("a & b = " + c );c = a | b;       /* 61 = 0011 1101 */System.out.println("a | b = " + c );c = a ^ b;       /* 49 = 0011 0001 */System.out.println("a ^ b = " + c );c = ~a;          /*-61 = 1100 0011 */System.out.println("~a = " + c );c = a << 2;     /* 240 = 1111 0000 */System.out.println("a << 2 = " + c );c = a >> 2;     /* 15 = 1111 */System.out.println("a >> 2  = " + c );c = a >>> 2;     /* 15 = 0000 1111 */System.out.println("a >>> 2 = " + c );}
}

运行结果:

a & b = 12
a | b = 61
a ^ b = 49
~a = -61
a << 2 = 240
a >> 2  = 15
a >>> 2 = 15

6、条件运算符

语法结构:

variable x = (expression) ? value if true : value if false

示例:

//基本格式:variable x = (expression) ? value if true : value if false
public static void main(String[] args){int a , b;a = 10;// 如果 a 等于 1 成立,则设置 b 为 20,否则为 30b = (a == 1) ? 20 : 30;System.out.println( "Value of b is : " +  b );// 如果 a 等于 10 成立,则设置 b 为 20,否则为 30b = (a == 10) ? 20 : 30;System.out.println( "Value of b is : " + b );
}

运行结果:

	输出结果:Value of b is : 30Value of b is : 20

7、instanceof 运算符

该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)。

语法结构:

( Object reference variable ) instanceof  (class/interface type)

示例:

class Vehicle {}public class Car extends Vehicle {public static void main(String[] args){Vehicle a = new Car();boolean result =  a instanceof Car;System.out.println( result);}
}

运行结果:

true

四、运算符优先级

我们小学都学过:先加减,后乘除,所以优先级我们并不陌生。

当多个运算符出现在一个表达式中,谁先谁后呢?这就涉及到运算符的优先级别的问题。在一个多运算符的表达式中,运算符优先级不同会导致最后得出的结果差别甚大。

下表中具有最高优先级的运算符在的表的最上面,最低优先级的在表的底部。

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

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

相关文章

2024年目标检测研究进展

YOLOv9 图片来源网络 YOLO相关的研究&#xff1a;https://blog.csdn.net/yunxinan/article/details/103431338

网络安全: Kali Linux 进行 SSH 渗透与防御

目录 一、实验 1.环境 2.nmap扫描目标主机 3.Kali Linux 进行 SSH 渗透 3.Kali Linux 进行 SSH 防御 二、问题 1.SSH有哪些安全配置 一、实验 1.环境 &#xff08;1&#xff09;主机 表1 主机 系统版本IP备注Kali Linux2022.4 192.168.204.154&#xff08;动态&…

【软考】单元测试

目录 1. 概念2. 测试内容2.1 说明2.2 模块接口2.3 局部数据结构2.4 重要的执行路径 3. 测试过程2.1 说明2.2 单元测试环境图2.3 驱动模块2.4 桩模块 4. 模块接口测试与局部数据结构测试的区别 1. 概念 1.单元测试也称为模块测试&#xff0c;在模块编写完成且无编译错误后就可以…

16.Git从入门到进阶

一.Git 初识 1. 概念&#xff1a; 一个免费开源&#xff0c;分布式的代码版本控制系统&#xff0c;帮助开发团队维护代码 2. 作用&#xff1a; 记录代码内容&#xff0c;切换代码版本&#xff0c;多人开发时高效合并代码内容 3. 如何学&#xff1a; 个人本机使用&#xf…

数据库中 SQL Hint 是什么?

前言 最近在调研业界其他数据库中 SQL Hint 功能的设计和实现&#xff0c;整体上对 Oracle、Mysql、Postgresql、 Apache Calcite 中的 SQL Hint 的设计和功能都进行了解&#xff0c;这里整理一篇文章来对其进行梳理&#xff0c;一是帮助自己未来回顾&#xff0c;加深自己的思…

Python之Web开发中级教程----搭建Git环境三

Python之Web开发中级教程----搭建Git环境三 多人分布式使用仓库操作实例 场景&#xff1a;开发者A&#xff0c;开发者B在同一个项目协同开发&#xff0c;修改同一个代码文件。开发者A在Win10下&#xff0c;开发者B在Ubuntu下。 1、开发者A修改提交代码 从GitHub: Let’s bu…

44岁「台偶一哥」成现实版「王子变青蛙」,育一子一女成人生赢家

电影《周处除三害》近日热度极高&#xff0c;男主角阮经天被大赞演技出色&#xff0c;最让人意想不到&#xff0c;因为该片在内地票房报捷&#xff0c;很多人走去恭喜另一位台湾男艺人明道&#xff0c;皆因二人出道时外貌神似&#xff0c;至今仍有不少人将两人搞混。 多年过去&…

11.Node.js入门

一.什么是 Node.js Node.js 是一个独立的 JavaScript 运行环境&#xff0c;能独立执行 JS 代码&#xff0c;因为这个特点&#xff0c;它可以用来编写服务器后端的应用程序 Node.js 作用除了编写后端应用程序&#xff0c;也可以对前端代码进行压缩&#xff0c;转译&#xff0c;…

Linux最小系统安装无法查看IP地址

1&#xff0c;出现原因 服务器重启完成之后&#xff0c;我们可以通过linux的指令 ip addr 来查询Linux系统的IP地址&#xff0c;具体信息如下: 从图中我们可以看到&#xff0c;并没有获取到linux系统的IP地址&#xff0c;这是为什么呢&#xff1f;这是由于启动服务器时未加载网…

《探索虚拟与现实的边界:VR与AR谁更能引领未来?》

引言 在当今数字时代,虚拟现实(VR)和增强现实(AR)技术正以惊人的速度发展,并逐渐渗透到我们的日常生活中。它们正在重新定义人与技术、人与环境之间的关系,同时也为各行各业带来了全新的可能性。然而,究竟是VR还是AR更有潜力改变未来?本文将围绕这一问题展开深入探讨。…

Unity ShaderGraph实现地面积水效果

先看看效果 右侧参数&#xff0c;能够控制水高&#xff0c;波纹的速度等&#xff0c;但是这个效果需要修改高度图和凹凸图&#xff0c;毕竟有些模型并不是平面&#xff0c;对于具有斜面的模型就需要修改贴图。 ShaderGraph如下

基于pytorch的视觉变换器-Vision Transformer(ViT)的介绍与应用

近年来&#xff0c;计算机视觉领域因变换器模型的出现而发生了革命性变化。最初为自然语言处理任务设计的变换器&#xff0c;在捕捉视觉数据的空间依赖性方面也显示出了惊人的能力。视觉变换器&#xff08;Vision Transformer&#xff0c;简称ViT&#xff09;就是这种变革的一个…

第一代高通S7和S7 Pro音频平台:超旗舰性能,全面革新音频体验

以下文章来源于高通中国 如今&#xff0c;音频内容与形式日渐丰富&#xff0c;可满足人们放松心情、提升自我、获取资讯等需求。得益于手机、手表、耳机、车载音箱等智能设备的广泛应用&#xff0c;音频内容可以更快速触达用户。从《音频产品使用现状调研报告2023》中发现&…

幕译--本地字幕生成与翻译--Whisper客户端

幕译–本地字幕生成与翻译 本地离线的字幕生成与翻译&#xff0c;支持GPU加速。可免费试用&#xff0c;无次数限制 基于Whisper&#xff0c;希望做最好的Whisper客户端 功能介绍 本地离线&#xff0c;不用担心隐私问题支持GPU加速支持多种模型支持&#xff08;中文、英语、日…

连接时序分类 Connectionist Temporal Classification (CTC)

CTC全称Connectionist temporal classification&#xff0c;是一种常用在语音识别、文本识别等领域的算法&#xff0c;用来解决输入和输出序列长度不一、无法对齐的问题。在CRNN中&#xff0c;它实际上就是模型对应的损失函数(CTC loss)。 一、背景 字母和语音的对齐(align)非…

【数据通信】数据通信基础知识---信号

1. 信息、数据、信号 信息是人们通过施加于数据的一些规定而赋予数据的特定含义&#xff08;ISO定义&#xff09;通信就是在信源和信宿之间传递信息。 信息和消息的关系&#xff1a;消息中包含信息&#xff0c;消息不等于信息。 消息所包含信息的多少&#xff0c;与在收到消息…

transformer--使用transformer构建语言模型

什么是语言模型? 以一个符合语言规律的序列为输入&#xff0c;模型将利用序列间关系等特征&#xff0c;输出一个在所有词汇上的概率分布.这样的模型称为语言模型. # 语言模型的训练语料一般来自于文章&#xff0c;对应的源文本和目标文本形如: src1"Ican do",tgt1…

Revit-二开之不同个立面/剖面上点的处理-(8)

由上图我们可以知道,在不同的立面坐标系是不同的。在很多业务逻辑处理的时候,需要对不同的立面进行处理,在此封装了一个方法,便于处理不同立面上点的计算。 viewSection 立面或者剖面 point 立面或者剖面上的点 horizontalOffset 点在屏幕中水平方向上的偏移量 verticalOf…

Android14之解决报错:No module named sepolgen(一百九十二)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

推荐算法中经典排序算法GBDT+LR

文章目录 逻辑回归模型逻辑回归对于特征处理的优势逻辑回归处理特征的步骤 GBDT算法GBDTLR算法GBDT LR简单代码实现 逻辑回归模型 逻辑回归&#xff08;LR,Logistic Regression&#xff09;是一种传统机器学习分类模型&#xff0c;也是一种比较重要的非线性回归模型&#xff0…