2013年Java面试关键问题解析

需积分: 34 3 下载量 17 浏览量 更新于2024-07-24 收藏 855KB PDF 举报
"2013java面试" 这篇资料主要涵盖了2013年Java面试中的一些常见问题,涉及了Java的基础语法、关键字、类与对象、变量、方法、运算符、异常处理、内存管理等多个方面。以下是这些问题的详细解释: 1. 一个.java源文件可以包含多个类,但只能有一个公开的(public)类,其他类可以是非公开的(非public)。 2. Java中没有goto语句,它遵循结构化编程原则,鼓励使用流程控制结构如if、for、while等。 3. &是位运算符,&&是逻辑运算符。&始终会计算两边的操作数,而&&(短路与)只有当左边为假时才会评估右边。 4. 跳出多重嵌套循环可以使用break语句配合标签(label)来实现。 5. switch语句不能用于byte和long类型,但Java 7以后可以作用于String。 6. shorts1=1;s1=s1+1; 这里的错误在于短整型(short)可能会溢出,s1+=1则会自动提升为int进行计算,再转换回short。 7. char型变量可以存储一个中文汉字,因为UTF-16编码下,一个中文字符占用两个字节。 8. 计算2乘以8最有效率的方式是直接写2 * 8。 9. 设计一个百亿计算器需要考虑大数运算,可以使用BigInteger类来实现。 10. final修饰变量时,如果是引用类型,意味着引用不可变,但引用的对象可以变;如果是基本类型,则值不可变。 11. "=="比较的是值,equals()比较的是对象内容,对于非字符串对象,equals()默认行为也是值比较。 12. 静态变量属于类,实例变量属于对象。静态变量被所有类实例共享,实例变量每个对象独立存储。 13. 不能从static方法内部直接调用非static方法,因为static方法与对象无关,而非static方法需要对象实例调用。 14. Integer是int的包装类,它们在存储和使用上有性能和内存差异。Integer在一定范围内可以直接转换为int。 15. Math.round(11.5)等于12,Math.round(-11.5)等于-11,round方法四舍五入。 16. 未给出代码,无法分析不妥之处。 17. public、private、protected和默认访问修饰符分别代表全局、私有、包内和仅类内可见。 18. Overload重载是方法名相同但参数列表不同,不能改变返回值类型。Override重写是子类覆盖父类方法,必须保持签名一致。 19. 构造器不能被override,但可以被重载。 20. 接口可以继承接口。抽象类可以实现接口,但不能继承具体类。抽象类可以有静态的main方法。 21. clone()方法通常会先调用super.clone()以确保正确复制对象。 22. 面向对象的特征包括封装、继承、多态。 23. Java实现多态主要通过方法重写(Override)和接口实现(Implements)。 24. abstract class可以包含抽象方法和非抽象方法,而interface只能包含抽象方法。 25. abstract method不能是static、native或synchronized,因为这些特性与抽象方法的定义冲突。 26. 内部类是嵌套在另一个类中的类,StaticNestedClass是静态嵌套类,与外部类之间无实例关联;InnerClass是非静态内部类,需要外部类实例。 27. 内部类可以引用外部类的所有成员,包括私有成员,但不能访问外部类的静态初始化块。 28. 匿名内部类可以继承类或实现接口,没有名字,常用于简洁地创建一次性使用的类。 以上内容详尽解答了2013年Java面试中出现的关键知识点,涵盖了Java语言的多个核心概念。