JAVA 基础 操作符

JAVA操作符



赋值操作符

赋值操作符(=)表示:取右边的值(即右值),把它复制给左边(即左值)。

右值可以是任意的常量、变量或表达式(只要可以生成一个值)。

左值必须是一个明确的、已命名的变量。

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

算术操作符

加号(+)减号(-)乘号(*)除号(/)取模(%)

与C/C++一样,JAVA也支持同时进行运算和赋值操作符的简化写法。

以下两种写法是等价的:

num = num + 20;    //num加20,然后赋值给num
num += 20;         //num加20,然后赋值给num

一元操作符

一元加号(+)一元减号(-)表示数值的正负。

int x = -10;    //把负数-10赋值给x
int y = +10;    //把正数10赋值给y,一般+省略
System.out.println("x = " + x);
System.out.println("y = " + y);

自增与自减操作符

自增操作符是++

自减操作符是--

例:++a 等价于 a = a+1;

自增和自减操作都可以分为前缀式和后缀式。

以自增为例,

int x = 1;
int y = 1;
System.out.println("x = " + ++x);    //前缀式
System.out.println("y = " + y++);    //后缀式

Output:

x = 2
y = 1

由此可见,前缀式是先递增,然后再代入表达式;而后缀式是先代入表达式,再对自身进行递增运算。

关系操作符

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

如果关系是真的,关系表达式的结果为 true;反之,结果为 false

关系操作符包括小于(<)大于(>)小于或等于(<=)大于或等于(>=)等于(==)以及不等于(!=)

逻辑操作符

逻辑操作符包括与(&&)或(||)非(!),它们根据参数的逻辑关系,生成一个boolean值。

括号操作符

括号操作符(),可以提高括号中表达式的执行优先级。

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 = 10
(1 + 2 + 3) * 4 - 5 = 19

位操作符

按位与(&)按位或(|)异或(^)取反(~)左移(<<)右移(>>)无符号右移(>>>)

三元操作符

三元操作符比较特殊,它有三个操作数。它的格式为:

(布尔表达式)? 值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));
}

直接常量

一般说来,程序中使用了”直接常量“,编译器可以准确地知道要生成什么样的类型,但有时候却是模棱两可的。

直接常量后面的后缀字符可以标志它的类型。

若为大写(或小写)的 L ,表示 long 型。

若为大写(或小写)的 F ,表示 float 型。

若为大写(或小写)的 D ,表示 double 型。

十六进制数适用于所有整数数据类型,以前缀为 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的数字来表示
    }
};

不同于C/C++,在JAVA中没有sizeof操作符

操作符的优先级和结合性



以下表格按照优先级由高到低的顺序展示了JAVA操作符:

级别 优先级 结合性
1 [ ]  .  ( ) (函数呼叫) 从左到右
2 !~++--+(单操作数)–(单操作数)( ) (类型转化)new 从右到左
3 *  /  % 从左到右
4 +  - 从左到右
5 <<  >>  >>> 从左到右
6 <  <=  >  >=  instanceof 从左到右
7 ==  != 从左到右
8 & 从左到右
9 ^ 从左到右
10 | 从左到右
11 && 从左到右
12 || 从左到右
13 ? : 从右到左
14 =  +=  -=  *=  /=  %=    ^=  <<=  >>=  >>>= 从右到左

参考资料


《Thinking in Java》

时间: 2024-08-11 07:39:51

JAVA 基础 操作符的相关文章

java基础--操作符

1.操作符 在Java中操作符有以下几类: 算术运算符 关系操作符 逻辑运算符 位操作符 赋值操作符 三元操作符 1.1算术运算符 常见的操作符有:+,-,*,/,%,++,-- 1.1.1基本的加 减 乘 除 public class HelloWorld { public static void main(String[] args) { int i = 10; int j = 5; int a = i+j; int b = i - j; int c = i*j; int d = i /j;

Java基础串理

今天抽了些时间翻阅资料复习一下Java部分基础知识,现整理笔记在此以备巩固. Java主要应用领域 –企业级应用:主要指复杂的大企业的软件系统.各种类型的网站.Java的安全机制以及它的跨平台的优势,使它在分布式系统领域开发中有广泛应用.应用领域包括金融.电信.交通.电子商务等. –Android平台应用:Android应用程序使用Java语言编写.Android开发水平的高低很大程度上取决于Java语言核心能力是否扎实. –移动领域应用,主要表现在消费和嵌入式领域,是指在各种小型设备上的应用,

Java 基础之认识 Annotation

Java 基础之认识 Annotation 从 JDK 1.5 版本开始,Java 语言提供了通用的 Annotation 功能,允许开发者定义和使用自己的 Annotation 类型.Annotation 功能包括了关于定义 Annotation 类型的语法,对声明式进行注解的语法,读取 Annotation 的 API,Annotation 在 class 文件中的表现,以及 Annotation 处理工具(APT). Annotation 并不直接对程序的语法产生作用,但是会提供一些程序之

java基础之&amp; 和 &amp;&amp; 的区别

&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false. &&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,例如,对于if(str != null && !str.equals(""))表达式,当str为null时,后面的表达式不会执行,所以不会出现NullPointerExceptio

Java基础常见英语词汇

(转自http://www.jianshu.com/p/2743fe834166) Java基础常见英语词汇(共70个) ['?bd?ekt] ['?:rientid]导向的 ['pr??ɡr?m??]编程OO: object-oriented ,面向对象 OOP: object-oriented programming,面向对象编程 [d?'vel?pm?nt][k?t]工具箱 ['v??tj??l]虚拟的JDK:Java development kit, java开发工具包 JVM:java

JAVA基础知识点总结(全集)

1.JAVA简介 1.1java体系结构:j2se,javaweb,j2ee 1.2java特点:平台无关(虚拟机),垃圾回收(使得java更加稳定) 1.3 JDK与JRE,JDK:java开发环境,JRE:java运行环境 1.4第一个java程序:HelloWorld,java的入口是main(public static void main(String[] args)) 1.5java程序的开发步骤:.java编译(javac)成.class运行(java).class文件 2.基本数据

Java基础知识【下】( 转载)

http://blog.csdn.net/silentbalanceyh/article/details/4608360 (最终还是决定重新写一份Java基础相关的内容,原来因为在写这一个章节的时候没有考虑到会坚持往后边写,这次应该是更新该内容.而且很讨厌写基础的东西,内容比较琐碎,而且整理起来总会很多,有可能会打散成两个章节,但是我不保证,有可能一个章节就写完了,所以有时候希望基础的很多内容还是读者自己去看看,我基本保证把基础的内容全部都写出来,见谅.这一个章节写了过后我会把前边那个关于基础类

java基础知识小小结

java基础知识小总结 在一个独立的原始程序里,只能有一个 public 类,却可以有许多 non-public 类.此外,若是在一个 Java 程序中没有一个类是 public,那么该 Java 程序的文件名就可以随意命名了. 文档注释,是以单斜线加两个星形标记( /**)开头,并以一个星形标记加单斜线( */)结束.用这种方法注释的内容会被解释成程序的正式文档,并能包含进如 javadoc之类的工具生成的文档里,用以说明该程序的层次结构及其方法. Java 把整数常量的数据类型均视为 int

[Java基础] Java对象内存结构

转载地址:http://www.importnew.com/1305.html 原文于2008年11月13日 发表, 2008年12月18日更新:这里还有一篇关于Java的Sizeof运算符的实用库的文章. 学C/C++出身的我,对Java有一点非常困惑,那就是缺乏计算对象占用内存大小的机制.而在C++中就可以通过sizeof运算符来获得基本类型以及类实例的大小.C和C++中的这个操作符对于指针运算.内存拷贝和IO操作都非常有用. Java中并没有一个类似的运算符.事实上,Java也不需要这种运