Java面试必备:基础篇
需积分: 10 53 浏览量
更新于2024-07-29
收藏 1.03MB DOC 举报
"Java常见面试题 基础"
这些面试题涵盖了Java语言的基础知识,包括语法、数据类型、操作符、控制结构、类和对象、接口、内存管理以及多态性等方面。以下是对这些知识点的详细解释:
1. 一个".java"源文件可以包含多个类,但只能有一个公共类(public class),且该公共类的名称必须与文件名相同。
2. Java中没有`goto`关键字,它是一种被废弃的控制流语句,Java推崇更清晰的编程逻辑,因此没有采用。
3. `&`是位运算符,无论两边的操作数是否为真,都会进行计算;而`&&`是逻辑与运算符,只有当左边的操作数为真时,才会评估右边的操作数。
4. 要跳出多重嵌套循环,可以使用`break`语句,配合标签来指定跳出哪个循环。例如:`break label;`
5. `switch`语句可以作用在`byte`, `char`, `short`, `int`以及枚举类型上,但在Java 7之后,也可以作用于`String`类型。
6. 对于`short s1 = 1; s1 = s1 + 1;`,这里会自动提升`short`到`int`,可能会超出`short`的范围,需要强制类型转换。而`s1 += 1;`编译器会自动处理类型转换,避免溢出。
7. `char`型变量可以存储一个中文汉字,因为UTF-16编码中一个字符可能占据两个字节。
8. 计算2乘以8最有效率的方式是直接使用`2 * 8`。
9. 设计一个一百亿的计算器要考虑数值的精度问题,可能需要使用`BigDecimal`类来处理大数运算。
10. `final`关键字修饰变量时,意味着引用一旦初始化后就不能改变,即不能指向其他对象,但引用的对象内容是可以改变的,除非对象本身也是`final`的。
11. `==`比较的是两个对象的引用,而`equals()`方法通常比较的是对象的内容。对于基本类型,`==`就是比较值;对于对象,`==`比较的是两个引用是否指向同一个对象,`equals()`比较的是对象的内容是否相等。
12. 静态变量属于类,而实例变量属于类的每个实例。静态变量在类加载时初始化,所有实例共享;实例变量在创建对象时初始化,每个对象有自己的副本。
13. 不能从一个`static`方法内部发出对非`static`方法的调用,因为`static`方法不依赖于任何实例对象,而非`static`方法需要实例对象。
14. `Integer`是`int`的封装类,两者在使用上有性能和自动装箱拆箱的区别。`int`是原始类型,处理速度更快,而`Integer`提供了更多方法和特性。
15. `Math.round(11.5)`等于12,`Math.round(-11.5)`等于-11,`round()`方法四舍五入到最接近的整数。
16. 代码的不妥之处可能包括语法错误、逻辑错误或不符合最佳实践的情况,具体要看代码内容。
17. `public`、`private`、`protected`和默认(包访问)作用域决定了类、方法和变量的可见性。`public`对所有类可见,`private`仅对同一类可见,`protected`对同一包及子类可见,无修饰符的成员对同一包内的类可见。
18. `Overload`是重载,表示同一类中方法名相同但参数列表不同的多个方法;`Override`是重写,表示子类重新定义父类中已存在的方法。重载不改变返回值类型,而重写可能会改变方法体但不能改变返回值类型。
19. 构造器`Constructor`不能被`override`,但可以被`overload`。
20. 接口可以继承接口;抽象类可以实现接口,但不能继承具体类;抽象类中可以有静态的`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. 内部类可以引用其包含类的成员,包括私有成员,但不能访问`final`的局部变量,除非该变量被初始化。
28. 匿名内部类(Anonymous Inner Class)是没有名字的内部类,通常用于快速实现一个接口或继承一个类,并立即创建其对象。
以上是Java面试中常见的基础问题和解答,理解并掌握这些知识将有助于面试者在面试中表现出色。
2023-11-29 上传
141 浏览量
2009-11-03 上传
2007-11-17 上传
2018-11-05 上传
2011-03-23 上传
2023-03-01 上传
2023-05-20 上传
2009-04-16 上传
hi_kevin
- 粉丝: 91
- 资源: 7
最新资源
- cli2gui-开源
- BitErrorRateBERComparisonofAWGNChannels_matlab_berawgn_SIMULINK_
- 行业文档-设计装置-众核并行处理的教学系统.zip
- mk-slack64-multilib:Slackware64 + Multilib树/ ISO生成器-开源
- 调用winscp,通过ssh方式升级tomcat程序
- matlab自相关代码-pylfsr.github.io:主页
- dropwizard-heroku-example:Dropwizard 示例应用程序修改为部署到 Heroku
- 基于Go的企业级物联网平台低代码开发基座设计源码
- Java项目:婚纱影楼摄影预约网站设计和实现(javaweb+SSM+springboot)
- clbmdll-开源
- 移动办公APP开发解决方案共2页.pdf.zip
- 有限体积法计算方腔流(F)_flow_流场计算_流体力学_cavity_方腔_
- Android-NumberLimitEditText:NumberLimitEditText 是一个 EditText,当你的输入超出你想要的长度时,会显示一个 Toast 来告诉用户!
- 0-30V可调电源,带仿真
- REST-Framework
- Metatest-开源