Java面试必备知识精粹
需积分: 0 119 浏览量
更新于2024-07-23
收藏 1.12MB PDF 举报
"Java面试宝典2013"
这篇文档是针对Java程序员的面试准备指南,涵盖了2013年常见的Java面试问题。以下是对其中提到的一些关键知识点的详细解释:
1. Java源文件可以包含多个类,但只能有一个公开类(public class),其余的类可以是非公开的(package-private)。
2. Java语言中没有`goto`关键字,它被视为过时控制流结构,不被支持。
3. `&`是位运算符,而`&&`是逻辑运算符。位运算符会计算两个操作数的每一位,而逻辑运算符会在左侧操作数确定后就停止计算,称为短路逻辑。
4. 跳出多重嵌套循环,可以使用`break`语句配合标签(label)来实现。
5. `switch`语句在Java 7及之前不能用于`byte`,但在Java 7之后可以。它不能用于`long`和`String`,但Java 7引入了字符串支持,Java 14则引入了对`char`数组的支持。
6. 对于`short s1=1;`,直接加1会导致类型提升,需要强制转换:`s1=(short)(s1+1);`。而`s1+=1;`会自动处理类型提升,无需额外转换。
7. `char`变量可以存储一个中文字符,因为Unicode编码包含了中文字符。
8. 计算2乘以8的最有效率方式是`2 << 3`,利用位左移运算。
9. 设计一个能处理一百亿的计算器,需要考虑数据类型的选用,如使用`BigInteger`类处理大整数。
10. 使用`final`关键字修饰变量时,引用一旦赋值就不能改变,但引用的对象内容可以改变。如果对象是不可变的(如`final String`),那么对象本身及其内容都不能改变。
11. `==`比较的是对象的引用,而`equals`方法比较的是对象的内容。对于基本类型,`==`就是内容比较,对于对象,`equals`需要重写才能比较内容。
12. 静态变量属于类,实例变量属于对象。静态变量在内存中的位置是在方法区,实例变量在堆内存中。
13. 不能从静态方法内部直接调用非静态方法,因为静态方法与类关联,而非静态方法与对象关联。
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),但可以重载(overload)。
20. 接口可以继承接口,抽象类可以实现接口,但抽象类不能继承具体类(concrete class)。抽象类中可以有静态的`main`方法,但无法作为程序的入口点。
21. 在实现`clone()`方法时,通常会调用`super.clone()`以获取原始对象的副本。
22. 面向对象的特征包括封装、继承和多态。
23. Java通过方法的重写(Override)和接口的实现来实现多态。
24. `abstract class`可以有方法实现,而`interface`所有方法默认都是抽象的。`abstract class`可以有构造器,`interface`没有。
25. `abstract`方法不能同时是`static`、`native`或`synchronized`,因为这些特性与抽象方法的定义相冲突。
26. 内部类是定义在一个类内部的类,可以是静态(StaticNestedClass)或非静态(InnerClass)。静态内部类不需要对外部类的引用,非静态内部类需要。
27. 内部类可以直接访问外部类的所有成员,包括私有成员,但外部类不能直接访问内部类的私有成员。
28. 匿名内部类可以继承其他类或实现接口,但不能声明为`extends`或`implements`,因为其名称本身就是匿名的。
以上是对Java面试宝典2013中部分内容的详细解释,这些知识点是Java开发者应该熟悉的基础概念和重要特性。
2018-01-29 上传
2013-07-15 上传
2013-06-04 上传
2024-10-25 上传
2024-10-25 上传
2024-10-25 上传
piruoman
- 粉丝: 0
- 资源: 5
最新资源
- ES管理利器:ES Head工具详解
- Layui前端UI框架压缩包:轻量级的Web界面构建利器
- WPF 字体布局问题解决方法与应用案例
- 响应式网页布局教程:CSS实现全平台适配
- Windows平台Elasticsearch 8.10.2版发布
- ICEY开源小程序:定时显示极限值提醒
- MATLAB条形图绘制指南:从入门到进阶技巧全解析
- WPF实现任务管理器进程分组逻辑教程解析
- C#编程实现显卡硬件信息的获取方法
- 前端世界核心-HTML+CSS+JS团队服务网页模板开发
- 精选SQL面试题大汇总
- Nacos Server 1.2.1在Linux系统的安装包介绍
- 易语言MySQL支持库3.0#0版全新升级与使用指南
- 快乐足球响应式网页模板:前端开发全技能秘籍
- OpenEuler4.19内核发布:国产操作系统的里程碑
- Boyue Zheng的LeetCode Python解答集