Java基础09:逻辑运算符、位运算符
逻辑运算符
逻辑与:&&和&,逻辑或:||和|,逻辑非:!。
public static void main(String[] args) { boolean a = true; boolean b = false; System.out.println("a && b = " + (a&&b)); // false System.out.println("a || b = " + (a||b) ); // true System.out.println("!(a && b) = " + !(a && b)); // true }
逻辑与和逻辑或采用短路的方式。从左到右计算,如果确定值则不会再计算下去。在两个操作数都为
true时,结果才为true,但是当得到第一个操作为false时,其结果就必定是false,这时候就不会再判断
第二个操作了。
逻辑与只要有一个为false, 则直接返回false。
逻辑或只要有一个为true, 则直接返回true。
public static void main(String[] args){ int a = 5;//定义一个变量; boolean b = (a<4)&&(a++<10); System.out.println("使用短路逻辑运算符的结果为"+b); System.out.println("a的结果为"+a); }
解析:该程序使用到了短路逻辑运算符(&&),首先判断 a<4 的结果为 false,则 b 的结果必定是 false,
所以不再执行第二个操作 a++<10 的判断,所以 a 的值为 5。
位运算符
Java定义了位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型
(byte)等类型。位运算符作用在所有的位上,并且按位运算。
A = 0011 1100 B = 0000 1101 ----------------- A&b = 0000 1100 A | B = 0011 1101 A ^ B = 0011 0001 ~A= 1100 0011
右移一位相当于除2取商。
左移一位相当于乘2。
【常见面试题:int a=2*8怎样运算效率最快?】
解析:
public static void main(String[] args) { System.out.println(2 << 3); }
用移位运算 int a=2<<3;
a就是2乘以8 最后结果是16 这是最省内存 最有效率的方法。
这个方法确实是高效率的,解释一下:
2的二进制是10 在32位存储器里面是0000 0000 0000 0010。
左移三位后变成 0000 0000 0001 0000 也就是16。
解释一下,在系统中运算是以二进制的形式进行的。相比来说俩个二进制数相乘运算比移位运算慢一
些。
位操作是程序设计中对位模式按位或二进制数的一元和二元操作。 在许多古老的微处理器上, 位运算比
加减运算略快,通常位运算比乘除法运算要快很多。
在现代架构中,情况并非如此:位运算的运算速度通常与加法运算相同(仍然快于乘法运算)。详细的内容需要了解计算机的组成原理!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)