Java面试必备知识点:基础与进阶
需积分: 13 101 浏览量
更新于2024-07-24
收藏 739KB DOC 举报
"这是一份2013年的Java面试复习资料,涵盖了Java基础知识,包括类定义、关键字使用、运算符、循环控制、数据类型、方法重载与覆盖、访问权限、面向对象特性等多个方面的问题。"
这篇摘要主要讨论了Java编程语言中的关键概念和面试常见问题,下面是对这些问题的详细解释:
1. Java源文件可以包含多个类,但只能有一个公开类(public class),其他类可以是非公开的(非public)。
2. Java没有`goto`关键字,它采用结构化编程思想,避免了无控制的跳转。
3. `&`是位运算符,`&&`是逻辑运算符。前者始终计算两边的操作数,后者(短路逻辑与)仅在必要时计算第二个操作数。
4. 跳出多重嵌套循环可以使用`break`语句,配合标签(label)来指定跳出特定循环。
5. `switch`语句不能直接作用于`byte`,`long`或`String`,但在Java 7及以上版本,`switch`可以用于`String`。
6. 对于`short s1=1;`,`s1=s1+1;`会引发编译错误,因为结果是`int`类型。而`s1+=1;`会自动转换回`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。
16. 提供的代码未给出,无法分析其不妥之处。
17. `public`、`private`、`protected`分别代表公共、私有和受保护的访问级别。默认情况下(不写访问修饰符),在同一包内的类可以互相访问。
18. 方法重载(Overload)允许方法名相同但参数列表不同,返回值类型不影响重载。方法覆盖(Override)发生在子类中,要求子类方法签名与父类方法完全一致,且不能改变返回值类型。
19. 构造器不能被重写(Override),但可以重载。
20. 接口可以继承接口,抽象类可以实现接口,抽象类可以继承具体类,静态主方法(`static main`)存在于类中,而不是抽象类。
21. 实现`clone()`方法时,通常会包含`super.clone()`调用以创建新对象。
22. 面向对象的特征包括封装、继承和多态。
23. Java通过方法重写(Override)和方法签名的匹配实现多态。
24. `abstract class`可以包含方法实现,而`interface`不能。抽象类可以有非抽象方法,但接口的所有方法默认都是抽象的。
25. `abstract`方法不能同时是`static`、`native`或`synchronized`,因为这些关键字与抽象方法的定义相冲突。
26. 内部类(Inner Class)是定义在另一个类内部的类,它可以访问外部类的所有成员。Static Nested Class是静态内部类,不持有对外部类的引用。
27. 内部类可以引用其包含类的成员,包括私有成员,但静态内部类不能直接访问外部类的非静态成员,需要通过外部类实例来访问。
这些知识点是Java程序员应该掌握的基础,对于准备面试和提升编程技能都非常有帮助。
2013-06-25 上传
2018-07-19 上传
2013-11-06 上传
2013-12-08 上传
2013-02-18 上传
2013-03-21 上传
2019-02-26 上传
2014-07-15 上传
whd8181
- 粉丝: 0
- 资源: 1
最新资源
- 高清艺术文字图标资源,PNG和ICO格式免费下载
- mui框架HTML5应用界面组件使用示例教程
- Vue.js开发利器:chrome-vue-devtools插件解析
- 掌握ElectronBrowserJS:打造跨平台电子应用
- 前端导师教程:构建与部署社交证明页面
- Java多线程与线程安全在断点续传中的实现
- 免Root一键卸载安卓预装应用教程
- 易语言实现高级表格滚动条完美控制技巧
- 超声波测距尺的源码实现
- 数据可视化与交互:构建易用的数据界面
- 实现Discourse外聘回复自动标记的简易插件
- 链表的头插法与尾插法实现及长度计算
- Playwright与Typescript及Mocha集成:自动化UI测试实践指南
- 128x128像素线性工具图标下载集合
- 易语言安装包程序增强版:智能导入与重复库过滤
- 利用AJAX与Spotify API在Google地图中探索世界音乐排行榜