- 博客(4)
- 收藏
- 关注

原创 LinkedList的add()方法源码分析
嗷嗷原来是这个意思,就是说创建的这个新Node其中的item属性就是我们添加的对象var1,这个新的Node的next指向为空,prev指向了当前LinkedList对象的last属性,并且将当前LinkedList对象的last属性指向了这个新创建的Node对象var3。不同的是此时的var2就指向了我们上面加入的第一个节点, 我们创建的新的Node节点的prev属性就会指向上一个添加的新节点,而next还是为空,item就是我们要添加的新的元素。依次类推,每次添加都执行上面的操作。
2024-01-18 23:32:56
1595
1

原创 记录一次报错引起的对向下转型的理解
这里想将HashMap中的值取出来转换成一个List接口类的对象再返回。然后使用HashMap的values()方法返回collection集合,再使用向下转型将collection集合转型为他的子类ArrayList发生类型转换错误。一开始想的比较简单,但是报错了,于是回顾之前的转型知识搞明白了为什么有这种情况。首先我们为什么要有向下转型?因为在向上转型之后,我们的父类引用指向子类对象,但是如果我们要使用子类的特有方法,这时候会发现编译器报错,所以我们引出了向下转型。
2024-01-03 17:18:14
572
2
原创 ArrayList源码分析(扩容机制)
当我们进入这个ensureCapacityInternal()方法内部看到了它的结构,var1这个参数就是我们当前arraylist数组的个数,因为当前添加了一个元素所以所以var1=this.size (这时size为0因为没元素)+ 1 =1。首先,var2是当前数组的长度。我们发现真正扩容的方法是grow(var1);而在执行之前它要先满足这个条件才可以,这个条件是指当前元素数量大于elementData数组的长度,数组不够用了所以需要扩容了,这时候才进行 真正的扩容操作grow(var1);
2024-01-21 09:52:02
1393
1
原创 极客大挑战2019PHP——反序列化
扫描目录发现www.zip文件,然后进行下载下载后解压查看核心代码index.php通过GET方式接收变量$select,再将$select反序列化操作赋值给变量$resclass.php通过分析代码只需要满足username === 'admin'即可得到flag,在对象创建时__construct()给$username和$password赋值,销毁时调用__destruct()方法,所以我们只需要使password = 100 并且 username ='admin',所以构造payload。
2023-10-31 10:42:51
117
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人