Java里面大体有六类运算符:
- 算术运算符;
- 赋值运算符;
- 比较运算符;
- 逻辑运算符;
- 位运算符;
- 三元运算符;
一、算术运算符
包括简单的“加减乘除(+ - * /)”,还有“取模(%)”,自增(++),自减(- -),字符串相加(+);下面介绍一些使用注意事项。
1)除法运算:虚拟机的除法运算结果的精度,由“除数”和“被除数”的最高精度决定。比如,5/3=1,因为5和3都是整数,所以结果会舍弃小数部分,只返回整数部分;
2)取模运算:所谓取模运算就是求余数。如果参与取模运算中有负数,则运算结果的符号(正负号)跟被模数(%左边的数)的符号相同。比如:
3)自增和自减:++和--表示变量进行自加1和自减1运算,这两个符号可以出现在变量的前面或者后面,分别代表其作自增或自减运算的时间不同。比如:
++a:变量a先回来“吃饭(自加1)”,再出去“玩(比如赋值给其他变量)”;
a++:变量a先出去“玩(比如赋值给其他变量)”,再回来“吃饭(自加1)”;
自减也是类似。
4)加号“+”作为字符串连接符:可以将两个字符串连接成一个字符串,前提是参与运算的变量有字符串,即字符数据和任何数据使用“+”都是进行字符串连接运算,最终都会变成字符串。常见如System.out.println进行输出时,括号里面用的“+”号连接输出的字符串;
附:转义字符
转义字符是指,通过反斜线“\”来转变其后面字母或者符号的意义。常见的转义字符如下:
\n:换行;
\r:按下回车键盘,回到本行行首;
(区别:在Linux中,换行由一个字符实现,即“\n”;而在windows的大多数软件中,换行由两个字符来实现,即“\r\n”;而Dos系统里能直接识别“\n”)
\b:退格;
\t:制表符;
\":双引号";
\':单引号';
二、赋值运算符
赋值运算通过等号“=”实现,并衍生出了“+=”、“-=”、“*=”、“/=”、“%=”。 但有些注意事项,举个例子,s=s+4 和s+=4是有区别的
1)s=s+4 :这个表达式里面进行了两次预算,先进行了加法运算,然后进行赋值运算。如果s是short型的变量,则这个表达式是错误的,因为先进行的s+4运算得到的是一个int型的结果,不能赋值给short型的变量s;
2)s+=4 :只进行了一次赋值运算。这个表达式如果s是short型的变量,也不会出错。因为其中包含了一个类型的自动转换动作,比如即+=运算符将结果赋给s时,自动强制转换成了short类型。
三、比较运算符
比较运算符的结果是boolean类型,即要么是true要么是false。有“==”、“!=”、“>=”、“<=”、“>”、“<”和“instanceof”七种运算。其中有一些注意事项:
1)==:该运算符有时候并不是比较两个值的大小,而是比较两者是否指向同一个对象。比如:
情况一:String s1 = "abc",String s2 = "abc" ;则s1==s2 返回的结果是true,因为它们两个指向同一个对象。
情况二:String s1=new String("abc");String s2=new String("abc");则s1==s2 返回的结果是false,因为它们两个并不是指向同一个对象。
所以,进行对象的数值相等比较时,建议使用或实现equals()方法,来进行比较。
2)instanceof:表示检查是否是类的对象,如“Hello” instanceof String,结果为true。表示字符串“Hello”是String类的对象。
四、逻辑运算符
逻辑运算符有与、或、非、异或四种逻辑运算形式。其参与运算的表达式的类型为boolean。
1)与:符号为&,表示都为真时结果才为true;&&表示“短路与”,即当遇到false,则直接判定为false,然后终止不再进行后面的判断。
2)或:符号为| ,表示只要有一个为真,结果就为true;即当遇到true,则直接判定为true,然后终止不再进行后面的判断。
3)异或:符号为^ ,表示两边的真假不同时,结果为true。如:true^false==ture;
五、位运算符
位运算是指对二进制进行里的位进行运算,包括左移、右移、无符号右移、与运算、或运算、异或运算和反码运算。具体如下:
1)左移:符号为<<,3<<2表示将3转换成二进制后,整体左移2位,移走留下的空位用零补上,其效果相当于“被移数*(2的“移动位数”次幂)”;
2)右移:符号为>>,3>>2表示将3换成二进制后,整体右移2位,移走留下的空位用被移数的最高位填补,其效果相当于“被移数/(2的“移动位数”次幂)”,结果舍去小数取整
3)无符号右移:符号为>>>,和右移类似,只不是移走后留下的空位都用零来填补。
4)与运算:符号为&,表示两个二进制数两两对应的位分别进行与运算。与运算常常用于取特定的位数。
5)或运算:符号为| ,表示两个二进制数两两对应的位分别进行或运算。
6)异或运算:符号为^,表示两个二进制数两两对应的位分别进行异或运算。其中有这样一个规律,一个数异或同一个数两次,结果还是同一个数,根据这个原理可以进行加密和解密运算。(思考:如何在不需要第三个变量的前提下,对两个整数变量进行互换)
7)反码:符号为~,表示将二进制数的每一位都进行取反操作,即0变成1,1变成0;
六、三元运算符
形式为:表达式1?表达式2:表达式3;
意思是,如果表达式1的值为true则返回表达式2的结果,否则返回表达式3。其实是if-else语句的一种简化表达形式。
分享到:
相关推荐
《Java程序员上班那点事儿》是一本面向Java程序员的专业读物,旨在帮助读者理解并应对在工作中遇到的各种问题。这本书采用简洁明了的语言风格,使得复杂的编程概念变得易懂且生动,非常适合Java初学者和有一定经验的...
在本文中,我们将探讨一些关于Freemarker的知识点,主要涉及它的使用体验、与Java Web的集成以及在处理数据结构时的一些特性。 首先,让我们来看看标题和描述中提到的几个问题。作者提到Freemarker在调试、错误处理...
- 运算符:逻辑运算符、比较运算符、算术运算符等,用于表达式计算。 3. **Verilog设计流程** - 模块设计:创建一个独立的硬件模块,包含输入、输出和内部信号。 - 模块实例化:在顶级模块中,将已设计的模块...
1. **Java基础**:包括Java语言的基本语法,如变量、数据类型、运算符、流程控制语句(if、for、while)、类与对象、封装、继承、多态等面向对象编程的基本概念。 2. **异常处理**:Java中的异常处理机制,如何使用...
这包括变量、数据类型、运算符、流程控制语句(如if-else、switch-case、for、while等)以及方法的定义和调用。了解这些基础知识,能帮助开发者编写出结构清晰、可读性强的代码。 面向对象编程(OOP)是Java的核心...
《course_s1_ZYNQ那些事儿-FPGA实验篇V1.04》这本教程详细介绍了ZYNQ开发平台的基础知识和使用方法。 首先,ZYNQ开发涉及的技能基础,对于初学者而言,需要具备一定的硬件知识和熟练的C语言编程能力。这是因为ZYNQ...
运算符则包括算术运算符、比较运算符、逻辑运算符等,用于表达数字系统中的计算和逻辑操作。控制结构如always块和if-else语句,则用于描述系统的时序行为。 模块是Verilog HDL的核心,它代表了一个独立的硬件实体,...
本压缩包“大码包 VerilogHDL那些事儿-整合篇 对应例程”提供了与Verilog HDL相关的实践案例,帮助学习者深入理解和掌握这一强大的设计工具。 首先,让我们来了解一下Verilog HDL的基础概念。Verilog是一种行为、...
### Java编程那些事儿 #### 序言 ...以上内容涵盖了《Java编程那些事儿》一书中关于计算机基础、Java语言介绍、开发环境搭建、基础语法和流程控制等方面的知识点,为Java初学者提供了全面的学习指南。
总之,“VerilogHDL那些事儿配置笔记”会是一份全面的教程,覆盖了从基础语法到高级应用的各种知识点,对于想要掌握Verilog HDL的读者来说,是一份宝贵的资源。通过深入学习和实践,设计者可以更好地理解和创建复杂...
此外,文档可能会讲解到异常处理、文件I/O操作、集合框架(如ArrayList、LinkedList、HashMap等)以及多线程编程,这些都是实际开发中不可或缺的知识点。 在类库和API的使用方面,读者可能会学到如何使用Java标准库...
"Verilog.HDL那些事儿例程代码"的标题和描述表明,这个压缩包可能包含了一系列使用Verilog HDL编写的示例代码,旨在帮助学习者理解和掌握这种语言。 在学习Verilog HDL时,了解基本语法结构是至关重要的。这包括...
在"扫盲篇"中,初学者可以系统地了解Verilog的基础语法,包括数据类型、运算符、结构体、进程(always块)等基本概念。这部分内容至关重要,因为它是进一步学习Verilog的基石。理解如何声明变量、定义模块以及编写...
在C语言中,我们使用&运算符获取变量的地址,而*运算符则用于访问由指针所指向的变量的值。例如,如果有一个整型变量`int a`,我们可以定义一个指针`int *p`来存储`a`的地址,然后通过`*p`来访问或修改`a`的值。 ...
**解决方案**:在设计过程中加入适当的断言和监控点,便于发现问题所在。 - **问题3:性能瓶颈** **解决方案**:通过优化算法、使用并行处理等方式提高性能。 #### 六、结语 建模技巧是每一位学习Verilog HDL的...