Java基础:&和&&、|和||的区别

简介: Java基础:&和&&、|和||的区别

首先我们看一道题

//根据下面的代码,,会抛出NullPointerException异常的有()。
String s = null;
A.  if( (s!=null) & (s.length()>0) )
B.  if( (s!=null) && (s.length()>0) )
C.  if( (s==null) | (s.length()==0) )
D.  if( (s==null) || (s.length()==0) )

能做对这道题的前提就是要知道 &和&&、|和||的区别


逻辑运算符:&&和|| 是按照“短路”方式求值的。如果第一个操作数已经能够确

定表达式的值,第二个操作数就不必计算了


位移运算符:&和| 运算符应用于布尔值,得到的结果也是布尔值,不按“短路”方式计算。即在得到计算结果之前,一定要计算位移运算符两边操作数的值。


题解:

String s=null;并没有给s开辟任何空间,当执行length()方法时候,因为没有具体指向的内存空间,所以报出NullPointerException没有指向的错误是因为执行了s.length()这句话。


A选项:&是与,位运算,两个都得执行,执行到s.length()自然就报错了。

B选项: S!=null 结果为false,整体就为false ,&& 后面就不会执行。

C选项: 虽然S == null 结果为true,但|是或,位运算,s.length() == 0也要执行,执行到s.length()自然也报错了。

D选项: S==null,结果为true,整体就为true,||后面不会执行。


所以答案就出来了,选A、C。

目录
相关文章
|
3天前
|
Java
java基础(4)public class 和class的区别及注意事项
本文讲解了Java中`public class`与`class`的区别和注意事项。一个Java源文件中只能有一个`public class`,并且`public class`的类名必须与文件名相同。此外,可以有多个非`public`类。每个类都可以包含一个`main`方法,作为程序的入口点。文章还强调了编译Java文件生成`.class`文件的过程,以及如何使用`java`命令运行编译后的类。
12 3
java基础(4)public class 和class的区别及注意事项
|
14天前
|
安全 Java API
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
String常量池、String、StringBuffer、Stringbuilder有什么区别、List与Set的区别、ArrayList和LinkedList的区别、HashMap底层原理、ConcurrentHashMap、HashMap和Hashtable的区别、泛型擦除、ABA问题、IO多路复用、BIO、NIO、O、异常处理机制、反射
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
ly~
|
1天前
|
安全 Java 大数据
php跟java有什么区别
PHP 和 Java 是两种常用编程语言,各有特色。PHP 语法简洁灵活,适用于快速开发中小型网站,尤其在 Web 脚本和数据库交互中表现出色。Java 则语法严谨,强类型特性使其在企业级应用、移动开发及大数据处理中更受欢迎,具备高稳定性和安全性。通过优化,PHP 性能可提升,而 Java 在大规模应用中表现更佳。总体而言,PHP 开发效率高但维护性稍差,Java 则更注重代码质量和安全性。
ly~
12 5
|
8天前
|
Java 大数据 API
Java 流(Stream)、文件(File)和IO的区别
Java中的流(Stream)、文件(File)和输入/输出(I/O)是处理数据的关键概念。`File`类用于基本文件操作,如创建、删除和检查文件;流则提供了数据读写的抽象机制,适用于文件、内存和网络等多种数据源;I/O涵盖更广泛的输入输出操作,包括文件I/O、网络通信等,并支持异常处理和缓冲等功能。实际开发中,这三者常结合使用,以实现高效的数据处理。例如,`File`用于管理文件路径,`Stream`用于读写数据,I/O则处理复杂的输入输出需求。
|
12天前
|
机器学习/深度学习 人工智能 安全
python和Java的区别以及特性
Python:适合快速开发、易于维护、学习成本低、灵活高效。如果你需要快速上手,写脚本、数据处理、做点机器学习,Python就是你的首选。 Java:适合大型项目、企业级应用,性能要求较高的场景。它类型安全、跨平台能力强,而且有丰富的生态,适合更复杂和规模化的开发。
18 3
|
1月前
|
XML JSON 前端开发
Java @RequestParam和@RequestBody的区别是什么?
【8月更文挑战第28天】Java @RequestParam和@RequestBody的区别是什么?
28 5
|
1月前
|
Java
Java 中 notify() 和 notifyAll() 的区别
【8月更文挑战第22天】
49 4
|
1月前
|
Java
|
1月前
|
存储 安全 Java
Java 中 ArrayList 和 HashSet 的区别
【8月更文挑战第23天】
36 2