Java实习开发面试题:深度解析JVM、并发、数据库与Web技术

需积分: 8 0 下载量 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特点:高性能、支持多种数据结构、持久化、主从复制、事务等。