3.拼多多

== 和 equals方法区别,JAVA对象是值传递还是引用传递:

  • == 操作符

    • 对于基本数据类型,比较的是两个变量的值是否相等。

    • 对于引用数据类型,比较的是两个引用是否指向同一个对象地址。

  • equals 方法

    • 是 Object 类中的一个方法,默认情况下,比较的是两个对象的地址是否相同,但通常会被重写来比较对象的内容是否相等。

    Java 对象传递是引用传递,但传递的是引用的副本,即传递的是引用的值。因此,从效果上看,可以认为是值传递,但传递的是对象的引用。

  1. String用==的情况,为什么java这么设计:
  • String 使用 == 的情况:当需要比较两个字符串对象的引用是否指向同一个对象时,可以使用 ==。

  • 字符串常量池设计原因

    • 节省内存:字符串常量池避免了相同字符串的重复创建,节省了内存空间。

    • 提高效率:字符串是不可变对象,使用常量池可以快速比较字符串内容是否相等,不需要重新创建对象。

    4.1 MYSQL索引怎么存储的:

    MySQL 索引通常使用 B-Tree 数据结构进行存储,对于全文本索引则使用倒排索引。

    4.2 select * from t where a = x and b = x ; a和b都建了索引,mysql会怎么查:

    MySQL 优化器会根据索引的选择性、统计信息等因素来决定使用哪个索引。如果两个索引的选择性相同,MySQL 可能会使用其中一个索引,或者可能会使用索引合并(Index Merge)来同时使用两个索引。

  1. Spring在开发中有什么常用的特性,为什么这么用:
  • 依赖注入(DI):简化了组件之间的依赖关系,使得代码更加模块化,易于测试和重用。

  • 面向切面编程(AOP):允许开发者定义跨多个点的行为,如日志、事务、安全等,分离横切关注点。

  • 声明式事务管理:通过注解或配置简化事务管理,使得业务代码不受事务管理代码的侵入。

  • 自动配置:Spring Boot 提供自动配置,减少了手动配置的工作量,提高了开发效率。

  • Spring Beans:提供了统一的bean管理方式,包括生命周期管理、作用域管理等。

  1. 介绍一下GC,把gc的流程基本讲了一遍,问了有没有调参的经验(无):

垃圾回收(GC)是自动内存管理的一部分,它旨在回收不再使用的内存空间。流程包括标记、清除、整理等。

  1. GC的根节点有哪些:说白了就是 全局的 局部的 本地方法里面声明的
  • 虚拟机栈中引用的对象。

  • 方法区中类静态属性引用的对象。

  • 方法区中常量引用的对象。

  • 本地方法栈中 JNI(即一般说的 Native 方法)引用的对象。

  1. 反转二叉树:
public TreeNode invertTree(TreeNode root) {
    if (root == null) return null;
    TreeNode temp = root.left;
    root.left = invertTree(root.right);
    root.right = invertTree(temp);
    return root;
}
  1. 二进制加分 "101"+"10" = "111" 这种:
public String addBinary(String a, String b) {
    StringBuilder result = new StringBuilder();
    int i = a.length() - 1, j = b.length() - 1, carry = 0;
    while (i >= 0 || j >= 0 || carry != 0) {
        int sum = carry;
        if (i >= 0) sum += a.charAt(i--) - '0';
        if (j >= 0) sum += b.charAt(j--) - '0';
        result.append(sum % 2);
        carry = sum / 2;
    }
    return result.reverse().toString();
}

#数据人的面试交流地##数据人offer决赛圈怎么选##设计人的面试记录##工作中,努力重要还是选择重要?#
Java大中厂秋招八股一本通 文章被收录于专栏

八股文分类整理 老哥们点点赞,订阅一下,纯福利做数据。

全部评论

相关推荐

2 13 评论
分享
牛客网
牛客企业服务