Java面试必备:基础题解析与示例
需积分: 9 50 浏览量
更新于2024-09-06
收藏 73KB DOC 举报
"这份文档是针对Java面试准备的一系列问题和答案集合,涵盖了Java基础知识、语法特性、多线程、异常处理、内存管理等多个方面,旨在帮助面试者巩固基础,提升面试成功率。"
1. 多态例子:多态是面向对象编程的重要特性,允许子类对象可以被当作父类对象来使用。例如:
```java
class Animal {
public void sound() {
System.out.println("动物发出声音");
}
}
class Dog extends Animal {
@Override
public void sound() {
System.out.println("狗汪汪叫");
}
}
public class Main {
public static void main(String[] args) {
Animal animal = new Dog(); // 父类引用指向子类实例
animal.sound(); // 输出"狗汪汪叫",体现了多态性
}
}
```
2. Java基本数据类型包括整型(byte, short, int, long)、浮点型(float, double)、字符型(char)和布尔型(boolean)。String是对象,不是基本数据类型,而是类。
3. int是原始数据类型,直接存储值;Integer是int的包装类,存储对象,可以进行自动装箱拆箱操作。
4. String不可变,而StringBuffer是可变的,适合在多线程环境下进行字符串拼接,避免频繁创建新对象。
5. Collection是所有集合接口的父接口,代表单列集合;Collections是工具类,提供了一系列静态方法来操作集合。
6. &是按位与运算符,&&是逻辑与运算符,后者具有短路特性,只有在左操作数为真时才会计算右操作数。
7. Overload表示重载,同一类中方法名相同但参数列表不同的多个方法;Override表示重写,子类方法覆盖父类方法,方法名、返回类型和参数列表必须完全一致。
8. error通常指系统级错误,无法恢复;exception是程序运行时的异常,可以捕获并处理。
9. abstract class可以包含方法实现,而interface只能声明方法,不能包含实现;抽象类可以有构造函数,接口没有。
10. final修饰变量表示常量,不可修改;finally用于异常处理,保证代码块一定会执行;finalize是对象被垃圾收集前的回调方法。
11. assert用于断言,用于测试代码,如果断言的条件不成立,程序会抛出AssertionError。
12. forward是服务器内部跳转,浏览器地址栏不变;redirect是客户端重定向,浏览器地址栏显示新的URL。
13. GC是垃圾收集器,负责回收不再使用的对象,以释放内存。因为Java自动管理内存,所以需要GC防止内存泄漏。
14. shorts1=1;s1=s1+1;会编译错误,因为short与int相加会自动提升为int类型;s1+=1则会自动转换回short类型。
15. Math.round(11.5)等于12,Math.round(-11.5)等于-11。
16. Strings=newString("xyz");创建了1个StringObject。
17. 设计线程同步问题,可以使用synchronized关键字或者Lock接口实现。
18. 启动线程使用start(),run()只是普通方法调用,不会开启新线程。
19. 应用服务器如Tomcat、Jetty、WebLogic、Jboss等。
20. 接口可以继承接口,抽象类可以实现接口,但抽象类不能继承实体类(非抽象类)。
21. Set中使用equals()判断元素是否重复。
22. 构造器不能被重写(override),但可以重载(overload)。
23. 不可以继承String类,因为String是final类。
24. switch不能作用在byte上,也不能作用在long上,但Java 7以后可以作用在String上。
25. try{}后的finally{}代码总会被执行,除非系统退出或抛出未捕获的异常。
26. 最有效率的计算2乘以8的方法是直接计算:int result = 2 * 8。
27. 对象作为参数传递时,总是传递对象引用,方法内可以改变对象属性,但不能改变对象引用。
28. 其他线程是否可以进入synchronized方法取决于同步锁的粒度,如果进入的是对象的synchronized方法,其他线程不能进入该对象的其他synchronized方法。
以上只是部分问题的解答,实际面试中还需要根据具体问题深入讨论和扩展。
2022-03-18 上传
2022-11-11 上传
2021-09-30 上传
2023-08-04 上传
2023-08-04 上传
2021-09-06 上传
2021-09-30 上传
2021-09-30 上传
该隐的左手WD
- 粉丝: 5
- 资源: 20
最新资源
- 探索数据转换实验平台在设备装置中的应用
- 使用git-log-to-tikz.py将Git日志转换为TIKZ图形
- 小栗子源码2.9.3版本发布
- 使用Tinder-Hack-Client实现Tinder API交互
- Android Studio新模板:个性化Material Design导航抽屉
- React API分页模块:数据获取与页面管理
- C语言实现顺序表的动态分配方法
- 光催化分解水产氢固溶体催化剂制备技术揭秘
- VS2013环境下tinyxml库的32位与64位编译指南
- 网易云歌词情感分析系统实现与架构
- React应用展示GitHub用户详细信息及项目分析
- LayUI2.1.6帮助文档API功能详解
- 全栈开发实现的chatgpt应用可打包小程序/H5/App
- C++实现顺序表的动态内存分配技术
- Java制作水果格斗游戏:策略与随机性的结合
- 基于若依框架的后台管理系统开发实例解析