Java开发面试题一 (含答案)

1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?

2、Java有没有goto?

3、说说&和&&的区别。

4、在JAVA中如何跳出当前的多重嵌套循环和跳出一次当前的循环?

5、switch语句能否作用在byte上,能否作用在long上,能否作用在String上?

6、short s1= 1; s1 = (s1+1是int类型,而等号左边的是short类型,所以需要强转)1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?(没有错)

7、char型变量中能不能存贮一个中文汉字?为什么?

8、用最有效率的方法算出2乘以8等於几?

9、使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?

10,静态变量和实例变量的区别?

答案:
1.可以,但是有且只有一个public类,并且名字和类名相同

2 java保留着goto,现不使用,在c语言中配合着条件语句使用

3符号两边都为true才为true,&&当第一个条件不满足时,不会判断第二个条件

4.加上判断条件,用break跳出循环,用continue跳出一次循环

5.switch(),括号中一般填写int和Integer型参数,char、byte、short都能转换成int型,但是long不符合规范 jdk1.7之后可以支持

6.short s1=1;s1=s1+1; s1加上1之后会变成int型,再赋值给short型,类型不匹配;同样,short s1=1;s1+=1;会自动将类型装换为short类型

7.char是用来存储unicode的,unicode编码中包含汉字,所以char变量可以存储中文汉字,若编码中不存在的,不会显示,unicode是2个字节的,所以char存储2字节

8最有效的方法是:
public class Demo02 {
public static void main(String args[]){
int a=2<<3;
System.out.println(a);
}
}
解析:
a << b就表示把a转为二进制后左移b位(在后面添b个0)。例如100的二进制为1100100,而110010000转成十进制是400,那么100 << 2 = 400。可以看出,a << b的值实际上就是a乘以2的b次方,因为在二进制数后添一个0就相当于该数乘以2。 通常认为a << 1比a * 2更快,因为前者是更底层一些的操作。因此程序中乘以2的操作请尽量用左移一位来代替。 定义一些常量可能会用到<<运算。你可以方便地用1 << 16 - 1来表示65535。很多算法和数据结构要求数据规模必须是2的幂,此时可以用<<来定义Max_N等常量。 和<<相似,a >> b表示二进制右移b位(去掉末b位),相当于a除以2的b次方(取整)。我们也经常用>> 1来代替div 2,比如二分查找、堆的插入操作等等。想办法用>>代替除法运算可以使程序效率大大提高。最大公约数的二进制算法用除以2操作来代替慢得出奇的mod运算,效率可以提高60%。

byte 1字节、char 2字节、short 2字节、int 4字节、float 4字节、double 8字节、long 8字节、

9.final修饰变量时,引用变量不变,引用变量指向的对象的内容可变,例:final StringBuffer buffer=new StringBuffer(“aaa”);若buffer=new StringBuffer(“”);会编译报错,但是对内容修改 buffer.append(“22”);是不会报错的

10.分为语法上的区别和运行中的区别。

语法:静态变量中有static修饰符,实例变量中没有,

运行:静态变量的值可以给所有对象使用,使用之后的值会产生相应的变化,再给下一个对象使用,实例变量要在对象new之后,才会在内存中分配空间,且只给实例的对象使用。静态变量不需要new就会产生内存空间,

demo :

public class A(){

    static int a=0;

    public int b=0;

}

public class B(){

       public void main (String args[]){

            A a1=new A();
            A a2=new A();
            a1.a=3; //相当于 A.a=3
            a1.b=3; // A.b=3
            System.out.println(a1.a); //静态变量,不用实例,就有内存,答案为3
            System.out.print(a2.b); //实例变量,答案为0,没有改变a2的值,所有为0,
            
          System.out.print(A.a); //结果为3 ,编译不报错 静态变量为类变量,可以调用;
            System.out.print(A.b); //编译报错,没有这个方法

}}

发布了34 篇原创文章 · 获赞 5 · 访问量 2263

猜你喜欢

转载自blog.csdn.net/tanfei_/article/details/103155498