JAVA后台开发常见面试题

本文涵盖了JAVA后台开发的面试重点,包括:JAVA基础知识如JVM内存、GC算法、设计模式和线程池;Spring Boot/Spring Cloud面试题,如事务处理和启动方法;分布式事务解决方案,如2PC、TCC;还涉及MySQL、Redis、分布式理论、RabbitMQ、计算机网络和操作系统知识。是Java开发者面试必备参考资料。
摘要由CSDN通过智能技术生成

一、java基础知识。

1.jvm内存划分,GC算法,排查OOM常用的命令。

答:堆、栈、方法区、程序计数器、常量池、直接内存、本地方法栈

GC算法:标记-清除;复制算法;标记-整理,排查命令:JPS查看java进程,jinfo查看jvm配置信息;jmap -heap查看堆详细信息,jstat -gc查看GC信息,jmap -dump打印dump日志

2.类加载器种类和加载过程。

答:启动类、扩展类、APP类加载器。加载过程:一个类加载器收到加载类的请求,不会自己去加载,而是委派给父类加载器去加载,父类加载器无法完成加载,才给子类去加载。

3、设计模式

 设计原则:单一职责、接口隔离、开闭原则、依赖倒置原则、里氏替换原则、迪米特法则。

  • 里氏代换原则 :任何基类可以出现的地方,子类一定可以出现
  • 依赖倒转原则 :针对接口编程,依赖于抽象而不依赖于具体
  • 迪米特法则:最少知道原则 ,一个实体应当尽量少的与其它实体发生相互作用,使得功能模块相互独立

4、线程池参数有哪些参数?同步工具类有哪些?CountDownLatch、Semaphore、CyclicBarrier

实现线程的方式:三种。拒绝策略:拒绝且抛错、拒绝不抛错、删除队列最老的线程、调用者线程自己执行

线程状态流转:

二、spring boot,spring cloud面试题。


spring事务注解失效的场景:
1.访问权限问题
2.方法用final修饰
3.方法内部调用
4.未被spring管理
5.多线程调用
6.表不支持事务
7.未开启事务
8.错误的传播特性
9.自己吞了异常
10.手动抛了别的异常,因为spring事务,默认情况下只会回滚RuntimeException(运行时异常)和Error(错误),对于普通的Exception(非运行时异常),它不会回滚。
11.自定义了回滚异常,因为如果使用默认值,一旦程序抛出了Exception,事务不会回滚,这会出现很大的bug。所以,建议一般情况下,将该参数设置成:Exception或Throwable。
12.嵌套事务回滚多了。


spring boot启动后执行方法的5种方式:
1.实现 CommandLineRunner 接口。
2.实现 ApplicationRunner 接口。
3.实现ApplicationListener 接口监听 ApplicationStartedEvent 或者 ApplicationReadyEvent事件。
4.@PostConstruct 注解
5.实现 InitializingBean 接口,重写afterPropertiesSet()方法。

 spring boot启动流程分析:Spring Boot启动过程分析 - 简书

三、分布式事务解决方法

<

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java开发常见面试题面试中经常会被问到的问题。这些问题通常涵盖Java语言的基础知识、面向对象编程、集合框架、多线程、异常处理、IO操作、数据库等方面。以下是一些可能被问到的Java开发常见面试题的例子: 1. 什么是Java虚拟机(JVM)?它的作用是什么? 2. 什么是面向对象编程(OOP)?Java中的类和对象有什么区别? 3. Java中的集合框架有哪些?分别介绍一下它们的特点和用途。 4. 什么是多线程?Java中如何创建和管理线程?如何实现线程间的通信? 5. 什么是异常处理?Java中的异常分类是什么?如何处理异常? 6. Java中的IO操作有哪些?分别介绍一下它们的特点和用途。 7. 如何连接和操作数据库?介绍一下JDBC的基本用法。 8. 什么是Java的反射机制?如何使用反射实现动态加载类和调用方法? 9. 什么是Java的注解(Annotation)?如何自定义注解? 10. 什么是Java的设计模式?列举一些常见的设计模式及其应用场景。 以上只是一些常见Java开发面试题的例子,面试时可能还会有其他问题涉及到更深入的知识。建议在面试前充分准备,熟悉Java语言的基础知识和常用的开发技术,以便能够给出清晰且准确的答案。引用<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Java面试题大全带答案 110道(持续更新)](https://blog.csdn.net/u012889902/article/details/121614968)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值