Java面试必备:基础题集
需积分: 1 138 浏览量
更新于2024-07-18
收藏 1.39MB PDF 举报
"这篇文档包含了Java基础面试题,适合初级Java开发者进行面试准备。文档涵盖了Java语言的基础知识,包括语法特性、数据类型、类和对象、接口、内存管理等多个方面,旨在帮助读者应对常见的Java面试问题。"
1. 一个.java源文件中可以包含多个类,但只能有一个公开类(public class),其他类可以是非公开的,作为主类的辅助类。
2. Java语言中没有goto语句,它遵循结构化编程原则,鼓励使用流程控制语句如if、while、for等。
3. &是位运算符,而&&是逻辑运算符。&会执行两边的操作,即使左边的表达式为假;&&则是短路运算符,如果左边为假,则不会执行右边的表达式。
4. 在Java中,跳出多重嵌套循环可以使用label + break语句,例如:`outer: for(...) { ... inner: for(...) { ... if(condition) break outer; } }`
5. switch语句不能作用于byte类型,但Java 7以后可以作用于char和枚举类型,不能直接作用于long和String,但可以通过包装类Long和String实现。
6. shorts1 = 1; s1 = s1 + 1; 这里的s1 + 1会自动提升为int类型,赋值回short会抛出编译错误。而s1 += 1;是复合赋值运算符,会自动处理类型转换。
7. char型变量可以存储一个中文汉字,因为UTF-16编码每个字符通常占用两个字节。
8. 最有效率计算2乘以8的方法是直接写`2 * 8`,因为Java会自动优化。
9. 设计一个一百亿的计算器,要考虑大整数运算,可以使用BigInteger类。
10. 使用final关键字修饰变量时,变量的引用不能改变,但如果是对象引用,对象的内容可以改变。
11. "=="比较的是对象的引用,而equals方法比较的是对象的内容。对于基本类型,两者行为相同;对于对象,"=="比较的是内存地址,equals比较的是内容。
12. 静态变量属于类,而实例变量属于对象。静态变量由所有类的实例共享,实例变量是每个对象独有的。
13. 不可以从一个static方法内部直接调用非static方法,因为static方法不依赖于任何对象,而非static方法需要对象才能调用。
14. Integer是int的封装类,int是原始类型。Integer对象占用更多内存,但提供了更多的方法和功能,而int更高效。
15. Math.round(11.5)等于12,Math.round(-11.5)等于-11。
16. 未给出代码,无法分析其不妥之处。
17. public表示全局访问,private表示私有,protected表示包内及子类访问,无修饰词表示默认访问,仅限包内访问。
18. Overload是重载,允许方法名相同但参数列表不同。Override是重写,子类可以覆盖父类的方法,但返回值类型、参数列表和访问修饰符不能改变。
19. 构造器不能被覆盖,但可以重载。
20. 接口可以继承接口,抽象类可以实现接口,具体类可以继承抽象类。抽象类中可以有静态的main方法,但不能执行,因为静态方法不属于任何实例。
21. 实现克隆时,通常会调用super.clone()来创建对象副本。
22. 面向对象的特征包括封装、继承、多态。
23. Java通过方法重写和接口实现来实现多态。
24. abstract class可以包含方法实现,可以有构造器,而interface只能声明方法,不能包含实现。接口用于定义行为规范,抽象类则用于基类模板。
25. abstract method不能同时是static、native或synchronized,因为这些特性与抽象方法的定义相冲突。
26. 内部类是定义在另一个类内部的类,分为静态内部类(StaticNestedClass)和非静态内部类(InnerClass)。静态内部类可以直接通过类名访问,非静态内部类需要外部类实例来访问。
27. 内部类可以引用它的包含类的所有成员,包括私有成员,但静态内部类不能直接访问非静态的成员。
28. 匿名内部类可以继承一个类或实现一个接口,无需定义名称,常用于一次性使用的简洁实现。
2023-04-14 上传
2023-03-28 上传
143 浏览量
2008-11-24 上传
2010-06-24 上传
163 浏览量
2010-08-23 上传
2009-09-01 上传
weixin_39617607
- 粉丝: 0
- 资源: 1
最新资源
- JDK 17 Linux版本压缩包解压与安装指南
- C++/Qt飞行模拟器教员控制台系统源码发布
- TensorFlow深度学习实践:CNN在MNIST数据集上的应用
- 鸿蒙驱动HCIA资料整理-培训教材与开发者指南
- 凯撒Java版SaaS OA协同办公软件v2.0特性解析
- AutoCAD二次开发中文指南下载 - C#编程深入解析
- C语言冒泡排序算法实现详解
- Pointofix截屏:轻松实现高效截图体验
- Matlab实现SVM数据分类与预测教程
- 基于JSP+SQL的网站流量统计管理系统设计与实现
- C语言实现删除字符中重复项的方法与技巧
- e-sqlcipher.dll动态链接库的作用与应用
- 浙江工业大学自考网站开发与继续教育官网模板设计
- STM32 103C8T6 OLED 显示程序实现指南
- 高效压缩技术:删除重复字符压缩包
- JSP+SQL智能交通管理系统:违章处理与交通效率提升