面试题记录

String底层原理

  1. 常量
    形如下面这类字符串,将会被直接存储进入常量区中。
String s = "123";
String s = new String("123");
  1. 在程序进行编译的过程中,会将能够确认的字符串同样存入常量区中。
String s = "1" + "2";

如上,常量区中会存储"1", “2”, “12”。

  1. +在拼接字符串时的作用
    在使用+拼接字符串时,会隐式的构造StringBuilder对字符串进行构造,并将结果保存在Java堆中。

Integer和int的区别

Integer是对int的一个简单包装。

class Integer {
    private final int val;
    ...
}

Final方法

  • 在修饰类时,该类不能被继承。
  • 在修饰变量时,该变量只能够被赋值一次。仅限该变量的值,而变量引用的值可以被修改
  • 修饰方法时,该方法不能够被重写。

红黑树与AVL树

AVL树是带有平衡条件的二叉查找树,一般是用平衡因子差值判断是否平衡并通过旋转来实现平衡,左右子树树高不超过1,和红黑树相比,AVL树是严格的平衡二叉树,平衡条件必须满足(所有节点的左右子树高度差不超过1)。AVL树适合用于插入与删除次数比较少,但查找多的情况。

一种二叉查找树,但在每个节点增加一个存储位表示节点的颜色,可以是红或黑(非红即黑)。通过对任何一条从根到叶子的路径上各个节点着色的方式的限制,红黑树确保没有一条路径会比其它路径长出两倍,因此,红黑树是一种弱平衡二叉树(由于是弱平衡,可以看到,在相同的节点情况下,AVL树的高度低于红黑树),相对于要求严格的AVL树来说,它的旋转次数少,所以对于搜索,插入,删除操作较多的情况下,我们就用红黑树。

思考题

有1TB的访问记录,求数据中出现次数最多的前20条访问记录是什么?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值