岗位匹配度: 1. 扎实的Java编程能力,熟悉分布式、多线程及高性能的设计与编码及性能调优。 1. 如何将一个 GBK 编码的字符串转为 UTF-8 编码的字符串。 2. 多个线程间共享变量有哪些方式? 1. **volatile变量**:保证可见性,不保证原子性 2. **synchronized方法/代码块**:保证原子性和可见性 3. **ReentrantLock等显式锁**:更灵活,支持公平锁、条件变量 4. **Atomic原子类**:`AtomicInteger`, `AtomicReference`等 5. **ThreadLocal**:线程本地变量,每个线程独立副本 6. **阻塞队列**:`BlockingQueue`,生产者-消费者模式 7. **并发容器**:`ConcurrentHashMap`, `CopyOnWriteArrayList`等 8. **CountDownLatch/CyclicBarrier**:线程间协调 9. **volatile + CAS**:无锁编程模式 3. 如何分析 Maven 依赖冲突。 1. mvn dependency:tree 2. mvn dependency:analyze 3. 使用``排除不需要的传递依赖 2. 精通Spring、SpringBoot/SpringCloud、Mybatis等主流开源框架。 3. 熟练使用关系型数据库(Oracle、MySQL),了解Redis、MongoDB等非关系型数据库。国产数据库。 1. 如何分析一个 sql 是否使用了索引进行加速。[[EXPLAIN]] type 有哪些类型。ALL 2. 前台界面需要拖拽排序,后台接口和数据库如何实现。 3. 有一张打卡记录表,如何查找连续两天漏打卡的人。[[查找连续两天漏打卡的人]] 4. 掌握 TCP/IP 通信协议相关知识,熟练进行 Socket 网络编程。 1. 一个TCP 报文有多长,有效的数据长度有多少?如果发送的数据很长会怎么处理。发送的数据都很短会怎么处理。 - **最大报文段长度(MSS)**:通常1460字节(1500 MTU - 20 IP头 - 20 TCP头) - **有效数据长度**:可变,最大约1460字节 - **最小报文长度**:纯ACK包约40字节(只有头部) 2. 一个 Http Get 请求数据量,Post 请求数据量1M。 - RFC 标准未规定上限 - IE浏览器:2083字符 - Chrome/Edge:~32K字符 - Apache服务器:默认8190字节 - Nginx:默认1K,可配置到8K 5. 熟悉 JNI 开发。 1. String 类型传递给 C 用什么类型,结尾字符如何处理? 2. C 代码中如何调用 java 内的函数,java 中抛出异常,C 中如何处理。 6. 云架构体系以及微服务 1. docker 的基本操作,在 docker 内如何做监控。 7. 密码学相关背景知识 1. pkcs10 标准的主要内容是什么,证书请求和证书的主要内容是什么? - **证书请求信息**:版本、主题、公钥、属性 - **签名算法标识符**:如sha256WithRSAEncryption - **数字签名**:用私钥对请求信息签名 2. 用户的口令在数据库中应该如何存储? 8. 解决问题能力、持续主动学习能力,文档能力、团队合作能力。 1. 线上环境偶发问题有什么排查思路? 2. 概要设计文档应该包含哪些必要内容 [[项目管理文档编写]] 9. git (log、stash、worktree) Python 面试: 1. Python Socket 客户端如何设置链接超时时间和通信超时时间。 2. 如何将项目打包为 whl ,可以让别人通过 pip 安装和管理。如何把包内的方法暴露出来。venv 环境管理。 3. Python中的GIL(全局解释器锁)是什么?它对多线程编程有什么影响?在什么情况下应该使用多进程而不是多线程?[[Python GIL 锁]] 4. Python 调用 C 代码、动态库。二级指针。 5. Python 性能分析。火焰图。 6. Python 编写测试脚本。AI 调用。未来规划。已经做了哪些。