面试
搜罗在日常学习中的面试题,加以记录和理解记忆,以便于日后招工作使用。
Eternal_Summer-
Java学习,共同进步
展开
-
包装类高频区间的数据缓存【面试】
包装类高频区间的数据缓存【面试】基本数据类型的包装类有其高频区域的数据缓存。其特性:(以Integer为例)1. Integer的高频区域为:-128~1272. 在数据位于数据区间-128~127时,会直接复用已有对象(地址相同),在这区间之外的数字才会在堆上产生。即new一个新的对象。具体看代码:public class PackingClass { public static void main(String[] args) { Integer num1 = 12原创 2021-07-09 13:34:45 · 281 阅读 · 0 评论 -
Java如何跳出多重嵌套循环
Java如何跳出多重嵌套循环/** * 两种退出双重循环的方式 */public class BreakDoubleLoop { public static void main(String[] args) { //1. 定义一个标号,使用break加标号的方式 myfor:for (int i = 0;i<10;i++){ for (int j = 0;j<100;j++){ System.原创 2021-07-09 13:19:31 · 402 阅读 · 0 评论 -
单链表-快慢指针
单链表-快慢指针 快慢指针指的是定义两个指针,这两个指针的移动速度一快一慢,通常快指针的移动速度为慢指针的2倍。以此来制造出自己想要的差值,这个差值可以帮我们找到链表上相应的结点。1. 中间值问题原理:利用快慢指针,我们可将一个链表看成是一个跑道,假设a的速度是b的两倍,那么当a跑完全程后,b刚好跑完一半,以此来找到中间结点。/** * 快慢指针求链表中间值 * 当链表结点为奇数个:如7个结点,那么中间为(7+1)/2 = 4 * 当链表结点为偶数个:如6个结点,那么中间为(6+2)/2原创 2021-07-07 20:28:34 · 661 阅读 · 2 评论 -
Java实现单链表+链表反转
Java实现单链表+链表反转Java实现单链表import java.util.Iterator;/** * 单链表 */public class LinkList<T> implements Iterable<T> { private Node head;//记录头节点 private int N;//记录链表长度 public LinkList() { //初始化链表:头节点为null,链表长度为0 this原创 2021-07-06 23:20:41 · 403 阅读 · 4 评论 -
Redis超时回收
Redis超时回收问题 在Redis中,如果key超时了,Redis会回收key的存储空间吗?答案 不会。Redis的key超时是不会被其自动回收的,它只会标识哪些键值对超时了。 这样做的一个好处在于,如果一个很大的键值对超时,比如一个列表或者哈希结构,存在数以百万个元素,要对其回收需要很长时间。如果采用超时回收,则可能产生停顿。坏处也很明显,这些超时的键值对会浪费比较多的空间。Redis提供的回收方式Redis提供两种回收方式回收这些超时键值对。分别是:定时回收、惰性回收原创 2021-03-21 18:31:26 · 210 阅读 · 0 评论