博客
关于我
22年最新金九银十面试必备
阅读量:797 次
发布时间:2023-03-28

本文共 2961 字,大约阅读时间需要 9 分钟。

技术面试准备

1. Hibernate缓存机制

Hibernate提供了多种缓存机制,主要包括:

  • 第一级缓存(Session缓存):关联到一个Session对象,缓存操作使用的对象。
  • 第二级缓存(hibernate.cache.Cache):用于缓存全局数据,适用于多个Session共享数据。

2. Hibernate延迟加载

延迟加载通过设置@Lazy注解或在XML配置中定义,延迟加载会根据需要加载对象,减少初始加载时间。

3. 为什么使用Spring

Spring提供了从代码到部署的完整支持,简化了配置管理、依赖注入以及事务管理等功能。

4. SQL基础

  • Group by:用于对多个记录进行聚合操作。
  • Order by:用于对结果集进行排序。

5. 查询每个班级成绩最高的学生

SELECT s.name
FROM Student s
JOIN score sc ON s.id = sc.student_id
GROUP BY s.name
HAVING MAX(sc.score) = (SELECT MAX(score) FROM score)

6. 查找每个班级成绩第二的学生

SELECT s.name
FROM Student s
JOIN score sc ON s.id = sc.student_id
GROUP BY s.name
HAVING COUNT(s.name) = (SELECT COUNT(s.name) FROM score WHERE score < (SELECT MAX(score) FROM score))

7. 按班级查询总分前三的学生

SELECT s.name, SUM(score) score_sum
FROM Student s
JOIN score sc ON s.id = sc.student_id
GROUP BY s.name
ORDER BY score_sum DESC
LIMIT 3

8. 入职员工时间排名倒数第三的员工

SELECT e.id, e.name, e.hire_date
FROM Employee e
WHERE DATEDIFF(e.hire_date, (SELECT hire_date FROM Employee ORDER BY hire_date DESC LIMIT 3), 0) >= 0

9. 薪水排序后薪水排名第2-8的员工

SELECT e.name, salary
FROM Employee e
WHERE RANK(salary) BETWEEN 2 AND 8

10. 重复学员姓名及重复记录数

SELECT name, COUNT(*) as repeat_count
FROM Student
GROUP BY name
HAVING COUNT(*) > 1

11. JSP内置对象

  • request:用于获取请求参数和属性。
  • response:用于向页面输出数据和定向。
  • session:用于保存客户端会话数据。

12. JSTL标签

  • <c:if>:条件判断。
  • <c:foreach>:遍历数据。
  • <c:remove>:移除空值属性。

13. Servlet生命周期

  • 初始(construct)
  • 请求处理(requestStart)
  • 资源处理(doGet/doPost)
  • 结束(responseComplete)
  • 14. URL与URI

    • URL:包含路径和查询参数。
    • URI:包含资源的全局唯一标识符。

    15. AJAX同步与异步

    • 同步:等待服务器响应。
    • 异步:不等待服务器响应。

    16. IO与NIO

    • IO:以字节为单位读写。
    • NIO:以字符或缓冲区为单位读写。

    面试流程小贴士

    1. 人事面试准备

    • 工资谈判尽量避免直接讨论,留到技术面试后再谈。
    • 面试过程中保持礼貌和专业态度。

    2. 技术面试准备

    • 广度优先:多技术涉及,但不深入。
    • 深度优先:专注于某一领域,展示深度理解。
    • 项目经验:重点讲述项目经验,展示业务理解。

    面试技巧

    1. 个人能力

    • 广度和深度:根据情况选择。
    • 项目经验:突出业务理解和技术应用能力。

    2. 面试准备

    • 诚实与专业:面对不会的问题,诚实表达。
    • 领域引导:将面试官引导到自己擅长的领域。

    阿里巴巴面试专题

    1. JUnit用法

    • beforeClass:在类初始化时执行。
    • afterClass:在类销毁时执行。
    • before/after:在每条测试用例前后执行。

    2. 分布式锁实现

    • 使用Redis实现分布式锁,避免并发问题。

    3. Nginx请求转发

    • 使用proxy_pass指令转发请求,按权重配置。

    4. HashMap的线程安全

    • 使用ConcurrentHashMap解决线程安全问题。

    5. 线程状态

    • 新生态:刚创建。
    • 运行中:执行任务。
    • 等待中:等待资源。
    • 终止:退出或错误。

    6. 线程阻塞方式

    • 使用Object.wait()Thread.sleep()

    7. HashMap底层实现

    • 使用数组实现,分散式哈希。

    8. 红包抢取问题

    • 使用分布式锁确保每人抢到一个红包。

    9. JVM内存模型

    • 方法去哪里:堆、方法区、虚拟机栈、虚拟机本地方法栈。

    10. ThreadLocal的使用场景

    • 记录请求相关信息。

    JVM命令

    • top:查看进程状态。
    • jmap:生成内存堆栈图。
    • jstack:查看堆栈跟踪。

    Redis与MySQL对比

    • Redis:内存存储,高性能。
    • MySQL:磁盘存储,适合结构化数据。

    面试注意事项

    • 沟通:保持礼貌和专业态度。
    • 感谢:面试结束后表示感谢。

    技术专题

    1. 并发编程

    • 使用ConcurrentHashMapCountDownLatch等工具。

    2. 线程池

    • Spring:自定义线程池。
    • JavaThreadPoolExecutor

    3. 内存模型

    • :存储对象。
    • :存储方法调用信息。

    4. 垃圾回收

    • 不可达算法:标记清除。
    • 标记-整理:复制算法。

    5. ThreadLocal

    • 用于存储每个线程的私有数据。

    6. ThreadLocal的实现

    • 使用ThreadLocal类,自定义存储逻辑。

    阿里巴巴面试题目

    1. 手动触发垃圾回收

    java -Xms8m -Xmx8m -Djava.maxmemorypolicy=Denied

    2. HashMap单线程问题

    • 多次写入同一对象,读取时可能出现问题。

    3. Git操作

    • git rebase:重新定位提交。

    4. MongoDB与HBase

    • MongoDB:文档存储。
    • HBase:行键值存储。

    5. 并发问题解决方案

    • 使用锁和同步机制。

    6. Volatile的作用

    • 保证线程间可见性和一致性。

    7. Thread池实现

    • ExecutorServiceThreadPoolExecutor

    8. MySQL Binlog

    • 记录数据库事务日志。

    9. 代理模式实现

    • 动态代理通过生成代理类实现。

    10. Redis缓存失效

    • 使用expires命令设置过期时间。

    总结

    以上内容为技术面试准备的一些重点问题和解决方案,希望对面试有所帮助。

    转载地址:http://ochfk.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现newton_raphson牛顿拉夫森算法(附完整源码)
    查看>>
    Objective-C实现NLP中文分词(附完整源码)
    查看>>
    Objective-C实现NLP中文分词(附完整源码)
    查看>>
    Objective-C实现not gate非门算法(附完整源码)
    查看>>
    Objective-C实现NumberOfIslands岛屿的个数算法(附完整源码)
    查看>>
    Objective-C实现n皇后问题算法(附完整源码)
    查看>>
    Objective-C实现OCR文字识别(附完整源码)
    查看>>
    Objective-C实现odd even sort奇偶排序算法(附完整源码)
    查看>>
    Objective-C实现page rank算法(附完整源码)
    查看>>
    Objective-C实现PageRank算法(附完整源码)
    查看>>
    Objective-C实现pascalTriangle帕斯卡三角形算法(附完整源码)
    查看>>
    Objective-C实现perfect cube完全立方数算法(附完整源码)
    查看>>
    Objective-C实现pollard rho大数分解算法(附完整源码)
    查看>>
    Objective-C实现quick select快速选择算法(附完整源码)
    查看>>
    Objective-C实现recursive bubble sor递归冒泡排序算法(附完整源码)
    查看>>
    Objective-C实现recursive insertion sort递归插入排序算法(附完整源码)
    查看>>
    Objective-C实现RedBlackTree红黑树算法(附完整源码)
    查看>>
    Objective-C实现redis分布式锁(附完整源码)
    查看>>
    Objective-C实现reverse letters反向字母算法(附完整源码)
    查看>>
    Objective-C实现ripple adder涟波加法器算法(附完整源码)
    查看>>