java面试题 1-10

来源:互联网 发布:golang 编译成dll 编辑:程序博客网 时间:2024/05/12 20:17
1.一个".java"源文件中是否可以包括多个类(不是内部 类)?有什么限制?
     可以有多个类,但只能有一个public类,并且public 类的类名和文件名必须一致。

2、Java有没有 goto?
     goto 是java的保留字,现在没有在java中使用。

3、说说&和&&的区别。
      ① 相同点
           两个都是用作逻辑与的运算符,当运算符两边的表达式都为true时,结果为true,否则只要一边为false,结果就为false;
      ②不同点
          && 具有短路的功能,当第一个表达式的计算结果为false时,就不再计算第二个表达式的值 ,整个表达式的结果就为false,&不具有短路功能,两个表达式都会计算。
          & 还可以用作为运算符,当&两边的表达式结果不为boolean类型的话,&就表示按位与操作。eg:使用0x0f与一个整数进行&运算 ,求该整数的最低四个bit位。

4、在JAVA中如何跳出当前的多重嵌套循环?
    ① 可以再循环外面设置一个bool类型的为false 的变量。
    让最外面的循环条件加上这个bool的判断,再里面的循环控制这个变量的值,来控制是否继续循环。
    ②再循环外面定义一个标号,再循环里面加上带标号的break语句就能跳出外层循环。

5、switch 语句能否作用在byte上,能否作用在 long 上,能 否作用在String 上?
   在switch(exp)中,exp只能是一个整数表达式或者枚举常量,整数表达式可以是int基本类型或integer包装类型,由于byte、short 、char 都可以隐式转化为int,所以switch可以作用在byte上,long和string不能转化为int,所以switch不能作用在long和string上。

6、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1; 有什么错?
 对于前面 s1 + 1 会自动提升表达式的类型 为int类型 。int类型的数据赋值给short类型的s1,编译器就会报类型转化的错误。
 对于后面 s1 +=1  ,+= 是java语言规定的运算符,编译器会做特殊的处理,不会报错,可以编译。

7、char型变量中能不能存贮一个中文汉字?为什么?
     可以,char型变量是用来存储unicode编码的字符的,unicode字符集包含汉子,所以char型变量能存贮汉字。当不包含再Unicode中的特殊汉字。

8、用最有效率的方法算出2 乘以8 等於几?
        2<<3,位运算cpu直接支持,效率最快。

9、请设计一个一百亿的计算器
思路;
考虑到 ,两个数值的运算结果不能超过该类型的数值范围,必须设置一个类可以表示一个很大的数,并且提供与另外一个整数进行计算的功能。
1.类中定义两个变量 ,一个表示符号 ,另一个用字节数组表示数值的二进制数。
2.有一个构造方法 可以把包含多位数值的字符串转换为内部的符号和字节数组
3.提供加减乘除的功能。

10、使用final 关键字修饰一个变量时,是引用不能变,还 是引用的对象不能变?
是指的引用不能变,引用的对象内容可以变化。
0 0