疏漏总结(十八)

  1. 线程池TimeOut参数啥意思

超过这段时间还没有线程负载上任务,就会删除这条线程

  1. interrupt(),interrupted(),isInterrupted()的区别

interrupt():这个作用相当于,让线程产生一个中断标志位,但是这不代表线程会立刻中断,就像yield一样,劝说cpu执行任务,而不是强制执行。
interrupted():这个的作用是清除当前的中断标志位,并且返回线程上一次的中断状态。
isInterrupted():判断当前线程是否处于中断。

  1. ThreadLocalMap解释一下

ThreadLocalMap是ThreadLocal内部维护的一个静态内部类。

因为一个线程内可以存在多个 ThreadLocal 对象,所以其实是 ThreadLocal 内部维护了一个 Map ,这个 Map 不是直接使用的 HashMap ,而是 ThreadLocal 实现的一个叫做 ThreadLocalMap 的静态内部类。最终的变量是放在了当前线程的 ThreadLocalMap 中,并不是存在 ThreadLocal 上,ThreadLocal 可以理解为只是ThreadLocalMap的封装,传递了变量值。

实际上 ThreadLocalMap 中使用的 key 为 ThreadLocal 的弱引用,弱引用的特点是,如果这个对象只存在弱引用,那么在下一次垃圾回收的时候必然会被清理掉。

所以如果 ThreadLocal 没有被外部强引用的情况下,在垃圾回收的时候会被清理掉的,这样一来 ThreadLocalMap中使用这个 ThreadLocal 的 key 也会被清理掉。但是,value 是强引用,不会被清理,这样一来就会出现 key 为 null 的 value。

ThreadLocalMap实现中已经考虑了这种情况,在调用 set()、get()、remove() 方法的时候,会清理掉 key 为 null 的记录。如果说会出现内存泄漏,那只有在出现了 key 为 null 的记录后,没有手动调用 remove() 方法,并且之后也不再调用 get()、set()、remove() 方法的情况下。

  1. 泛型擦除是什么意思

意思也就是说,实际上编译器是不识别你的泛型类型的,所以你在插入的时候,实际上是有一个强转的过程,全部都强转成Object对象了,然后再强转回来,就是整个的插入过程,所以你也可以从某种程度上去插入不同泛型类型的对象。

泛型擦除会带来几个问题:
(1)强制类型转换
如果用反射的方式去插入数据,就会报错,比如String也可以插一个Integer进去。
(2)引用传递

List<String> list = new ArrayList<Object>();//会报错,因为一般都是子类给父类传值
List<Object> list2 = new ArrayList<String>();//不会报错,因为不会改变泛型转型本身
  1. http1.1和http1.0区别

①1.0用keep-alive去告知服务器建立一个长连接,1.1默认支持长连接
②1.0每次发送都是直接header+body,1.1连接起来先用header试探是否连接ok,然后直接发送body,节省带宽
③1.0是没有host域的,1.1才支持,也就是说web server上的多个虚拟站点可以共享同一个ip和端口

  1. 什么情况下被标记为垃圾,但是不会被回收

在可达性分析中,我们会多不可达的对象进行标记,但是被标记了之后不代表会立刻进行垃圾回收,仅仅是一个等待的状态。真正去决定回收的是finalize()方法,当对象没有覆盖这个方法,或者虚拟机调用过这个方法(可以理解为调用过所以没必要再调用),那么就意味着这个对象一定要被回收了。

但是如果在这两种情况以外,就以为着有必要调用finalize()方法,这时候,会把对象放进一个F-Queue队列中,然后用一个低优先级的Finalizer方法去执行这个方法。但是不会让这个方法去执行完,因为如果是死循环这种有可能会导致阻塞整个F-Queue。

换句话说,Finalize是决定对象要回收和不回收最本质的东西。

  1. 什么是垂直分表,水平分表

水平分表:比如说,我们有100亿数据,但是我们如果要做一个全量查询,那么速度就会很慢,所以我们可以分成若干张表,将所有的数据平摊开。
垂直分表:这种情况一般都是表里面的某个字段很大,所以我们就需要进行垂直分表,因为如果表的字段很大,那么网络IO就会很影响速度,然后我们就可以垂直分表,但是分出去的这一列,要保持一对一的关系,能够和原来的表对应上。

  1. 如何确认索引是否生效

explain可以进行快速查询。
explain+sql语句

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值