Java实习开发面试题:深度解析JVM、并发、数据库与Web技术
需积分: 8 155 浏览量
更新于2024-08-05
收藏 2KB MD 举报
"Java实习开发一面面试题涵盖了Java基础、JVM、类加载机制、操作系统、并发编程、数据库、Web服务器、Spring框架以及网络IO等多个方面。"
面试中涉及的知识点详解:
1. String类被final定义:String是不可变的,final确保其引用对象不能被改变,提供性能优化并允许字符串常量池的使用。
2. JVM的类加载过程:包括加载、验证、准备、解析和初始化五个阶段。
3. static代码块与变量初始化:类加载时,静态变量会被初始化,但静态代码块中的引用可能无法确定,因为依赖的其他类可能还未加载。
4. 主动引用和被动引用:主动引用是直接或间接使类加载的行为,如创建类实例、访问静态变量等;被动引用通常指通过反射等方式。
5. 类的主动引用:类被直接引用,如new操作、访问静态方法或静态变量等。
6. 子类引用父类静态变量:只会加载父类,不会触发子类初始化。
7. 数组初始化:不会触发数组元素类型类的初始化。
8. 使用final常量:直接通过类名访问final常量会加载该类,但不触发初始化。
9. 类加载器:负责加载类到JVM中,分为bootstrap、extension、app和自定义类加载器。
10. 双亲加载机制:类加载时,先由父类加载器尝试加载,失败后再由子类加载器加载。
11. 破坏双亲加载机制:自定义类加载器,重写loadClass方法,不调用super.loadClass()。
12. SPI(Service Provider Interface):Java提供的一种动态发现服务提供商的机制。
13. OSGI(Open Service Gateway Initiative):实现模块化Java应用的框架,支持热部署。
14. HashMap扩容:当容量达到阈值时,会创建新容量的哈希表并重新分布元素。
15. 进程和线程:进程是资源分配的基本单位,线程是执行单元,进程间不共享内存,线程间共享进程资源。
16. 原语:不可分割的原子操作。
17. wait和signal:操作系统中用于线程同步的基本操作,wait释放锁进入等待,signal唤醒等待线程。
18. 线程同步:通过互斥锁、信号量、条件变量等方式防止数据竞争。
19. 进程通信:共享内存、管道、消息队列、信号等。
20. IO多路复用:如epoll,允许多个描述符的等待,提高效率。
21. 线程状态:新建、就绪、运行、阻塞、终止。
22. 上下文切换:线程在不同状态间切换,保存和恢复CPU寄存器状态的过程。
23. CPU-Cache-主存:缓存层次结构,提升数据访问速度。
24. 虚拟内存:将物理内存和磁盘空间结合,为程序提供更大的地址空间。
25. synchronized和Lock:synchronized是内置锁,简单易用,Lock提供更细粒度控制,如显式获取和释放锁。
26. Synchronized和Lock锁线程:synchronized基于Monitor,Lock通过AQS(AbstractQueuedSynchronizer)管理线程。
27. AQS和CAS:AQS是Lock的基础,使用CAS(Compare and Swap)无锁算法保证线程安全。
28. MySQL:关系型数据库管理系统,支持事务、索引、视图等功能。
29. 事务特性与隔离级别:ACID(原子性、一致性、隔离性、持久性),隔离级别有读未提交、读已提交、可重复读、串行化。
30. 可重复读:通过快照读实现,同一事务内多次读取相同数据一致。
31. SQL执行流程:解析、预处理、执行计划生成、执行。
32. 不是所有存储引擎都支持事务:例如MyISAM不支持事务,而InnoDB支持。
33. 事务依赖存储引擎,服务端管理连接、查询优化、事务处理等。
34. Tomcat:开源的Servlet容器,用于部署Java Web应用。
35. Tomcat线程管理:通过线程池调整并发,避免上下文切换。
36. Servlet容器:运行Servlet的环境,处理HTTP请求。
37. Servlet生命周期:加载、实例化、初始化、服务、销毁。
38. 浏览器访问网页:DNS解析、TCP连接、HTTP请求、响应接收、页面渲染。
39. 网络IO可靠传输:通过校验和、确认应答、重传机制保证数据正确传输。
40. Spring生命周期:Bean的创建、初始化、使用和销毁。
41. Spring事务实现:基于AOP的声明式事务管理,通过事务传播控制事务边界。
42. 注解:元数据,提供程序信息,可被编译器或运行时系统处理。
43. 注解实现:编译器和运行时解析注解,映射到相应的处理器执行逻辑。
44. request和response格式:HTTP报文,包含头域和主体,用于客户端和服务器交互。
45. Redis:内存键值数据库,支持多种数据结构,常用于缓存和消息队列。
46. Redis特点:高性能、支持多种数据结构、持久化、主从复制、事务等。
2023-06-07 上传
2024-05-24 上传
2023-05-05 上传
2023-09-06 上传
2023-09-08 上传
2024-10-24 上传
krisoo
- 粉丝: 0
- 资源: 2
最新资源
- 高清艺术文字图标资源,PNG和ICO格式免费下载
- mui框架HTML5应用界面组件使用示例教程
- Vue.js开发利器:chrome-vue-devtools插件解析
- 掌握ElectronBrowserJS:打造跨平台电子应用
- 前端导师教程:构建与部署社交证明页面
- Java多线程与线程安全在断点续传中的实现
- 免Root一键卸载安卓预装应用教程
- 易语言实现高级表格滚动条完美控制技巧
- 超声波测距尺的源码实现
- 数据可视化与交互:构建易用的数据界面
- 实现Discourse外聘回复自动标记的简易插件
- 链表的头插法与尾插法实现及长度计算
- Playwright与Typescript及Mocha集成:自动化UI测试实践指南
- 128x128像素线性工具图标下载集合
- 易语言安装包程序增强版:智能导入与重复库过滤
- 利用AJAX与Spotify API在Google地图中探索世界音乐排行榜