Java面试常见问题解析

需积分: 8 0 下载量 129 浏览量 更新于2024-07-23 收藏 595KB DOC 举报
Java面试宝典 Java面试宝典是Java开发者的必备知识库,本文档涵盖了Java基础知识、Java语法、面向对象编程、多态、继承、接口、抽象类、内部类等方面的知识点,旨在帮助Java开发者快速掌握Java语言的基础知识,提高开发效率和代码质量。 一、Java基础知识 1. 一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 可以,在Java中,一个".java"源文件可以包括多个类,但只有一个public类,并且文件名必须与public类名相同。其他类可以是default或private的。 2. Java有没有goto? Java中没有goto语句,但可以使用break、continue、return语句来控制程序的流程。 3. 说说&和&&的区别。 &是位运算符,用于执行按位与操作;&&是逻辑与运算符,用于执行逻辑与操作。 4. 在JAVA中如何跳出当前的多重嵌套循环? 可以使用break语句跳出当前循环,也可以使用return语句跳出当前方法。 5. switch语句能否作用在byte上,能否作用在long上,能否作用在String上? switch语句可以作用在byte、short、char、int类型上,但不能作用在long类型上。在Java 7中,switch语句可以作用在String类型上。 二、变量和数据类型 6. shorts1=1;s1=s1+1;有什么错?shorts1=1;s1+=1;有什么错? 前者错误因为short类型变量不能赋值给int类型变量,后者正确因为+=运算符可以自动进行类型转换。 7. char型变量中能不能存贮一个中文汉字?为什么? char型变量可以存贮一个中文汉字,因为char类型可以存贮Unicode字符。 8. 用最有效率的方法算出2乘以8等於几? 可以使用左移运算符<<,2<<3等於16。 9. 请设计一个一百亿的计算器 可以使用BigInteger类或自定义计算器类来实现大数计算。 10. 使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变? 使用final关键字修饰一个变量时,引用不能变,但引用的对象可以变。 十一、方法和函数 11. "=="和equals方法究竟有什么区别? "=="运算符用于比较对象的引用是否相同,而equals方法用于比较对象的内容是否相同。 12. 静态变量和实例变量的区别? 静态变量属于类,实例变量属于对象。 十三、继承和多态 13. 是否可以从一个static方法内部发出对非static方法的调用? 不能,因为static方法属于类,而非static方法属于对象。 14. Integer与int的区别 Integer是int类型的包装类,int是基本数据类型。 十五、面向对象编程 15. Math.round(11.5)等於多少?Math.round(-11.5)等於多少? Math.round(11.5)等於12,Math.round(-11.5)等於-11。 16. 下面的代码有什么不妥之处? 代码中可能存在null指针异常或类型转换异常。 十七、访问控制和继承 17. 请说出作用域public,private,protected,以及不写时的区别 public表示公共访问,private表示私有访问,protected表示保护访问,默认访问权限为default。 十八、方法重载和方法覆盖 18. Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型? Overload是方法重载,Override是方法覆盖,Overloaded的方法可以改变返回值的类型。 十九、构造器和接口 19. 构造器Constructor是否可被override? 不能,因为构造器不继承。 二十、抽象类和接口 20. 接口是否可继承接口?抽象类是否可实现(implements)接口?抽象类是否可继承具体类(concrete class)? 接口可以继承接口,抽象类可以实现接口,抽象类可以继承具体类。 二十一、clone方法 21. 写clone()方法时,通常都有一行代码,是什么? super.clone()。 二十二、面向对象特征 22. 面向对象的特征有哪些方面? 封装、继承、多态、抽象。 二十三、多态机制 23. java中实现多态的机制是什么? 方法重写和方法重载。 二十四、抽象类和接口 24. abstract class和interface有什么区别? 抽象类可以包含部分实现,接口只能声明方法签名。 二十五、抽象方法 25. abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized? 不能,因为抽象方法不能是static、native或synchronized。 二十六、内部类 26. 什么是内部类?StaticNestedClass和InnerClass的不同。 内部类是定义在另一个类中的类,StaticNestedClass是静态内部类,InnerClass是非静态内部类。 二十七、内部类的限制 27. 内部类可以引用它的包含类的成员吗?有没有什么限制? 可以,但需要使用外部类的对象来访问内部类的成员。 二十八、匿名内部类 28. AnonymousInnerClass(匿名内部类)是否可以extends(继承)其它类,是否可以implements(实现)其它接口? 可以。