2024年Java高工面试焦点:JVM、Spring与并发安全
79 浏览量
更新于2024-06-14
收藏 61.51MB DOCX 举报
这篇内容主要涉及了Java开发与面试的相关知识点,包括JVM内存结构、垃圾回收算法、Spring框架的工作原理以及数据库的锁管理。以下是详细解释:
1. JVM虚拟机结构:
- 堆:存储所有对象实例,是线程共享的区域,分为新生代和老年代。
- 方法区(元空间):存储类信息、常量池、静态变量等。
- 栈:每个线程都有一个独立的栈,用于存储方法调用的局部变量、运算结果等。
- 本地方法栈:为Java Native Interface (JNI)方法服务。
- 程序计数器:记录当前线程执行的字节码指令地址。
2. 垃圾回收算法:
- CMS(Concurrent Mark Sweep):包括初始标记、并发标记、重新标记、并发清理和并发重置几个阶段,主要用于减少停顿时间。
- G1(Garbage-First):采用分代收集,具有更好的整体暂停时间目标,其过程包括初始标记、并发标记、最终标记和筛选回收。
3. JVM执行流程:
- 从.java源文件编译成.class字节码,然后由JVM加载到内存中执行。
4. Spring框架:
- Spring是一个快速开发框架,用于管理对象和应用的生命周期。
- 在启动Spring容器时,会扫描所有BeanDefinition,并存入Map中,然后创建非懒加载的单例Bean,多实例Bean按需创建。
- Bean的生命周期包括合并BeanDefinition、选择构造方法、实例化、属性填充、初始化前、初始化和初始化后。AOP(面向切面编程)发生在初始化后。
5. 并发与同步:
- Java中的wait()和notify()方法用于线程间的阻塞和唤醒,解决并发问题。
- 在多线程环境下,共享内存通信需要注意并发控制,如使用锁来确保数据一致性。
6. 数据库锁管理:
- 查询锁表:`SHOW OPEN TABLES WHERE in_use > 0;`
- 查看进程:`SHOW PROCESSLIST;`
- 查看锁定的事务:`SELECT * FROM information_schema.INNODB_LOCKS;`
- 查看等待锁的事务:`SELECT * FROM information_schema.INNODB_LOCK_WAITS;`
7. Spring的其他特性:
- Spring启动时会处理@Import等注解,注册BeanFactoryPostProcessor和BeanPostProcessor,实现依赖注入。
- Spring的事务管理是基于数据库事务的,可以实现声明式事务管理。
这些知识点对于Java高级工程师的面试至关重要,涵盖了基础理论、内存管理、框架应用和数据库操作等多个方面。理解和掌握这些内容将有助于提升开发者在实际工作和面试中的表现。
114 浏览量
402 浏览量
126 浏览量
1187 浏览量
157 浏览量
236 浏览量
学博成
- 粉丝: 864
- 资源: 13
最新资源
- 教你几招如何给员工作培训DOC
- 源经理
- aiohttp-vs-tornado-benchmark
- mattn.deno.dev
- Java项目之音乐网站(JSP+SERVLET)源代码
- OCR-book
- 双视效果:模拟双视效果的基本算法-matlab开发
- 建设股份有限公司培训管理办法DOC
- erum18_geocompr
- 宠物收藏家
- ansible-role-systemd-resolved:ansible systemd-resolved 角色
- awesome-load-balancing:精选的负载均衡器和代理列表。 软件,库,帖子,讲座
- 现代时尚客厅3D效果图
- 企业-汇客云-2021q1中国实体商业客流报告.pdf.rar
- 电力设备与新能源行业周报本周碳酸锂价格持续走低各地鼓励独储开展容量租赁-18页.pdf.zip
- 租赁度假:租赁和度假物业