java笔试题之基础部分

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

    可以有多个类,但只能有一个public的类,并且public的类名必须与文件名一致

  2. java有没有goto?

    goto是java的保留字,不是关键字,不再java中使用

  3. java中&和&&的区别,|和||的呢?

    1.&和&&都可以做逻辑与的运算符,表示逻辑与,即但运算符两边的表达式的结果都为true是,整个结果才为true。
    2.&&还有短路功能,即第一个表达式为false是,则不用计算第二个表达式,例如if(str!=null&&!str.equals(""))表达式,但str为null时,后面的表达式不会执行,所以不会出现空指针异常(NullPointException)。如果将&&改为&,则会发生空指针异常
    3.&还可以做位运算,当&操作符两端的表达式不是boolean类型是,&表示按位操作。

  4. 当前的多重嵌套循环?

  5. switch语句能否作用在byte上,能否作用在long上,能否作用在string上?

  6. short s1=1;s1=s1+1;有什么错?short s1=1;s1+=1;有什么错?

    1.对于short s1=1;s1=s1+1;由于s1+1运算时会自动提升表达式的类型,所及结果为int型,在赋值给short类型s1,编译器将报告需要强制类型转换的错误。
    2.对于short s1=1;s1+=1;由于+=是java语言规定的运算符,java编译器会对他进行特殊处理,因此编译正确。

  7. char型变量中能不能存储一个中文汉字,为什么?

  8. 用什么方法可以最有效的算出2乘以8等于几?

    答:2<<3。因为在java中位运算由cpu直接支持,效率最高。

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