![cd296eaea53f14b8b0ec80cb955d601b.png](https://i-blog.csdnimg.cn/blog_migrate/a96d344732f2b53fc8d663d2716c1ab1.jpeg)
java的逻辑运算符:
1 . &&和&都是表示与,区别是&&只要有一个条件不一样就是不满足,如果第一个条件就是不满足就不判断后面的条件。而&要对所有的条件都进行判断。
看下面的程序:
![ce926f75f759c87843c8df39f68677b9.png](https://i-blog.csdnimg.cn/blog_migrate/a1480495769532cd7a2cd4c0174121ef.jpeg)
输出的是“没有报错”。而将&&改为&就会如下错误:
Exception in thread "main" java.lang.ArithmeticException: / by zero
原因是:&&时判断第一个条件为false,后面的100/0==0这个条件就没有进行判断。
&时要对所有的条件进行判断,所以会对后面的条件进行判断,所以会报错。
2 . ||和|都是表示“或”,区别是||只要满足第一个条件,后面的条件就不再判断,而|要对所有的条件进行判断。
看下面的程序:
![7a257b7a853cd54ece1bac4ce3d5fe37.png](https://i-blog.csdnimg.cn/blog_migrate/337d04590be3c41e6400e56cbfcf45f3.jpeg)
此时输出“运算没有问题”。若将||改为|则会报错。
3 . 对于对象引用类型:“==”比较的是对象的内存地址。
![8a7cfe4b6687bd47649bdf9f5c79f539.png](https://i-blog.csdnimg.cn/blog_migrate/ab21793bc833a01b3c685b23666a3979.jpeg)
4 . 对于基本类型数据,其实比较的是它的值。
![fe521b7dc7f48167027eac30538fb02a.png](https://i-blog.csdnimg.cn/blog_migrate/f20b0b677b47f2d90c0667a44cdbbf6e.jpeg)
最后,我自己是一名从事了多年开发的JAVA老程序员,今年年初我花了一个月整理了一份最适合2019年学习的java学习干货,可以送给每一位喜欢java的小伙伴,想要获取的可以关注我的头条号并在后台私信我:交流,即可免费获取。
![148511bc78cd7e07fa10d0a000670dbb.png](https://i-blog.csdnimg.cn/blog_migrate/2a302b3bb9f346fa8c935c7193dd5819.jpeg)