一 移位运算符
“ < <”, “> > ”, “> > > ”在Java中是左移、有符号右移和无符号右移运算符。
(1)左移动运算符(< <):
会将操作的数向左边移动,移动的位的个数由左操作数指定,左移后,低位会被自动补零(0)。
(2)右移动运算符(> > ):
反过来,把操作数向右移动,移动的位个数同样由右操作数指定。注意:面对带正负号的数,会采用符号扩展,如果原值是正数,则高位补上0;如果原值是负数,高位补1。
(3)无正负号的右移运算符(>>>):
采用0补充,意思就是说,无论是正号还是负号,都在高位补0。
(4)注意,没有<<<这个运算符
(5)对于正数和负数,左移一位都相当于乘以2的1次方,左移n位就相当于乘以2的n次方。
测试的小例子:
public class Test6 {
/**
* *
*
* @param args
*/
public static void main(String[] args) {
int a1 = 16 << 2;
System.out.println(a1);
int a2 = 16 >> 2;
System.out.println(a2);
int b1 = 15 >> 2;
System.out.println(b1);
int a3 = -16 << 2;
System.out.println(a3);
int a4 = -16 >> 2;
System.out.println(a4);
int a5 = -16 >>> 2;
System.out.println(a5);
int a6 = 16 >>> 2;
System.out.println(a6);
byte c1 = 'a';
System.out.println(c1 << 2);
char c2 = 'b';
System.out.println(c2 << 2);
short c3 = 1;
System.out.println(c3 << 2);
}
}
结果:
64
4
3
-64
-4
1073741820
4
388
392
4
二 逻辑运算符
1, 逻辑运算符有“与”(AND)、“或”(OR)、“异或(XOR )”、“非(NOT)”,分别用“&”、“|”、“^”、“~”表示。
2, &运算规则:如果两个运算数都是为1,则结果为1。否则,其他情况下,结果都为0。
3, |运算规则:任意一个运算数为1,则结果为1。
4, ^运算规则:两个运算数不同时,则结果为1。否则,结果为0。
5, ~运算规则:对运算数的每一位取反。
public class Test7 {
/**
*
* @param args
*/
public static void main(String[] args) {
int i = 1;
int x = 2;
int y = 3;
char c = 4;
byte t = 2;
System.out.println(i & x);
System.out.println(i | x);
System.out.println(i ^ x);
System.out.println(~i);
System.out.println(c & t);
System.out.println(c | t);
System.out.println(c ^ t);
System.out.println(~c);
}
}
结果:
0
3
3
-2
0
6
6
-5
3.算术运算符
(byte、short和char)进行算术运算后,结果会自动提升成int类型。
byte b1 = 1; byte b2 = 2; byte b3 = b1+b2;//这句话编译的时候报 int类型不能转换byte类型 int i1 = b1+b2;
&&和&的区别,其实在进行逻辑与运算时,既可以使用&&也可以使用&,在功能上本身没有区别。两者区别的位置在,对于&来说,如果左侧条件为false,也会计算右侧条件的值,而对于&&来说,如果左侧的条件为false,则不计算右侧的条件,这种现象被称作短路现象。
优先级 运算符 结合性
1 () [] . 从左到右
2 ! +(正) -(负) ~ ++ -- 从右向左
3 * / % 从左向右
4 +(加) -(减) 从左向右
5 << >> >>> 从左向右
6 < <= > >= instanceof 从左向右
7 == != 从左向右
8 &(按位与) 从左向右
9 ^ 从左向右
10 | 从左向右
11 && 从左向右
12 || 从左向右
13 ?: 从右向左
14 = += -= *= /= %= &= |= ^= ~= <<= >>= >>>= 从右向左
分享到:
相关推荐
Java面试宝典是Java程序员求职面试的重要参考资料,它涵盖了Java编程语言的核心概念、高级特性、设计模式、并发处理、框架应用、数据库交互等多个方面。以下将详细解析这些关键知识点: 1. **Java基础**:面试中,...
Java面试通常涵盖多个方面,包括Java基础知识、编程技能、问题解决能力,以及对Java生态系统和相关技术的理解。以下是一些建议的Java面试准备要点和资源描述: 一、Java基础知识 数据类型、变量与运算符:理解Java...
本资源包"Java面试宝典和2018Bat公司面试题"包含了针对Java程序员精心整理的面试资料,旨在帮助求职者全面了解并掌握Java技术的核心知识点,以及在BAT(百度、阿里巴巴、腾讯)等知名互联网公司面试中可能遇到的问题...
在准备2022年的Java面试时,了解和掌握关键知识点是至关重要的。Java作为一款广泛应用的后端开发语言,其面试通常会涵盖基础语法、面向对象编程、集合框架、多线程、JVM内存管理、数据库交互以及开源框架等方面。...
Java面试宝典2017版是一份集大成的面试资源,专为准备Java相关职位面试的求职者量身打造。这份文档旨在帮助求职者系统性地复习和掌握Java编程语言的关键知识点,以应对各类面试挑战。以下将对这份资料中的主要知识点...
为了在激烈的求职竞争中脱颖而出,理解和掌握Java面试中的常见问题至关重要。"2017java面试题"这个压缩包文件提供了丰富的资源,帮助Java开发者准备面试,深化对Java开发的理解。 文档"Java面试宝典2017.doc"可能...
《Java面试宝典2017版》是Java开发者在准备面试时的重要参考资料,它涵盖了Java编程语言的核心概念、框架、设计模式以及实际项目中的常见问题。这份PDF高清版不仅提供了全面的知识点梳理,还强调了面试过程中可能...
Java 是一种广泛使用的编程语言,本文总结了 Java 面试中常见的知识点,涵盖了 Java 基础、字符串操作、数据类型、运算符、抽象类等方面的知识。 Java 基础 1. JDK 和 JRE 的区别:JDK(Java Development Kit)...
在准备Java面试时,了解关键概念和技术是至关重要的。这份"java面试题总结资料"涵盖了多个Java核心领域的关键知识点,包括但不限于: 1. **基础语法**:理解基本的数据类型(如整型、浮点型、字符型和布尔型),...
1. **Java基础**:Java面试题-COREJAVA部分.txt可能会涵盖Java的基础语法,如数据类型、变量、运算符、流程控制语句,以及类、对象和封装等面向对象编程的概念。 2. **集合框架**:Java面试中,集合框架是必考知识...
本文将基于标题“Java面试题和练习题”以及描述中提到的内容,深入探讨Java相关的面试题和练习题,旨在帮助求职者或希望提升技能的开发者巩固知识,准备面试。 一、Java基础 1. Java的数据类型:了解Java的八种...
《Java面试突击-V3.0》是一份专为Java工程师准备的面试指南,旨在帮助求职者在面试过程中更好地展示自己的技能和知识。这份文档详细涵盖了Java编程语言的各个方面,包括基础概念、进阶特性、并发处理、内存管理、...
Java面试宝典.pdf 以下是根据给定文件信息生成的相关知识点: Java语言的特点 1. 简单易学:Java语言有丰富的类库,易于学习和使用。 2. 面向对象:Java语言的最重要特性,让程序耦合度更低,内聚性更高。 3. 与...
在面试准备中,掌握这些基础知识是至关重要的,它们能帮助面试者展示自己的编程能力和对Java语言的熟练应用。而Java技术面试题集的复习,有助于加深对这些知识点的理解和记忆,从而在面试中表现出色。
### Java面试题目精选知识点梳理 #### 一、求职过程篇概览 - **1.1 程序员这个职业** - **职业感受**:介绍了作为一名程序员的职业体验,包括日常工作内容、工作压力等方面。 - **程序员是否吃青春饭**:讨论了...
以下是一些可能出现在Java面试中的关键知识点: 1. **Java基础**:面试通常会从Java的基础语法开始,如数据类型、变量、运算符、流程控制(if-else,switch,for,while)、类与对象、封装、继承和多态。面试者需要...
为了在Java面试中脱颖而出,深入理解Java语言的核心概念和技术是至关重要的。以下是一些关键的Java面试知识点和相关书籍推荐。 1. **Java基础** - **语法与数据类型**:理解基本数据类型(如int、float、boolean等...
Java面试是每位求职者在进入IT行业,尤其是Java开发领域时必须经历的重要环节。这份"Java面试题库"包含了丰富的知识点,旨在帮助求职者更好地准备面试,提高成功几率。以下是一些关键的Java编程和面试相关知识点的...