三个面试Demo,看完后有股如沐春风的感觉.....哈哈

目录

Too_1

Top_2

Top_3


 

Too_1

jdk1.7,属于JVM堆内存中的区域?

jvm堆分为:

新生代(一般是一个Eden区,两个Survivor区)

老年代(old区)

常量池属于 PermGen(方法区)

 


Top_2

ArrayLists和LinkedList的区别,下述说法正确的有? 

ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。
对于随机访问get和set,ArrayList绝对优于LinkedList,因为LinkedList要迭代器。
对于新增和删除操作add和remove,LinkedList比较占优势,因为ArrayList要移动数据。
ArrayList的空间浪费主要体现在在list列表的结尾预留一定的容量空间,而LinkedList的空间花费则体现在它的每一个元素都需要消耗相当的空间。

答案:全对

补充第一句最后一句解释:

  • 这里的所谓动态数组并不是有多少元素就申请多少空间的意思,通过查看源码,可以发现,这个动态数组是这样实现的,如果没指定数组大小,则申请默认大小为10的数组,当元素个数增加,数组无法存储时,系统会另个申请一个长度为当前长度1.5倍的数组,然后,把之前的数据拷贝到新建的数组
  • ..........................................
  • ArrayList空间的增长率为1.5倍,所以,最后很可能留下一部分空间是没有用到的,因此,会造成浪费的情况。对于LInkedList的话,由于每个节点都需要额外的指针

Top_3

浅谈ThreadLocal类  

  • ThreadLocal是采用哈希表的方式来为每个线程都提供一个变量的副本
  • ThreadLocal保证各个线程间数据安全,每个线程的数据不会被另外线程访问和破坏
  • ThreadLocal的类声明:

    public class ThreadLocal<T>

    可以看出ThreadLocal并没有继承自Thread,也没有实现Runnable接口

  • Synchronized用于线程间的数据共享,而ThreadLocal则用于线程间的数据隔离。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

C_x_330

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值