一 移位运算符
“ < <”, “> > ”, “> > > ”在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生态系统和相关技术的理解。以下是一些建议的Java面试准备要点和资源描述: 一、Java基础知识 数据类型、变量与运算符:理解Java...
1.1 JAVA面试题解惑系列(一)——类的初始化顺序 . . . . . . . .... .86 1.11 JAVA面试题解惑系列(十一)——这些运算符你是否还记得? . . . . . . . . . . . . . . . . . . . . . . . . . .103
Java运算符是编写Java程序时必不可少的元素之一,也是面试中常见的考点。本文提供了二十道常见的面试题,涵盖了Java运算符的类型、功能、优先级、特性等方面的知识点。这些问题旨在考察候选人对Java运算符的理解和...
Java面试手册及其相关资 资源描述: 本java资源是一部专为Java开发者打造的全面而深入的学习与面试指南。本书集合了众多Java面试的精华内容,并结合各类经典的Java书籍,为读者提供了一站式的Java学习体验。 内容...
# Java面试题深入解析:在互联网公司面试程序员需要留意的六个问题 在互联网公司中,Java程序员是极为重要的角色,因此Java面试题也是非常重要的一环。无论是初级Java程序员还是高级Java程序员,都需要留意以下六个...
一、Java基础知识 1.Java有那些基本数据类型,String是不是基本数据类型,他们有何区别。 2.字符串的操作: 写一个方法,实现字符串的反转,如:输入abc,输出cba 写一个方法,实现字符串的替换,如:输入...
搜集整理制作成chm格式文件,灰常给力 8、EJB是基于哪些技术实现的?并说出SessionBean和EntityBean的区别,...&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)。 11、HashMap和Hashtable的区别。
Java面试题资源是一份全面的准备资源,旨在帮助您在Java面试中取得成功。通过复习这些面试常见的问题,您将能够巩固Java的核心概念、语法规则和面向对象编程的理解,提高多线程编程和异常处理的能力,并了解常见的...
来自网络,主要包括以下内容:1、类初始化的顺序;2、到底创建了几个String对象;3、变量(属性)的覆盖;4、final,finally,finalize;5.传了值还是传了引用;...适合将要笔试面试Java的朋友参考。
该资源旨在帮助准备Java面试的候选人们更好地理解和掌握Java编程语言的核心概念和技术,并为他们在面试过程中提供参考和指导。 该资源涵盖了Java的基础知识点,如数据类型、运算符、控制流程等,以及Java的面向对象...
&&之所以称为短路运算是因为,如果&&左边的表达式的值是false,右边的表达式会被直接短路掉,不会进行运算。很多时候我们可能都需要用&&而不是&,例如在验证用户登录时判定用户名不是null而且不是空字符串,应当写为...
由于 += 是java语言规定的运算符,java编译器会对它进行特殊处理,因此可以正确编译。 7、char型变量中能不能存贮一个中文汉字?为什么? char型变量是用来存储Unicode编码的字符的,unicode编码字符集中包含了汉字...
*** JAVA面试题. *** 1、作用域public,private,protected,以及不写时的区别 答:区别如下: 作用域 当前类 同一package 子孙类 其他 package public √ √ √ √ protected √ √ √ × friendly √ √ × × ...
综合了个种刁难的面试题,是一份不可多得的好资料
答:&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and) 5、Collection 和 Collections的区别 答:Collection是集合类的上级接口,继承与他的接口主要有Set 和List. Collections是针对集合类的一个...
Java面试题是针对Java编程语言的技术和知识的一系列问题,用于考察面试者在Java开发方面的能力和经验。Java面试题通常涵盖以下几个方面: 基础知识:包括Java语法、数据类型、运算符、流程控制等基本概念和特性。 ...
1. 基础知识:面试官可能会问您Java语言的基础知识,如数据类型、运算符、控制流语句、面向对象编程等。也可能会涉及Java的特性,如自动装箱拆箱、泛型、Lambda表达式等。 2. 面向对象编程(OOP):面试官可能会...
JAVA技术面试题 1 1、开发Java程序步骤? 3 2、Java程序的注释分类? 3 3、Java 领域分为哪些? 3 4、怎么样理解JAVA的程序概念? 3 5、Java程序的基本框架是什么? 3 6、Java的基本类型有哪些? 3 7、变量命名规则? 3...