浙江金网信息有限公司25软件开发
浙江金网信息有限公司25软件开发
半小时左右面试时间,200-250,看学历给钱。
1. 请简述Java的垃圾回收机制(GC),并解释常见的垃圾回收器(如G1、CMS)的区别?
答案: Java的垃圾回收机制通过自动管理内存,主要分为分代收集(新生代、老年代)和垃圾回收算法(标记-清除、复制、标记-整理)。
- G1(Garbage-First):面向大堆内存,采用Region分区,兼顾低延迟和高吞吐,适合现代多核CPU。
- CMS(Concurrent Mark-Sweep):以低停顿为目标,采用并发标记-清除,但会产生内存碎片,已逐步被G1取代。
2. 什么是Spring的IoC和AOP?请举例说明应用场景。
答案:
- IoC(控制反转):由Spring容器管理对象依赖关系,如
@Autowired
自动注入UserService
。 - AOP(面向切面编程):通过动态代理实现横切关注点,如日志(
@Around
)、事务管理(@Transactional
)。
3. MySQL的索引有哪些类型?B+树索引为什么适合数据库?
答案:
- 索引类型:主键索引、唯一索引、普通索引、联合索引、全文索引。
- B+树优势:
- 叶子节点存储数据,非叶子节点仅存键值,减少IO次数。
- 叶子节点链表结构,适合范围查询(如
WHERE id > 100
)。
4. 什么是Redis的持久化机制?RDB和AOF有什么区别?
答案:
- RDB(快照):定时全量备份,恢复快但可能丢失数据。
- AOF(日志):记录写命令,数据更安全但文件较大。
生产环境通常混合使用:
AOF
保证数据安全,RDB
用于快速恢复。
5. HTTP和HTTPS的区别?HTTPS如何保证安全性?
答案:
- HTTP:明文传输,端口80。
- HTTPS:加密传输(SSL/TLS),端口443。
安全性保障:
- 对称加密(AES)传输数据。
- 非对称加密(RSA)交换密钥。
- 数字证书验证服务器身份。
6. 什么是CAP理论?分布式系统如何取舍?
答案:
- CAP:一致性(Consistency)、可用性(Availability)、分区容错性(Partition Tolerance)。
- 取舍:
- CP(如ZooKeeper):强一致性,牺牲可用性。
- AP(如Eureka):高可用,允许短暂不一致。
7. 进程和线程的区别?Java中如何创建线程?
答案:
- 区别:
- 进程是资源分配单位,线程是CPU调度单位。
- 进程间内存隔离,线程共享进程内存。
- 创建方式:
- 继承
Thread
类。 - 实现
Runnable
接口(推荐,避免单继承限制)。
- 继承
8. 什么是死锁?如何避免死锁?
答案:
- 死锁条件:互斥、占有且等待、不可抢占、循环等待。
- 避免方法:
- 按固定顺序获取锁(如
lock1
→lock2
)。 - 使用
tryLock
设置超时。 - 银行家算法预防。
- 按固定顺序获取锁(如
9. TCP三次握手和四次挥手的过程?为什么需要三次握手?
答案:
- 三次握手(建立连接):
- 客户端发
SYN=1, seq=x
。 - 服务端回
SYN=1, ACK=1, seq=y, ack=x+1
。 - 客户端发
ACK=1, ack=y+1
。 目的:防止历史连接请求导致资源浪费。
- 客户端发
- 四次挥手(断开连接):
- 客户端发
FIN=1
。 - 服务端回
ACK=1
。 - 服务端发
FIN=1
。 - 客户端回
ACK=1
(等待2MSL后关闭)。
- 客户端发
10. 什么是乐观锁和悲观锁?MySQL中如何实现?
答案:
- 悲观锁:假设并发冲突高,先加锁再操作,如
SELECT ... FOR UPDATE
。 - 乐观锁:假设冲突少,通过版本号控制,如
UPDATE table SET val=1, version=version+1 WHERE id=1 AND version=old_version
。
11. Spring Boot自动配置原理是什么?
答案:
@SpringBootApplication
组合了@EnableAutoConfiguration
。META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
定义配置类。- 条件注解(如
@ConditionalOnClass
)决定是否生效。
12. 什么是RESTful API?设计原则是什么?
答案:
- RESTful:基于HTTP协议的API设计风格。
- 原则:
- 资源化(如
/users
代替/getUser
)。 - 使用HTTP方法(GET查、POST增、PUT改、DELETE删)。
- 无状态,返回JSON/XML。
- 资源化(如
反问,技术栈和业务,主要是做政务领域信息安全方面的,还有就是智慧城市解决方案等等,比较常规八股,然后会问一点项目。
程序员小白条的编程日记:https://xbt.xiaobaitiao.top/ (分享如何拿到腾讯实习 Offer 和多个中大厂的面试机会,大学经历、求职经历、职场工作、创作经历、生活日常、面经、技术分享)定期更新内容,成长打怪系列,分享从大一到大四的完整面经,看完可冲中大厂!dy同名程序员小白条,主要口述面试经历和分享我认为的实用网站,会比面经讲的详细很多,以真实面试录音为主!公粽号:程序员落叶
#秋招笔面试记录#