[Java 基础]运算符和表达式
Java运算符
(1)赋值操作符
右值可以是任意的常量、变量或表达式(只要可以生成一个值)。
左值必须是一个明确的、已命名的变量。
public class Test { public static void main(String[] args) { int num = 10; System.out.println("num = " + num); num = 20; System.out.println("num = " + num); } }
(2)算术操作符
与C/C++一样,JAVA也支持同时进行运算和赋值操作符的简化写法。
以下两种写法是等价的:
num = num + 20; //num加20,然后赋值给num num += 20; //num加20,然后赋值给num
(3)一元操作符
int x = -10; //把负数-10赋值给x int y = +10; //把正数10赋值给y,一般+省略 System.out.println("x = " + x); System.out.println("y = " + y);
(4)自增与自减操作符
自增操作符是++。
自减操作符是--。
例:++a 等价于 a = a+1;
自增和自减操作都可以分为前缀式和后缀式。
以自增为例,
int x = 1; int y = 1; System.out.println("x = " + ++x); //前缀式 System.out.println("y = " + y++); //后缀式
Output:
y = 1
由此可见,前缀式是先递增,然后再代入表达式;而后缀式是先代入表达式,再对自身进行递增运算。
(5)关系操作符
关系操作符生成的是一个 boolean 结果,它们计算的是操作数的值之间的关系。
如果关系是真的,关系表达式的结果为 true;反之,结果为 false。
关系操作符包括小于(<)、大于(>)、小于或等于(<=)、大于或等于(>=)、等于(==)以及不等于(!=)。
(6)逻辑操作符
逻辑操作符包括与(&&)、或(||)、非(!),它们根据参数的逻辑关系,生成一个boolean值。
(7)括号操作符
括号操作符(),可以提高括号中表达式的执行优先级。
int result1 = 1 + 2 + 3 * 4 - 5; int result2 = (1 + 2 + 3) * 4 - 5; System.out.println("1 + 2 + 3 * 4 - 5 = " + result1); System.out.println("(1 + 2 + 3) * 4 - 5 = " + result2);
Output:
(1 + 2 + 3) * 4 - 5 = 19
(8)位操作符
按位与(&)、按位或(|)、异或(^)、取反(~)、左移(<<)、右移(>>)、无符号右移(>>>)
(9)三元操作符
三元操作符比较特殊,它有三个操作数。它的格式为:
(布尔表达式)? 值A : 值B
如果布尔表达式的值为true,则结果为值A;反之,结果为值B。
public static int GetMaxNum(int x, int y) { return (x >= y) ? x : y; } public static void main(String[] args) { int x = 5; int y = 20; System.out.println("The max of " + x + " and " + y + " is : " + GetMaxNum(x, y)); }
注:Java中只有一个三元操作符。
(10)直接常量
一般说来,程序中使用了”直接常量“,编译器可以准确地知道要生成什么样的类型,但有时候却是模棱两可的。
直接常量后面的后缀字符可以标志它的类型。
若为大写(或小写)的 L ,表示 long 型。
十六进制数适用于所有整数数据类型,以前缀为 0x(或0X),后面跟随0~9或大小写的a~f。
八进制数由前缀0以及后续的0~7的数字来表示。
public class Test{ public static void main(String args[]){ long l = 123L; // long型:后缀为大写或小写的L float f = 12.3f; // float型:后缀为大写或小写的F double d = 54.345d; // double型:后缀为大写或小写的D int x = 0xffffffff; // 十六进制数:前缀为0x,后续用0~9,a~f的数字来表示 char c = 017; // 八进制数:前缀为0,后续用0~7的数字来表示 } };
(11)不同于C/C++,在JAVA中没有sizeof操作符
运算符的优先级和结合性
当多个运算符出现在同一个表达式中,会存在一个问题:谁先谁后呢?
这就涉及到运算符的优先级别的问题。在一个多运算符的表达式中,运算符优先级不同会导致最后得出的结果差别甚大。
再如,x = 7 + 3 * 2;这里x得到13,而不是20,因为乘法运算符比加法运算符有较高的优先级,所以先计算3 * 2得到6,然后再加7。
类别 |
操作符 |
关联性 |
后缀 |
() [] . (点操作符) |
左到右 |
一元 |
+ + - !〜 |
从右到左 |
乘性 |
* /% |
左到右 |
加性 |
+ - |
左到右 |
移位 |
>> >>> << |
左到右 |
关系 |
>> = << = |
左到右 |
相等 |
== != |
左到右 |
按位与 |
& |
左到右 |
按位异或 |
^ |
左到右 |
按位或 |
| |
左到右 |
逻辑与 |
&& |
左到右 |
逻辑或 |
| | |
左到右 |
条件 |
?: |
从右到左 |
赋值 |
= + = - = * = / =%= >> = |
从右到左 |
逗号 |
, |
左到右 |
表达式
所谓表达式,是指由常量、变量或是操作数与运算符所组合而成的语句。
例
如下是一个简单的算术表达式语句
x = 2 + 3;
参考资料
Java编程思想
http://www.w3cschool.cc/java/java-operators.html
[Java 基础]运算符和表达式的更多相关文章
- JAVA基础——运算符和表达式
JAVA语言常用的运算符和表达式详解 一.简述 运算符是一种"功能"符号,用以通知 Java 进行相关的运算.譬如,我们需要将变量 age 的值设置为 20 ,这时候就需要一个&q ...
- [.net 面向对象编程基础] (6) 基础中的基础——运算符和表达式
[.net 面向对象编程基础] (6) 基础中的基础——运算符和表达式 说起C#运算符和表达式,小伙伴们肯定以为很简单,其实要用好表达式,不是一件容易的事.一个好的表达式可以让你做事半功倍的效果,比如 ...
- Java基础-运算符(03)
概念: 运算符:就是对于常量和变量进行操作的符号. 表达式:用运算符连接起来的符合java语法的式子,不同的运算符连接的表达式是不同类型的表达式. 运算符分类: 算数运算符(+ - * / % ...
- Java基础—运算符(转载)
转载自:Java运算符 计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量.我们可以把运算符分成以下几组: 算术运算符 关系运算符 位运算符 逻辑运 ...
- 菜鸡的Java笔记 第四 - java 基础运算符
数学运算符,逻辑运算,三目运算,位运算 double d2 = 314e2; //采用科学计数法的写法,表示10的2次方.= 31400.0 代码写的越简单越好 简化运算符 代码:x=x+y 可以 ...
- Java基础——运算符
一.赋值运算符 在前面的学习中,用到最多的是什么呢?就是“=” .例如:int money=1000; //储存本金 使用“=”将数值1000放入变量money的存储空间中.“=”称为赋值运算符. ...
- java的运算符和表达式
)1.算数运算符:java中常用的算术运算符除了 +.-.*./之外,还有%(取余).++(自增).--(自减). )1.1%(取余):可适用于整数,char,浮点数的取余中.在取余中,如果进行运算的 ...
- java基础 运算符
算数运算符 加号:在操作数值.字符.字符串时其结果是不同的,当两个字符相加得到的是ASCII码表值, 当两个字符串相加时表示将两个字符串连接在一起,从而组成新的字符串. 除号:整数在使用除号操作时,得 ...
- java中运算符与表达式
运算符是用来完成一个动作的特定语言的语法记号. –赋值运算符 –增减运算符 –算术运算符 –关系运算符 –逻辑运算符 -位运算符 运算符 Java 加 + 减 - 乘 * 除 / 取模 % 1.整数运 ...
随机推荐
- linux上创建ftp服务器下载文件///使用AWS服务器作为代理,下载sbt相关的包
最近觉得自己下载有些jar的速度太慢了,就在aws上下好了,然后转到我电脑上来,在aws上开了ftp服务器.结果就倒腾了一上午,作个记录,以便后面查看. 1.安装vsftpd yum -y insta ...
- asp.net identity 2.2.0 在MVC下的角色启用和基本使用(一)
基本环境:asp.net 4.5.2 第一步:在App_Start文件夹中的IdentityConfig.cs中添加角色控制器. 在namespace xxx内(即最后一个“}”前面)添加 角色控制类 ...
- 【原创】GC/垃圾回收简介
GC简介 1 GC机制 1.1 对象 从计算机的角度,装有数据的内存空间 1.2 作用 将内存垃圾的释放自动化 1.3 本质 将已经引用不到的对象视为死亡,将死亡的对象找出来并且作为垃圾进行回收 2 ...
- [SQLServer大对象]——FileTable初体验
阅读导航 启用FILESTREAM设置 更改FILESTRAM设置 启用数据库非事务性访问级别 FileTable 在我接触FileTable之前,存储文件都是存储文件的链接和扩展名到数据,其实并没有 ...
- Atitit 基于dom的游戏引擎
Atitit 基于dom的游戏引擎 1. 添加sprite控件(cocos,createjs,dom)1 1.1.1. Cocos1 1.1.2. createjs1 1.1.3. Dom模式2 1. ...
- JS操作页面
DOM操作 1 windows对象操作 属性(值或者子对象): opener:打开当前窗口的源窗口,如果当前窗口是首次启动浏览器打开的,则opener是null.可以利用这属性来关闭源窗口 方法(函数 ...
- fir.im Weekly - 这是一份强大的 SwiftGuide
大新闻!Apple 10 亿美元融资滴滴!库克大叔对中国 iOS 开发者表达了高度认可,同时也传出 iOS 10 将内置滴滴 App 的消息.想像下,某个加班的深夜飙完代码,最性感的事情莫过于:「Si ...
- linux 学习 常用命令
以下命令是本人的CentOS6.5系统 一.linux个目录的作用 #linux个目录的作用 /bin 所有用户都可使用的命令 /sbin 超级用户(root)可以使用的命令 /boot 系统目录建 ...
- cordova填坑
cordova填坑
- Python字符串的encode与decode
首先要搞清楚,字符串在Python内部的表示是unicode编码. 因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unic ...