Java &&和&的区别

&& 逻辑与,|| 逻辑或             称为逻辑运算符

&    按位与,|  按位或            称为位运算符

if(a==1&&b==2) 这是说既要满足a=1也要满足b=2

if(a==1||b==2) 这是说或者满足a=1或者要满足b=2

而a&b或者a|b则是二进制的与或运算

&同为1时为1,否则为0

|同为0时为0,否则为1

 

3&5则     

                    0011   

                 &0101     

                    0001   

     等于1

 

3|5则   

                   0011  

                |0101   

                   0111  

    等于7

&&逻辑与 也叫做短路与 因为只要当前项为假,它就不往后判断了,直接认为表达式为假 

||逻辑或 也叫做短路或 因为只要当前项为真,它也不往后判断了,直接认为表达式为真

 

例题:

 

下面代码的输出结果是什么?

 

 
  1. class Test {

  2.     public static void main(String[] args) {

  3.         int a = 3;

  4.         int b = 4;

  5.         if ((a>b&(a++)>b&&(--b)<a)|(b++)<=(a--)) {

  6.             System.out.println("判断结果为true, a=" + a + ",b=" + b);

  7.         } else {

  8.             System.out.println("判断结果为false, a=" + a + ",b=" + b);

  9.         }

  10.     }

  11. }

 

 

 

A.判断结果为true, a=3,b=5

B.判断结果为true, a=3,b=4

C.判断结果为false, a=3,b=5

D.判断结果为false, a=4,b=4

 

如果忽略&和&&的区别,很可能得到答案B.

但正确答案其实是A. 


解析:短路与&&只要当前项为F,直接得出结果为F,不进行后面的运算(一假必假)

          短路或 | |  只要当前项为T,直接得出结果为T,不进行后面的运算(一真必真)

a++与++a的区别:

          如果单独使用没有任何区别,

          如果在运算中就有区别了,a++是先运算在赋值,而++a是先赋值在运算

          (貌似加不加括号没影响?)

 


分析

(a>b&(a++)>b&&(--b)<a)|(b++)<=(a--)
由于逻辑运算符有优先级,可以由'|'将此表达式分隔,

1.左边a>b为假,但连接它的是一个&运算符,这代表不管它是否正确,都继续运算其右边的表达式.

2.(a++)>b,同1,在计算完后a的值为4;此时由于它的右边为短路与&&,且其值为false,将不再计算&&右边的逻辑表达式,那么意味着右边的(b--)将不被运算

3.符号'|'左边整体值为false,右边(b++)<=(a--)即4<=4,结果为true;那么整个逻辑表达式的结果为true,计算后b的值为5,a的值为3


原文:https://blog.youkuaiyun.com/sinat_33033041/article/details/75557404 


短路与&&和短路或||都提高了逻辑表达式的计算效率.

 

 

http://www.360doc.com/content/16/0716/22/16920390_576148549.shtml

https://blog.youkuaiyun.com/sinat_33033041/article/details/75557404

 

### 回答1: Java是一种面向对象的编程语言,它由Sun Microsystems开发并于1995年发布。它是用于编写各种应用程序平台的广泛使用的语言之一。Java具有许多特性,使其在软件开发领域广泛应用。 首先,Java是一种平台无关的语言。这意味着Java代码可以在各种操作系统设备上运行,而无需进行大量的修改。这是通过Java虚拟机(JVM)实现的,JVM可以解释执行Java字节码。开发者只需要编写一次Java代码,然后就可以在多个平台上运行它。 其次,Java具有强大的面向对象编程能力。它支持诸如封装、继承多态等面向对象的概念。这使开发者能够使用类对象来组织管理代码,使其更容易理解维护。 此外,Java还具有丰富的类库API(应用程序编程接口),这使开发者能够快速构建功能强大的应用程序。Java的类库覆盖了各种领域,包括图形用户界面开发、网络编程、数据库访问等。开发者可以根据自己的需求使用这些类库,从而减少了开发时间工作量。 Java还有诸如自动内存管理、异常处理线程支持等特性,使其在开发过程中更加安全可靠。 总之,Java是一种功能强大、灵活且广泛应用的编程语言。它在各种场景下都有广泛的应用,包括企业软件开发、移动应用开发、游戏开发等。通过使用Java,开发者可以快速构建高质量的应用程序。 ### 回答2: Java是一种广泛应用于软件开发领域的编程语言。它是由Sun Microsystems(今已被Oracle收购)公司于1995年推出的,最初是作为Applet编写语言,用于在网页中运行小型程序。随着时间的推移,Java逐渐发展成为一种通用的、面向对象的编程语言,被广泛应用于软件开发领域。 Java的设计理念是“一次编写,到处运行”(Write Once, Run Anywhere),这意味着开发人员只需要编写一次程序,就能在不同的操作系统硬件平台上运行。这主要依靠Java虚拟机(JVM)实现,JVM是Java程序的运行环境,负责将Java字节码翻译成机器码,从而实现跨平台的特性。 Java语言具有良好的可读性可维护性,它采用了类、对象、继承、接口等面向对象的编程思想。Java提供了丰富的类库API(应用程序接口),使得开发人员可以方便地进行各种功能的开发,例如用户界面、网络通信、数据库操作等。 Java语言还具有良好的安全性可靠性。它在内存管理方面拥有自己的垃圾回收机制,减少了内存泄漏的可能性。同时,Java通过访问控制、异常处理等机制,增强了程序的安全性稳定性。 另外,Java还具有丰富的开发工具开发环境。例如,EclipseIntelliJ IDEA是常用的Java开发工具,它们提供了强大的代码编辑、调试测试功能,加快了开发效率。 总结来说,Java作为一种通用的、面向对象的编程语言,具有跨平台、可读性强、可维护性好、安全可靠等特点。它是目前最热门最广泛使用的编程语言之一,广泛应用于企业级的Web应用开发、移动应用开发、大数据分析等领域。 ### 回答3: Java是一种广泛应用的编程语言,由Sun Microsystems公司于1995年推出。它是一种面向对象的语言,具有简单、可移植安全等特点,被广泛应用于各类应用程序的开发。 Java具有跨平台的特性,即一次编写,到处运行。这是因为Java代码在编译时不会直接转换成二进制代码,而是会转换为字节码,由Java虚拟机(JVM)解释执行。这使得Java程序可以在不同的操作系统上运行,无需做太多的修改。这是Java在移动设备嵌入式系统开发中得以广泛应用的重要原因。 Java的面向对象设计使得代码更易于维护扩展。Java提供了丰富的类库API,开发者可以利用这些类库来快速开发各种应用程序。同时,Java还支持多线程编程,可以实现并发操作,提高程序的执行效率。 Java的安全性也是其受欢迎的原因之一。Java代码运行在Java虚拟机上,可以通过安全沙箱来限制程序的权限,防止恶意代码对系统造成破坏。此外,Java还提供了许多安全措施,如安全管理器加密技术,以确保程序数据的安全性。 总体而言,Java是一种功能强大、灵活且易于学习的编程语言。它在Web开发、企业级应用程序、移动设备应用程序游戏开发等领域得到广泛应用。通过Java的跨平台特性丰富的类库,开发者可以快速构建各种各样的应用程序,并享受java带来的便利效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值