3.拼多多
== 和 equals方法区别,JAVA对象是值传递还是引用传递:
-
== 操作符:
-
对于基本数据类型,比较的是两个变量的值是否相等。
-
对于引用数据类型,比较的是两个引用是否指向同一个对象地址。
-
-
equals 方法:
- 是 Object 类中的一个方法,默认情况下,比较的是两个对象的地址是否相同,但通常会被重写来比较对象的内容是否相等。
Java 对象传递是引用传递,但传递的是引用的副本,即传递的是引用的值。因此,从效果上看,可以认为是值传递,但传递的是对象的引用。
- 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)来同时使用两个索引。
-
- Spring在开发中有什么常用的特性,为什么这么用:
-
依赖注入(DI):简化了组件之间的依赖关系,使得代码更加模块化,易于测试和重用。
-
面向切面编程(AOP):允许开发者定义跨多个点的行为,如日志、事务、安全等,分离横切关注点。
-
声明式事务管理:通过注解或配置简化事务管理,使得业务代码不受事务管理代码的侵入。
-
自动配置:Spring Boot 提供自动配置,减少了手动配置的工作量,提高了开发效率。
-
Spring Beans:提供了统一的bean管理方式,包括生命周期管理、作用域管理等。
- 介绍一下GC,把gc的流程基本讲了一遍,问了有没有调参的经验(无):
垃圾回收(GC)是自动内存管理的一部分,它旨在回收不再使用的内存空间。流程包括标记、清除、整理等。
- GC的根节点有哪些:说白了就是 全局的 局部的 本地方法里面声明的
-
虚拟机栈中引用的对象。
-
方法区中类静态属性引用的对象。
-
方法区中常量引用的对象。
-
本地方法栈中 JNI(即一般说的 Native 方法)引用的对象。
- 反转二叉树:
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;
}
- 二进制加分 "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决赛圈怎么选##设计人的面试记录##工作中,努力重要还是选择重要?#八股文分类整理 老哥们点点赞,订阅一下,纯福利做数据。