2024 年互联网大厂工时排行

科技   2024-11-23 14:11   上海  

今天看到一份互联网公司工作时长排行,有人一周肝工作超过 60h,每天在工位十多个小时兢兢业业;有人享受工作和生活的平衡,每周完美卡点 8 小时工作。

即便都在互联网公司,生活也是截然不同的。

工作时长前 25 的公司,平均每周工作时长都超过了50小时(全文数据均源于duibiao.info):

在 pk 工时上,拼多多没有输过。不过拼多多的时薪,给得也非常大方。同样的统计口径下,拼多多初级工程师时薪中位数达到 258 元,中级工程师的时薪中位数,更是达到了 459 元。

不久前拼多多部分团队刚刚调整了考勤时间,将打卡时间从11-11-6 改成 10-9-6,午餐和晚餐的休息时间调整为 1 小时。看来卷中更有强者。不过拼多多一周工作 6 天,所以理论上说,排名在拼多多后面的几家公司,未必就比在拼多多上班轻松。

当然,有加班的朋友,也有不加班的。

位于排行榜末尾的 13 家互联网公司,平均每周工作时长,最短的还不到 40 小时。

互联网公司的卷王很多,但身体和健康同样重要。作为打工人,大家更喜欢哪一种生活呢?

这份工作时长排行仅供大家做一个参考。毕竟就算是同一家公司,不同部门或是项目组的工作时间也是不一样的。

想要拥有更多的选择权,那就需要自己多多投递,多多面试,手握更多的 offer。

今天也为大家准备了面试题,欢迎来面试鸭一起面试刷题~

MyBatis 写个 Xml 映射文件,再写个 DAO 接口就能执行,这个原理是什么?

回答重点

核心原理是 JDBC 的能力动态代理,通过解析 XML 映射文件和动态生成 DAO 接口实现类来完成 SQL 的执行。

以下是详细的执行原理:

1)加载配置和 Mapper 映射文件

  • MyBatis 启动时,通过配置文件(mybatis-config.xml)加载数据库连接信息和 Mapper 映射文件(Mapper.xml)。
  • XML 文件中的 SQL 被解析为内部的 MappedStatement 对象,包含 SQL 语句、参数映射规则和返回结果映射规则。

2)动态代理实现 DAO 接口

  • MyBatis 为每个 DAO 接口生成一个动态代理类(MapperProxy),拦截接口方法调用。
  • 动态代理的核心是根据方法名和参数匹配到对应的 MappedStatement,然后调用 JDBC 来执行 SQL。

3)通过 JDBC 执行 SQL

  • MyBatis 的 SqlSession 是对 JDBC 的封装,它的核心是使用 PreparedStatement 来完成 SQL 的执行。
  • 根据 XML 中定义的 SQL 和 DAO 接口方法传入的参数,生成完整的 SQL 查询,并将参数通过占位符(?)绑定到 PreparedStatement
  • 最终通过 JDBC 执行 SQL,并获取 ResultSet

4)结果映射

  • JDBC 的查询结果(ResultSet)会被 MyBatis 的 ResultMapresultType 映射为 DAO 接口方法的返回值类型(如 POJO、Map 或 List)。

扩展知识

MyBatis 与 JDBC 的关系

MyBatis 本质上是对 JDBC 的封装和增强,它的核心执行流程依赖于 JDBC 的 API。

JDBC 原生写法

Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;

try {
   conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db""user""password");
   String sql = "SELECT * FROM users WHERE id = ?";
   pstmt = conn.prepareStatement(sql);
   pstmt.setInt(11);
   rs = pstmt.executeQuery();

   while (rs.next()) {
       System.out.println(rs.getString("username"));
   }
finally {
   if (rs != null) rs.close();
   if (pstmt != null) pstmt.close();
   if (conn != null) conn.close();
}

MyBatis 写法

SqlSession session = sqlSessionFactory.openSession();
try {
   User user = session.selectOne("findUserById"1);
   System.out.println(user.getUsername());
finally {
   session.close();
}

对比

  • JDBC 手写代码复杂,需要手动管理连接、SQL 拼接和结果映射。
  • MyBatis 自动管理这些步骤,开发者只需编写 SQL 和映射规则,剩下的交给框架完成。

最后

再来推荐下我们的面试刷题网站和小程序:面试鸭!



咱们面试鸭立志成为一款题库全面、持续更新、题解优质的刷题神器,主要目的就是为了彻底解决所有你能想到的八股文学习痛点!

我们精选了近两年的高频面试真题,已经有 9000 多道面试题目啦,由大厂资深面试官手写答案,押题命中率超高!

不仅有传统八股文,场景题、项目题、系统设计题等等应有尽有,还在不断更新中!

现在邀请好友注册并成为会员,还可获得最高 50% 的分佣🧧!详情见面试鸭拉新邀请有赏规则(网页版面试鸭点击头像查看)

网页端网址:www.mianshiya.com


欢迎关注面试鸭,每日获取经典面试题和优质题解,我们下期见~




往期推荐

我笑了,全国平均月薪过万了

字节跳动再次加码!大厂之间也开始卷起来了!

不愧是外企,连裁员福利也这么好。。。

手拿 8 个 offer ,他是按这路线刷的面试题

马斯克招人:要高智商、0 薪、每周工作 80 小时、还容易得罪人

没想到在 AMD 上班也被裁了

2025 年请假攻略!

程序员鱼皮
一手科技热点和编程干货 | 免费编程学习网 codefather.cn
 最新文章