面试问题-1

今天是2021-2-24.
一。arraylist
1.arraylist最大容量:Integer.MAX_VALUE
二,hashmap
1.构造hashmap时,我们指定的初始容量A会被扩大到比它大的最近的那个2的n次幂的值B,以方便在扩容的时候,计算数据在 newTable 中的位置。
2.扩容阈值会由B0.75得出
3.如果我们想存数据量大的数据,比如说1000,最好是看比1000大的那个2的n次幂的值
0.75是否比它小–1024*0.75=768<1000,这样想存1000条还要触发一次扩容
4.方便起见,我们想指定初始容量时,传入预期值/0.75,通过负载因子放大,就可以保证存放下预期数据量的数据
三。cookie禁用了怎么实现登录效果
前端使用LocalStorage替代,转
限制cookie滥用,可以用localStorage替代大部分cookie功能
四。Thread类
1.实现了Runnable接口
2.yield()方法:与sleep()类似,调用yield方法并不会让线程进入阻塞状态,而是让线程重回就绪状态,它只需要等待重新获取CPU执行时间,这一点是和sleep方法不一样的。
3.join()方法:

join()
join(long millis)     //参数为毫秒
join(long millis,int nanoseconds)    //第一参数为毫秒,第二个参数为纳秒

假如在main线程中,调用thread.join方法,则main方法会等待thread线程执行完毕或者等待一定的时间。如果调用的是无参join方法,则等待thread执行完毕,如果调用的是指定了时间参数的join方法,则等待一定的时间
3.1 实际上调用join方法是调用了Object的wait方法
3.2interrupt()是给线程设置中断标志;interrupted()是检测中断并清除中断状态;isInterrupted()只检测中断。还有重要的一点就是interrupted()作用于当前线程,interrupt()和isInterrupted()作用于此线程,即代码中调用此方法的实例所代表的线程。

猜你喜欢

转载自blog.csdn.net/qq_44727091/article/details/114033713
今日推荐