java面试基础部分(1)

1.Java 有没有 goto?

作为java的保留字,但是在java中没有使用。

2.&和&&的区别

两者都是逻辑“与”的意思,&&会出现短路,也就是前面的条件为false就不会判断后面的,效率比较高,而&即使前面条件为false也会判断后面的条件

3.java如何跳出多重循环

在需要跳出的循环的地方做标记,假设标记为OK:在需要跳出的地方break OK;就能跳出多重循环。

4.switch表达式可以放哪些数据类型

整型或可以隐式的转为整型的数据类型,有int,char,byte,short,还有枚举类型,在jdk1.7之后支持String类型。

5.short  s1=1,  Q1:s1=s1+1; Q2:s1+=1; Q1和Q2的正误。

Q1是错误的,Q2是正确的。

Q1会出现强制转换类型的错误,Q2中的+=隐式的含有一个类型的自动提升。

6.char类型变量能储存一个汉字吗

char类型的数据类型就是存储一个Unicode字符,所以是可以存储一个汉字的,占用两个字节。

7.使用final关键字修饰变时,是引用不能变,还是引用的对象不能变

引用的变量不能变,引用的对象是可以改变的。

举个例子:

final Stringbuffer sb=new Stringbuffer("aaa");

sb=new new Stringbuffer("bbb");//报错,因为final修饰,引用不能改变

sb.append("bbb");//正确,引用的对象可以改变

8.==和equals的区别

==比较的是地址,equals比较字面量的值。如果没有定义equals方法,他将继承Object类的equals方法,Object的equals方法是这样的:

public boolean equals(Object o){

     return  this==o;

}

也就是比较的是地址,所以如果需要比较内容需要重写equals方法,String就重写了equals方法。

9.静态变量和实例变量的区别

静态变量属于类,是唯一的,实例变量属于具体对象的。因此每创建一个类的对象都会创建一个实例变量,而在类的初始化的时候静态变量只初始化一次。

例子:

public class Test{

static int a=0;

int b=0;

public Test(){

a++;

b++;

system.out.print("a:"+a+"====b:"+b);

}

}

创建Test类的实例,会发现静态变量a会累加,实例变量不会。

10.Math.round(11.5) 等於多少? Math.round(-11.5)

Math.round(11.5) =12.Math.round(-11.5)=11;

四舍五入先加0.5在向下取整。

猜你喜欢

转载自blog.csdn.net/anewmonkey/article/details/83211702