Java操作符

Java中float、double、long类型变量赋值添加f、d、L尾缀问题 public class Test { public static void main(String[] args) { float f1 = 1.2;//报错,虚拟机默认为double float f2 = 1.2f;//正确 float f3 = 1.2F;//正确 Float f4 = 1.2;//报错,虚拟机默认为d 阅读详情

使用Java操作符

    操作符接收一个或多个参数,并形成一个新值。参数的形式和普通的方法调用不同,单效果是相同的。使用和其他编程语言相似。

    操作符的作用用于操作数,并生成一个新值。另外,有些操作符可能会改变操作数自身的值,这被称为副作用。那些能改变其操作数的操作符,最普遍的用途就是用来产生副作用;但要记住,使用此类操作符生成的值,与使用没有副作用的操作符生成的值,没有任何区别。

    几乎所有的操作符都只能操作“基本类型”,例外的操作符为:=,==,!=。这些操作符能操作所有的对象。除此之外,String类支持+和+=。

 

 优先级

    当一个表达式中存在多个操作符时,操作符的优先级就决定了各部分的计算顺序。Java对计算顺序做了特定的规定。其中,最简单的规则就是先乘除后加减。程序员经常会忘记其他优先级规则,所以应该用括号()明确规定计算顺序。

    注意:System.out.println语句中包含+操作符,在这种上下文环境中,+意味着字符串连接,并且如果必要,它还要执行字符串转换(非String转String)。

 

 赋值

    赋值使用的操作符时“=”。它的意思是:取右边的值,把他复制到左边。右值可以是任何常数,变量,或者表达式。但左值必须是一个明确的,已经命名的变量。也就是说,必须有一个物理空间可以存储等号右边的值。

    基本数据类型的赋值是很简单的,基本类型存储了实际的值,而并非指向一个对象的引用,所以在为其赋值的时候,是直接将一个地方的内容复制到另一个地方。例如对基本数据类型使用a=b,那么b的内容复制给a。若接着又修改了a,而b根本不会受这种修改的影响。作为程序员,这就是大多数情况下我们期望的。

    但是为对象赋值的时候,情况发生了变化。对一个对象进行操作时,我们真正操作的是对对象的引用。所以一个对象赋值另一个对象,将引用从一个地方复制到另一个地方。这种特殊的现象称为别名现象,是Java操作对象的一种基本方式,任何避免呢?

    t1.level = t2.level

    这样便可以保持两个对象的彼此独立,而不是将t1和t2绑定到特定的对象。但你很快就意识到,直接操作对象内的域容易导致混乱,并且,违背了良好的面向对象程序设计原则。这可不是小问题,现在开始大家要注意,为对象赋值可能会产生意想不到的结果。

 

方法调用中的别名问题

    将一个对象传递给方法时,也会产生别名问题。

    别名引起的问题,以及解决方法是复杂的话题。需要注意它的存在,并在使用中注意这个陷阱。

 

算数操作符

    • 常用的

      • +

      • -

      • *

      • /

      • %

      • 扩展,也可以使用+=方式。

    • 一元加,减运算符

      • 一元减符号,用于转变数据的符号。比如:x = a * (-b)

      • 一元加符号,只是为了和一元减符号相对应,但是它唯一的作用仅仅是将较小类型的操作数提升为int。

    • 自增,自减,副作用的操作符。可以出现表达式的前面后者后面。

      • ++,增加一个单位。

      • --,减少一个单位。

 

关系操作符

    关系操作符生成一个boolean的结果。它们计算的是操作数的值之间的关系。

    • <

    • >

    • ==

    • !=

    • 扩展,<=等。

    对象比较时,一般使用equals方法哦。

 

 逻辑操作符

    • 与 &&

    • 或 ||

    • 非 !

    根据参数的逻辑关系,生成一个boolean结果值。与,或,非只可应用于boolean值。

    注意:如果应该使用String的地方使用了boolean值,oolean值会自动转换成适当的文本形式。

 

短路

    当使用逻辑操作符时,我们会遇到一种短路现象。即一旦能够明确无误的确定整个表达式的值,就不在计算表达式余下的部分。因此,整个表达式靠后的部分可能不会被运算,如:(a || b)时,如果a是真的直接返回true,而不会计算b的值。

 

直接常量

    如果程序里使用了直接常量,编译器可以准确的知道要生成什么样的类型。但是有时候确实不可行的。如果发生这种情况,必须对编译器加以适当的“只会“,用于直接量相关的某些字符来额外增加一些信息。比如1L,1F,0x等。后面的是类型。

 

指数计数法

    e,就是那个科学计算的e。

 

 按位操作符

    用来操作整数基本类型中的单个bit,即二进制位。按位操作符会对两个参数中对应的位执行布尔代数运算,并最终生成一个结果。

    • &

    • |

    • ~

 

 移位操作符

    操作的运算对象也是二进制位。只用来处理整数类型。

    • <<

    • >>

    具体细节忽略。

 

三元操作符if-esel

    格式:boolean-exp ? value0 : value 1

 

字符串操作 +, +=

    • +,连接不同的字符串。

    • +=,现获取原始字符串,然后连接+=后面的部分,然后赋值给表达式左边的值。

 

 使用操作符时常见的错误

    • == 和 =的混乱

    • && 和 &的混乱

 

类型转换操作符

    类型转换cast的意思是,Java会一种数据类型自动转换为另一种。比如:long l = (long)25;

    可以为数值进行类型转换,也可以为变量进行类型转换。注意,这里可能会引入多余的转型。Java中类型转换是一种安全的操作。然而,如果要执行一种名为窄化转换的操作,就可能面临信息丢失的危险。此时,编译器会强制我们进行类型转换。实际上这可是一种危险的事情,无论如何必须显示的类型转换。而对于扩展转换,不必显示的类型转换,因为不会造成信息的丢失。

 

戴尾和舍入

    比如29.8转int。结果会30还是29?

    强制类型转换时戴尾,如果需要四舍五入是使用java.lang.Math的round方法。

 

 

    如果对基本数据类型执行算数运算或按位运算,大家会发现,只要类型比int小,那么在运算之前,这些值会自动转换为int。这样最终生成的结果是int类型。如果把结果赋值给较小的类型,必须做个类型转换。通常,表达式中出现的最大的数据类型来决定表达式最终的结果类型。

 

 

不用敲命令!用宝塔面板可视化部署pbootCMS的保姆级教程(2024最新版) 本文提供2024年最新版pbootCMS可视化部署教程,全程使用宝塔面板操作,无需任何命令行知识。从服务器初始化、LNMP环境配置到源码上传、安装向导,手把手指导用户通过图形化界面快速搭建专业网站,适合零基础新手和追求高效建站的用户。 阅读详情

相关推荐

【翼型】基于Matlab的NACA翼型气动性能仿真与优化【附源码】

本文详细介绍了如何使用Matlab进行NACA翼型的气动性能仿真与优化。内容涵盖从生成NACA翼型坐标、利用面板法快速估算升阻力,到进阶的粘性流模拟与优化设计入门。通过清晰的代码示例和分步指南,帮助读者掌握基于Matlab的翼型分析与优化流程,为飞行器或叶片设计提供实用工具和方法。

weixin_29032489的博客 408

Java数据类型

Java基础入门

qq_50724390的博客 236

Aurora8b10b光口通信实战:复位时序与IP核配置详解

本文深入解析了Aurora 8B10B协议在FPGA高速光口通信中的核心实践,重点剖析了确保链路稳定启动的关键复位时序与IP核配置细节。通过详解全双工与单工模式下的复位流程、Vivado中IP核的物理层与链路层参数设置,并结合用户逻辑设计实例,为工程师实现可靠的高速数据传输提供了清晰的实战指南。

weixin_29280219的博客 177

Java 1L和1的区别

1.基本类型:long,int,byte,float,double 2.对象类型:Long,Integer,Byte,Float,Double其它一切java提供的,或者你自己创建的类。 其中Long叫 long的包装类。Integer、Byte和Float也类似,一般包装类的名字首写是数值名的大写开头。 public class Demo2 { public static void main(String[] args) { long i = 1L; .

AntKengElephant的博客 1万+

DP_AUX辅助通道介绍

DisplayPort(简称DP)是一个由PC及芯片制造商联盟开发,视频电子标准协会(VESA)标准化的数字式视频接口标准。其中辅助通道(AUX)是一条独立双向半双工的传输通道,它也是一对差分信号线。其数据传输速率1Mbps,用来传输配置参数与指令。

cjie221的博客 5341

实战ByteTrack:用C++手把手教你实现多目标跟踪(附完整代码解析)

本文通过C++实战教程,手把手教你实现ByteTrack多目标跟踪算法。文章详细解析了算法核心,包括利用卡尔曼滤波进行状态预测、匈牙利算法完成数据关联,以及ByteTrack独特的三次匹配策略来有效处理低置信度检测框,并提供了完整的项目架构、代码实现与性能优化指南。

yolo5detector的博客 299

【java初级】操作符、类、对象

【赋值操作符】 int i = 1; i+=++i; 分析: i = i + (++i) 也就是i = 1 + 2 = 3 【scanner】 nextInt() nextFloat() nextLine() 注意读了int再stirng要两次nextLine 第一次是换行(和cpp getline一个道理) 【方法重载】可变数量的参数写法 【构造方法】 方法名和类名一样,没有返回类型,实例化的时候一定会调用 如果不写,就会默认提供一个无参的构造方法 如果写了有参的构造方法,默认的无参构造就会失效 【th

小楼一夜听春雨 578

tcmalloc(高并发内存池)简化版讲解-项目

高清发不上去,私我发高清,项目完整代码@我。

2201_75352618的博客 910

Java【操作符】

算术操作符、位操作符、关系操作符、逻辑操作符、三元条件操作符、赋值操作符

在下的博客 1668

XYC Q8开源掌机刷第三方系统教程

分区结束后直接将各种游戏文件放入OD分区的Roms文件夹下

m0_60352504的博客 4564

华为OD机试真题 新系统2026-04-01 Python&JS 实现【勇攀数字高峰】

请你在给定的数字地形图中寻找登山路径,数字代表当前位置的海拔高度,要求从最低海拔出发,不断攀登,最终到达最高山峰。你需要寻找所有满足条件的登山路径。地图已经保证最低海拔和最高山峰都只有一个。

MISAYAONE的博客 843

Java之操作符

java的操作符 操作符全 特殊操作符 字符操作符 类型转换

qq_48666555的博客 2115

【RT-DETR涨点改进】独家创新改进篇 | AAAI2024 | RT-DETR引入CFBlock增强对长程依赖和全局语义信息的建模能力,有助于提升复杂场景下小目标、遮挡目标的检测精度

本文给大家介绍在RT-DETR中引入CFBlock模块,能够有效提升模型对长程依赖和全局语义信息的建模能力,在保持轻量化和高效推理的基础上增强特征表达力,特别有助于提升复杂场景下小目标、遮挡目标的检测精度,从而实现更优的精度与速度平衡。

Ai缝合怪、助力小伙伴高效发论文 258

Java 操作符:Java 中操作符优先级、一二三元操作符及逻辑操作符的中德模佛定理

在 Java 中我们常见的操作符分为三种,分别是逻辑操作符、关系操作符、算术操作符,其优先级和结合规则确定了操作符计算的顺序,那么你会具体运用它们吗?又有哪些注意事项呢?它们各自的优先级又该如何区分呢?德模佛定理又该如何应用呢?本文来带你详细了解。

白鹿第一帅的 优快云 博客 2393

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

java操作符_Java常见操作符

Java常见操作符Java,操作符自动递增和自动递减前缀式:操作符在变量前。先进行运算,再生成值。后缀式:操作符在变量后。先生成值,再进行运算。关系操作符== , != ,equals 默认比较的是对象的引用,不是对象的内容。三元操作符Boolean-exp ? value0 : value1Boolean-exp值为真计算value0,为假计算value1。截尾和舍入Java中对flo...

weixin_34093899的博客 493

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

java 操作符

在最底层,Java中的数据是通过使用操作符来操作的 1.更简单的打印语句 System.out.println() 静态导入新类库,可以简化打印语句 import static net.mindview.util.print.* println(); 2.使用Java操作符     操作符接受一个或多个参数,并生成一个新值。 3.优先级 当一个表达式中存在多个操作符时,操作符的优

不积跬步无以至千里,不积小流无以成江海 1427

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

java操作符

java操作符1 使用java操作符2 优先级3 赋值操作符 "="4 算术运算符4.1 一元加、减操作符5 自动递增或递减6 关系操作符6.1 测试对象的等价性7 逻辑操作符7.1 短路8 直接常量8.1 指数计数法9 按位操作符插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 1 使用j

tataoto的博客 318

java 操作符_java基础之操作符

在各个语言中都会设及到我们的数据操作运算,无论是java还是其他语言中。操作符主要包含算术操作符,位操作符,比较运算符,逻辑运算符,关系运算符。我们使用操作符就是为了帮助我们进行运算的操作的流程。我们在程序中使用是比较的多的对于操作符,所以我们需要好好的了解一些操作符这个知识点,下面我们将进行具体的介绍:操作符:运算符指明对操作数的运算方式。组成表达式的Java操作符有很多种。运算符按照其要求的操...

weixin_39926191的博客 117

java 操作符_java基础之操作符

Java中的数据通过操作符进行一系列运行、赋值。操作符的使用对象:基本类型 &&( " = " 、“ == ”、“ != ” 这些操作符能操作所有的对象) && (String类支持“ + ” 和 " += ")操作符的使用顺序:即优先级。符合数学运算规则,先乘除后加减;为避免错误,最好使用括号,来明确运算顺序;操作符分类一、赋值“ = ” 例:a=b ...

weixin_42524945的博客 199

java基础之操作符

java中的操作符(operator) 1)赋值操作符: = 例如: int x=0,i=1,j=1; *= 例如: a*=b 等价于 a=a*b /= 例如: a/=b 等价于 a=a/b; %= 例如: a%=b 等价于 a=a%b; += 例如: a+=b 等价于 a=a+b; -= 例如: a-=b 等价于 a=a-b; 其他的都是类似情况 a+=1; a++ 特殊情况:i++ 和 ++i i++表示先使用i的值,然后再让i自增1。 +

qq_43398175的博客 2927

Java之操作符学习

  今天继续我的“java从入门到放弃”之路

lei2014lei的博客 235

java操作符_java中操作符的用法

5.操作符public class Test{public static void main(String[] args){int i, k;i = 10;/*下面一句话的意义是:假如i小于零,k就等于-i,否则k就等于i*/k = i < 0 ? -i : i; // get absolute value of iSystem.out.print("Absolute value of ")...

weixin_29662775的博客 157

java 重写操作符_Java操作符

几乎所有操作符都只能操作基本类型,例外的操作符是=、==和!=,这几个操作符能操作所有对象。另外String支持+和+=。将一个对象引用赋值给另一个对象引用,产生别名现象。一元+操作符的作用在于将小类型的操作数提升为int类型。自增和自减操作符是除了赋值类操作符外仅有的存在副作用的操作符,除了boolean类型,所有基本类型都可使用自增和自减操作符。大部分Java库的类都重写了equals方法,包...

weixin_42489917的博客 1100

java基础-操作符-其它操作符

java中的操作符:1.操作符接收一个或多个参数,并生成一个新值; 2.有些操作符可以改变操作数本身的值,这被称为副作用,例如自增,自减操作符,这类带有副作用的操作符 的最普遍的用途就是用来产生副作用。但是使用此类操作符生成的值,与没有副作用的操作符生成的值没有什么区别。 3....

weixin_41866473的博客 278

java操作讲解,关于java的各种操作符学习讲解,java操作符讲解

关于java的各种操作符学习讲解,java操作符讲解1、算术操作符:+,-,*,/,%,其中整数的除法会直接去掉结果的小数位,不会四舍五入。2、自动递增递减:++,--,运算符放在数值前和后面是有区别的,放在前面,会先运算,再生成值,放在后面,先取值再运算。3、关系操作符:>,=,==,!===和!=也可以用来比较对象的引用,而不是比较对象的实际内容。可以使用equals()方法来比较对象的...

weixin_36012215的博客 155
上一篇: Java对象导论
下一篇: java时间工具类 DateUtils
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值