- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
第PAGE页共NUMPAGES页
后端开发面试宝典及参考答案解析
一、Java基础(5题,每题2分)
1.请解释Java中的垃圾回收机制,并说明常见的垃圾回收器有哪些?
答案解析:Java通过垃圾回收(GC)自动管理内存。GC主要分为两大类:标记-清除(Mark-Sweep)和复制(Copying)。常见的垃圾回收器包括:
-SerialGC:单线程执行,适用于小型应用。
-ParallelGC:多线程并行回收,适用于吞吐量优先的场景。
-CMS(ConcurrentMarkSweep):低停顿时间,但可能出现FullGC。
-G1(Garbage-First):区域划分,优先回收价值高的区域,适用于大内存应用。
-ZGC、Shenandoah:最新低延迟GC,停顿时间更短。
2.Java中的线程同步有哪些常用方法?请比较synchronized和ReentrantLock的区别。
答案解析:
-同步方法:`synchronized`(修饰方法或代码块)、`volatile`(保证可见性)。
-`synchronized`是内置锁,自动获取和释放;`ReentrantLock`是显式锁,需手动`lock()`和`unlock()`。
区别:
|特性|synchronized|ReentrantLock|
||--||
|停顿时间|不确定|可调(公平/非公平)|
|锁中断|不支持|支持`lockInterruptibly()`|
|可中断|否|是|
|可重入|是|是|
3.请说明Java中的`equals()`和`hashCode()`方法的作用,为什么重写`equals()`时通常需要重写`hashCode()`?
答案解析:
-`equals()`:判断对象是否相等,需重写以自定义比较逻辑。
-`hashCode()`:生成对象哈希码,用于`HashMap`等集合的高效查找。
重写`equals()`时必须重写`hashCode()`,因为`HashMap`要求相等的对象必须具有相同的哈希码,否则会导致查找失败。
4.Java中的`finally`块的作用是什么?能否被`return`语句跳出?
答案解析:`finally`块无论是否发生异常都会执行,用于释放资源(如文件、数据库连接)。但若在`try`或`catch`中显式`return`,`finally`仍会执行,但`return`会覆盖`finally`中的操作。示例:
java
try{
return1;
}finally{
System.out.println(Finallyexecuted);
return2;//最终返回2
}
5.Java8的Lambda表达式和StreamAPI有什么优势?
答案解析:
-Lambda表达式:简化匿名内部类,代码更简洁。
-StreamAPI:支持函数式编程,易于并行处理集合(`parallelStream()`)。
优势:
1.代码可读性更高。
2.易于实现并发。
3.可与Optional避免空指针异常。
二、数据库(5题,每题2分)
6.请解释数据库的ACID特性,并说明事务隔离级别及其可能的问题。
答案解析:
-ACID:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。
-隔离级别(从低到高):
-ReadUncommitted:脏读(见未提交数据)。
-ReadCommitted:不可重复读(见已提交数据,但多次读取可能不同)。
-RepeatableRead:可重复读(事务内数据一致,但可见未提交数据)。
-Serializable:完全隔离(最高级别,但性能最低)。
问题:
-ReadUncommitted:可能导致数据不一致。
-RepeatableRead:可能出现幻读(事务内多次查询结果不同)。
7.主键和外键的区别是什么?请说明自增主键和UUID主键的优缺点。
答案解析:
-主键:唯一标识一行数据(非空、唯一)。
-外键:引用另一表的主键,保证引用完整性。
优缺点:
|类型|优缺点|
|||
|自增主键|生成简单,但可能泄露数据规模,不适合分布式。|
|UUID|无中心化,适合分布式,但
原创力文档


文档评论(0)