WQhuanm
网易互娱一面(4.1)

网易互娱一面(4.1)

发现每次计网把之前被拷打的学完后,又有新的东西被拷打得怀疑人生😅 OS的内容倒是问的相对少一些(我也会的不多,求放过😭😭😭) ### 项目拷打 1. redis在线用户表如何维护

  1. 异步推送的机制

  2. 如何索引重建,重建加什么锁

八股

  1. java hashmap,concurrenthashmap怎么加锁

    1. ConcurrentHashMap
      • 加锁:基本是在桶上(table数组的一个结点)加自旋锁
      • 扩容
        • 引入了迁移结点ForwardingNode:一个桶被迁移后,把该结点标记为ForwardingNode(key,value均为null,hash值为MOVED(-1),但提供了新table的指向)
        • 扩容的核心是transfer迁移方法,
          • 第一个执行transfer会创建一个新nextTable
          • 对于每个执行transfer的线程,会分配其把旧table的一段连续桶迁移到新table
      • put:如果put的桶是MOVED状态,则执行helpTransfer去帮忙扩容,否则锁桶然后去插入元素
      • get:如果get的桶是MOVED状态,说明数据已经迁移到新table,去新table查找,否则查找旧table
  2. java反射,反射获取的对象能访问私有成员吗

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    Class<Test> c = Test.class;
    try {
    /**
    * getDeclaredXXX:获取所有级别函数/字段,非public级别需要设定setAccessible(true)才能使用
    * getXXX:获取public级别的
    */
    //获取私有带参构造函数、私有字段、私有方法
    Constructor<Test> constructor = c.getDeclaredConstructor(int.class, String.class);
    constructor.setAccessible(true);

    Field filed = c.getDeclaredField("filed");
    filed.setAccessible(true);

    Method print = c.getDeclaredMethod("print",String.class);
    print.setAccessible(true);

    //测试私有构造函数/方法/字段
    Test now = constructor.newInstance(666, "张三");
    //调用时需要传入实例对象,后面附带方法参数
    System.out.println(filed.get(now));//张三
    print.invoke(now,"llllla");//haha: llllla
    filed.set(now,"李四");
    System.out.println(filed.get(now));//李四

    } catch (Exception ex) {
    System.out.println(ex);
    }

    class Test {
    public int val;
    private String filed;

    private void print(String s) {
    System.out.println("haha: "+s);
    }
    public Test() {}
    private Test(int v, String s) {
    val = v;
    filed = s;
    }
    }

  3. spring aop

  4. 浏览器访问一个地址的全过程(结合4层模型讲)

  5. ip传输中间网络不可达,发送请求的客户端如何被通知到

    • icmp
  6. https加密原理

  7. 为什么TCP 是面向字节流的,UDP 是面向报文的。

    1. TCP 是面向字节流的(将应用层报文以字节流划分为多个tcp段,每个段都有自己的tcp头部)
    2. UDP 是面向报文的(应用层报文之用一个upd头部修饰,分片交给ip)
  8. tcp发送报文时,是同时发送多个seq包过去,服务端一个一个ack,还是必须等待服务端ack才发送下一个

  9. OS物理地址和虚拟地址的理解

  10. 缺页中断

  11. linux文件权限怎么表示

    1. chmod:指定文件权限(可以用ls -l [文件名] 命令来看到文件的权限)
      • 使用10个字符标识权限
        1. 第一个字符声明文件类型:-普通文件,d目录,l链接,p命名管道文件等
        2. 第24,57,8~10个字符分别声明文件所有者权限(user),所属组权限(group),其他用户权限(others)
          • rwx,分别表示可读,可写,可执行(不具备相应权限用-表示,如rw-表示具有读写权限)
          • 也可以使用数字简写(r=4,w=2,x=1),比如chmod 777 file 使得所有用户对文件均具有读、写、执行权限

算法

  1. topk

  2. A文件10GB,B文件10GB,内存空间256MB,求A-B的结果

    • 外部归并排序
本文作者:WQhuanm
本文链接:https://wqhuanm.github.io/Issue_Blog/2025/04/13/29_网易互娱一面(4.1)/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可