2021校招深信服部分笔试题(知识点最全链接总结)

查漏补缺,都是对别人知识总结的汇总。

1. String & StringBuffer & StringBuilder

创建对象的问题

以下三句话的原文
(1)现在当有人问 String str = new String(“abc”);创建了几个对象,常量池有abc字段是1个,常量池没有"abc"字段则是2个。
(2)String str=“abc”;创建了几个对象(如果常量池里面已经有对象了就是0个。如果没有就是1个);
(3)new String(“abc”).intern();创建了几个对象(如果常量池里面已经有该字符串对象了就是1个,如果没有就是两个)
Java中String str = new String(“abc”)创建了几个对象

StringBuilder 的 toString()

注意返回一个新new的String对象

 @Override
    public String toString() {
        // Create a copy, don't share the array
        return new String(value, 0, count);
    }

intern()方法

通透啊这个讲的!
intern() 方法返回字符串对象的规范化表示形式。

String.intern()是一个Native方法,它的作用是:
如果字符常量池中已经包含一个等于此String对象的字符串,则返回常量池中字符串的引用,否则,将新的字符串放入常量池,并返回新字符串对象的引用

String的intern()方法可以用来扩充常量池。

2. 字符串常量池、Class常量池、运行时常量池

字符串常量池、Class常量池、运行时常量池

3. ThreadLocal

ThreadLocalMap 的每个 Entry 都是一个对 键 的弱引用, 每个 Entry 都包含了一个对 值 的强引用。

1、Thread中有一个map,就是ThreadLocalMap

2、ThreadLocalMap的key是ThreadLocal,值是我们自己设定的。

3、ThreadLocal是一个弱引用,当为null时,会被当成垃圾回收

4、重点来了,突然我们ThreadLocal是null了,也就是要被垃圾回收器回收了,但是此时我们的ThreadLocalMap生命周期和Thread的一样,它不会回收,这时候就出现了一个现象。那就是ThreadLocalMap的key没了,但是value还在,这就造成了内存泄漏。

解决办法:使用完ThreadLocal后,执行remove操作,避免出现内存溢出情况。

整个网站都在讲ThreadLocal 包括了四种引用类型的简单介绍。
(作为了解看,感觉他讲的很是忽悠人,有些地方不够准确)

详细解读ThreadLocal

个人感觉这个讲的最好

作用:
1、在进行对象跨层传递的时候,使用ThreadLocal可以避免多次传递,打破层次间的约束。

2、线程间数据隔离,也就是说,不能用于线程之间的共享资源,只能是同一个线程的方法之间共享。

3、进行事务操作,用于存储线程事务信息。

4、数据库连接:

5、Session会话管理。

4. 原子类

原子更新基本类型
addAndGet(int delta):以原子方式将输入的数值与实例中原本的值相加,并返回最后的结果;
incrementAndGet():以原子的方式将实例中的原值进行加1操作,并返回最终相加后的结果;
getAndSet(int newValue):将实例中的值更新为新值,并返回旧值;
getAndIncrement():以原子的方式将实例中的原值加1,返回的是自增前的旧值;
原子类更新各种数据类型

关于原子类讲的很好的一篇博文

5. JVM 线程共享、线程隔离

在JAVA虚拟机中,有运行时数据区,包含
线程共享的: 堆,方法区
线程隔离的: 程序计数器,Java虚拟机栈,本地方法栈.

6. 最近的数字

给定nums[]. 返回一个新数组arr[].
arr[i]满足 x < i & nums[x] < nums[i] && y > i & nums[y] > nums[i] ,arr[i] = nums[y] - nums[x].
x , y 距离 i 最近 。

大体是这样的。

7. 合并IPV4地址

给定一个ArrayList,其中存储这IP地址。包括单个IP地址或IP地址的一个范围。
若IP地址连续,则合并为一个范围。若IP地址包含在某个IP的范围内,则合并进这个范围,
返回IP地址的升序排列。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值