Java面试基础

来源:互联网 发布:oracle sql select as 编辑:程序博客网 时间:2024/06/05 22:12

1.&和&&的区别

   都可以做 and  运算,&:当前表达式为false时,不运算后面的表达式,&&:有短路功能,当前表达式为false时, 不运算后面的表达式,&还可以做位运算,当&  操作符两边的表达式不是boolean类型时,&表示按位与操作

2.在JAVA中如何跳出当前的多重嵌套循环?

   Java中,要想跳出多重循环,可以在外面的循环语句前定义一个标号,然后在里层循环体的代码中使用带有标号的break语句,即可跳出外层循环。例如

[java] view plaincopy在CODE上查看代码片派生到我的代码片
  1.        ok:  
  2. for(int i=0;i<10;i++)  
  3. {  
  4.     for(int j=0;j<10;j++)  
  5.     {  
  6.         System.out.println(“i=” + i + “,j=” + j);  
  7.         if(j == 5break ok;  
  8.     }  
  9. }   

或者:
[java] view plaincopy在CODE上查看代码片派生到我的代码片
  1.       int arr[][] = {{1,2,3},{4,5,6,7},{9}};  
  2.       boolean found = false;  
  3.       for(int i=0;i<arr.length && !found;i++)  
  4.   
  5. for(int j=0;j<arr[i].length;j++)  
  6. {  
  7.     System.out.println(“i=” + i + “,j=” + j);  
  8.     if(arr[i][j]  == 5)   
  9.     {  
  10.         found = true;  
  11.         break;  
  12.     }  
  13. }  
  14.   
     break退出当前循环,continue退出本次循环继续下一次循环

3.switch语句能否作用在byte上,能否作用在long上,能否作用在String上?

   在switchexpr1)中,expr1只能是一个整数表达式或者枚举常量(更大字体),整数表达式可以是int基本类型或Integer包装类型,由于,byte,short,char都可以隐含转换为int,所以,这些类型以及这些类型的包装类型也是可以的。显然,longString类型都不符合switch的语法规定,并且不能被隐式转换成int类型,所以,它们不能作用于swtich语句中。

4.fianal关键字修饰一个变量时,是引用不能改变,但引用的对象可以改变

5.OverLoad和OverRide:OverLoad,重载,一个类中可以有多个名称相同的方法,但这些方法的参数列表个不相同,仅仅返回值不相同的不叫重载;OverRide,覆盖,子类中的方法与父类中的方法完全相同,子类的方法就将父类的方法覆盖了,public方法才存在覆盖

6.线程如何同步和通信:只有多个synchronized使用的事同一监视器对象,这些代码块之间才具有互斥的效果,对于同步方法,同步监视器对象是this,对于静态同步方法,监视器对象是该类的Class对象

更多0
0 0
原创粉丝点击