在java中,它们的区别?
来源:互联网 发布:mac怎么创建加密文件夹 编辑:程序博客网 时间:2024/06/05 10:47
&与&&的区别:
1)&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。
2)&&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,例如,对于if(str!=null&&!str.equals(“”))表达式,当str为null时,后面的表达式不会执行,所以不会出现NullPointerException如果将&&改为&,则会抛出NullPointerException异常。
3)&还可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位与操作。
“==”和equals方法的区别:
int a=10; int b=10; 则a==b将是true。 但不好理解的地方是: String a=new String( "foo "); String b=new String( "foo "); 则a==b将返回false。
对象变量其实是一个引用,它们的值是指向对象所在的内存地址,而不是对象本身。a和b都使用了new操作符,意味着将在内存中产生两个内容为 "foo "的字符串,既然是“两个”,它们自然位于不同的内存地址。a和b的值其实是两个不同的内存地址的值,所以使用 "== "操作符,结果会是false。诚然,a和b所指的对象,它们的内容都是 "foo ",应该是“相等”,但是==操作符并不涉及到对象内容的比较。 对象内容的比较,正是equals方法做的事。 看一下Object对象的equals方法是如何实现的: boolean equals(Object o){ return this==o; } Object对象默认使用了==操作符。所以如果你自创的类没有覆盖equals方法,那你的类使用equals和使用==会得到同样的结果。同样也可以看出,Object的equals方法没有达到equals方法应该达到的目标:比较两个对象内容是否相等。因为答案应该由类的创建者决定,所以Object把这个任务留给了类的创建者。
i++和++i的区别:
int a=6,b=7;
int s=(a++ + ++b)-(++a -4);---->S=(6+7)-(7-4)
i++ 表示i的值作为表达式的值,然后i自加1.而 a = ++i,相当于 i=i+1; a = i;++i 表示i先自加1再作为表达式的值,而 a = i++,相当于 a = i; i=i+1;while 和do while的区别:
while(表达式){
循环体
}
do{
}while(表达式)
在语句块中就可知道它们的区别:while是先会进行条件判断,当条件为ture的时候执行循环体,直到条件为FALSE跳出循环体
do..while是先会执行循环体,再去判断条件是否为True,要注意的是不管条件是否为True,do..while至少会执行一次循环体。
break和continue的区别:
程序进入循环体后在下次循环判断之前执行循环体里的所有语句,break和continue语句可以终止循环或忽略某些循环。
//打印三角形//for(int i=0;i<6;i++){//for(int s=0;s<i;s++){//////System.out.print("*");//continue;//程序会跳出本次循环,执行下次循环// }//////System.out.println("");//break;//程序直接跳出循环,执行循环外的程序//}break: 此语句导致程序终止包含它的循环,并进行程序的下一阶段(整个循环后面的语句),即,不是跳到下一个循环周期而是退出循环。如果break语句包含在嵌套循环里,它只跳出最里面的循环。
continue: 此语句导致程序去执行下一次循环。
switch和if的区别:
Scanner g=new Scanner(System.in);
//System.out.println("请输入你的成绩:");
//int number=g.nextInt();
//if(gread>=90){
//System.out.println("优秀");
//
//}else if(gread>=80){
//System.out.println("良好");
//}else if(gread>=60){
//System.out.println("及格");
//}
//else{
//System.out.println("差");
//
//}switch (gread) {
个人觉得switch和if用法上和功能都是差不多,不过从这两块代码中可以看出想要以范围的形势去得到一个结果,最好是用if语句更好一些,因为case的只能是一个规定的格式(只能用int char String类型),当以一个值或者字符去得到一个结果是时,使用switch更简洁方便些。
//case 90:
//System.out.println("优秀");
//break;
//case 80:
//System.out.println("良好");
//break;
//default:
//System.out.print("差");
//}
- 在java中,它们的区别?
- java中String,StringBuilder ,StringBuffer的区别?它们的各自优点在哪?
- 【JAVA中抽象类与接口的区别,分别在什么情况下使用它们】
- JAVA中抽象类与接口的区别,分别在什么情况下使用它们
- JAVA中内部类和匿名内部类的区别,分别在什么时候使用它们?
- 在MFC中,ON_COMMAND, ON_MESSAGE, ON_NOTIFY它们的区别?
- 在MFC中,ON_COMMAND, ON_MESSAGE, ON_NOTIFY它们的区别?(转)
- Java中JDK和JRE的区别是什么?它们的作用分别是什么?
- Java中JDK和JRE的区别是什么?它们的作用分别是什么?
- Java中JDK和JRE的区别是什么?它们的作用分别是什么?
- java.util中ArrayList、LinkedList以及Vector它们三者的区别与联系
- java.util中ArrayList、LinkedList以及Vector它们三者的区别与联系
- java.util中ArrayList、LinkedList以及Vector它们三者的区别与联系!
- java程序在执行过程中,类,对象以及它们成员加载、初始化的顺序如下:
- java创建两个线程的方法和它们的区别
- Java线程状态转换的方法以及它们的区别
- 在电子电路中,常可以看到VCC、VDD和VSS三种不同的符号,它们有什么区别呢?
- 在C#中可以使用RegisterClientScriptBlock、RegisterStartupScript和RegisterClientScriptInclude来向客户端注册脚本,它们的区别
- VS2010编译cocos2d出现 LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 错误
- Spring—数据库连接池C3P0、DBCP、Proxool详细配置
- ExtJs学习过程记录(二)
- Spring——注解上传文件.@RequestParam(value = "file1", required = false) ;
- 《潜行者-陈天桥》读书笔记
- 在java中,它们的区别?
- 在bin目录的debug文件夹下按日期生成日志文件
- qt学习笔记(三) QString char int之间的转换
- WebLogic undocumented hacking
- Vim 配置与快捷键
- 第11周项目1000以内的回文数
- Lync Server 2010 部署(上)
- shell常用脚本比较
- sql 2005 用户 sa 登录失败