腾讯 CSIG 社招 2023 一年工作经验 Java转GO(一、二)面

学历:本科
工作经验:一年+(不算实习)
当前语言:Java
base:武汉
部门\岗位:腾讯云

一面 1.5 h

员工成长系统(公司项目)

  • 做了那些优化?(线程池优化,批处理优化、设计模式优化、性能测试、压力测试、GC优化)
  • 线程池怎么调优的?
  • 线程池如何分配线程?
  • 如果有50000数据需要批处理,你是怎么分配线程的?
  • 导出10万数据,线程池中的线程是一个线程拉取一条数据?还是怎么处理?回答:类似分页查询,每页获取2万左右,然后切分页到多个线程处理,再拉取下一页数据,直到完成
  • 多线程导出,你是怎么合并导出的表格文件?每个sheet存5000条数据,直到处理完成所有数据

AsyncStream异步调度框架(自己实现的框架)

  • 如何设计项目架构?
  • 分库分表(滚表)设计?
  • 查询键设计?
  • 如何修改异步执行的中间状态?
  • work成功拉取待执行状态,但是还没有执行完成,service在这时修改任务状态为取消(失败),导致了性能浪费,你怎么处理这种情况?
  • 你这个框架和MQ有什么区别?
  • 如果用MQ来解决上面的取消任务流程,你怎么设计?
  • 分布式锁

算法:实现算法 + 讲解思路 + 分析复杂度

/*
 * 合并两个有序数组
 *  */
public static int[] merge(int[] arr1, int[] arr2) {
    int[] result = new int[arr1.length + arr2.length];
    int index1 = 0;
    int index2 = 0;
    int all = arr1.length + arr2.length;
    for (int i = 0; i < all; i++) {
        int v1 = Integer.MIN_VALUE;
        int v2 = Integer.MIN_VALUE;
        if (index1 < arr1.length) {
            v1 = arr1[index1];
        }
        if (index2 < arr2.length) {
            v2 = arr2[index2];
        }
        // arr1 over
        if (v1 == Integer.MIN_VALUE) {
            result[i] = v2;
            index2++;
        } else if (v2 == Integer.MIN_VALUE) {
            // arr2 over
            result[i] = v1;
            index1++;
        } else {
            if (v1 < v2) {
                result[i] = v1;
                index1++;
            } else {
                result[i] = v2;
                index2++;
            }
        }
    }
    return result;
}

public static void main(String[] args) {
    int[] arr1 = {1, 3, 5, 8};
    int[] arr2 = {2, 4, 7};
    System.out.println(Arrays.toString(merge(arr1, arr2)));
}

总结:感觉和阿里巴巴的二面差不多,社招很看重项目经验,在一个项目技术点上会深挖细节实现,然后穿插知识点,总体感觉回答的可以,提升的地方就是项目技术细节描述不太直观,一句话说不完,需要用很多句话。总结能力待提升

二面 40 min

  • 如何重构项目的?
  • 做了那些重构?
  • 如果修改了数据库表结构,灰度发布,如何保证旧的容器请求正常(G,反馈说冗余表字段,然后做数据清洗发布)
  • Http 401 状态码 (G,没想起来)
  • restFul是什么?
  • 为什么要自定义响应请求代码?用http的响应码也能实现功能啊?
  • 线上问题如何排查?
  • 慢SQL如何排查?
    AsyncStream异步调度框架
  • 如何优化qps的?为什么这么优化?
  • 连接池问题是如何判断的?

你可能感兴趣的:(面经,开发语言,java,go)