-
Notifications
You must be signed in to change notification settings - Fork 0
/
atom.xml
93 lines (52 loc) · 26.9 KB
/
atom.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>邓晓煜的个人博客</title>
<subtitle>行动是治愈恐惧的良药,而犹豫拖延将不断滋养恐惧</subtitle>
<link href="https://www.dengxy.cn/atom.xml" rel="self"/>
<link href="https://www.dengxy.cn/"/>
<updated>2021-03-30T09:05:11.931Z</updated>
<id>https://www.dengxy.cn/</id>
<author>
<name>邓晓煜</name>
</author>
<generator uri="https://hexo.io/">Hexo</generator>
<entry>
<title>JavaScript基本数据类型和引用数据类型</title>
<link href="https://www.dengxy.cn/2021/03/30/JavaScript%E5%9F%BA%E6%9C%AC%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B%E5%92%8C%E5%BC%95%E7%94%A8%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B/"/>
<id>https://www.dengxy.cn/2021/03/30/JavaScript%E5%9F%BA%E6%9C%AC%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B%E5%92%8C%E5%BC%95%E7%94%A8%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B/</id>
<published>2021-03-30T09:04:46.000Z</published>
<updated>2021-03-30T09:05:11.931Z</updated>
<content type="html"><![CDATA[<p><strong>基本数据类型</strong></p><p>基本类型值指的是简单的数据段,其中基本数据类型是直接保存在栈内存中,对于基本数据类型的传递则是进行值传递</p><ul><li>Undifined</li><li>Null</li><li>Boolean</li><li>Number</li><li>String</li><li>Symbol</li></ul><p><img src="/.cn//Users\Administrator\Desktop\图片\clipboard.png" alt="clipboard"></p><p><strong>引用数据类型</strong></p><p>引用数据类型统称为 Object 类型,和基本数据类型不同的是引用数据类型在进行变量赋值的时候实际上传递的是引用地址,在栈内存中保存的是地址,在堆内存中保存着地址对应的值</p><ul><li><p>Object</p></li><li><p>Array</p></li><li><p>Date</p></li><li><p>RegExp</p></li><li><p>Function</p><p><img src="/.cn//Users\Administrator\Desktop\图片\1.png" alt="1"></p></li></ul><p><strong>检测数据类型</strong></p><p>JavaScript 是一种<strong>弱类型</strong>或者说<strong>动态</strong>语言。这意味着你不用提前声明变量的类型,在程序运行过程中,类型会被自动确定。这也意味着你可以使用同一个变量保存不同类型的数据,那么如何进行数据类型检测确定,那么就要进行检测判断</p><ul><li>typeof</li><li>instanceof</li></ul><p>typeof 操作符的唯一目的就是检查数据类型,如果我们希望检查任何从 Object 派生出来的结构类型,使用 typeof 是不起作用的,因为总是会得到 “object”。检查 Object 种类的合适方式是使用 <a href="https://developer.mozilla.org/en-US/docs/Glossary/instanceof">instanceof</a> 关键字。但即使这样也存在误差。</p>]]></content>
<summary type="html"><p><strong>基本数据类型</strong></p>
<p>基本类型值指的是简单的数据段,其中基本数据类型是直接保存在栈内存中,对于基本数据类型的传递则是进行值传递</p>
<ul>
<li>Undifined</li>
<li>Null</li>
<li>Boolean</summary>
</entry>
<entry>
<title>JavaScript基本数据类型和引用数据类型</title>
<link href="https://www.dengxy.cn/2021/03/30/JavaScript%E5%9F%BA%E6%9C%AC%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B%E5%92%8C%E5%BC%95%E7%94%A8%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B111/"/>
<id>https://www.dengxy.cn/2021/03/30/JavaScript%E5%9F%BA%E6%9C%AC%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B%E5%92%8C%E5%BC%95%E7%94%A8%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B111/</id>
<published>2021-03-30T08:11:31.000Z</published>
<updated>2021-03-30T09:04:25.562Z</updated>
<content type="html"><![CDATA[<p><strong>基本数据类型</strong></p><p>基本类型值指的是简单的数据段,其中基本数据类型是直接保存在栈内存中,对于基本数据类型的传递则是进行值传递</p><ul><li>Undifined</li><li>Null</li><li>Boolean</li><li>Number</li><li>String</li><li>Symbol</li></ul><p><img src="/.cn//Users\Administrator\Desktop\图片\clipboard.png" alt="clipboard"></p><p><strong>引用数据类型</strong></p><p>引用数据类型统称为 Object 类型,和基本数据类型不同的是引用数据类型在进行变量赋值的时候实际上传递的是引用地址,在栈内存中保存的是地址,在堆内存中保存着地址对应的值</p><ul><li><p>Object</p></li><li><p>Array</p></li><li><p>Date</p></li><li><p>RegExp</p></li><li><p>Function</p><p><img src="/.cn//Users\Administrator\Desktop\图片\1.png" alt="1"></p></li></ul><p><strong>检测数据类型</strong></p><p>JavaScript 是一种<strong>弱类型</strong>或者说<strong>动态</strong>语言。这意味着你不用提前声明变量的类型,在程序运行过程中,类型会被自动确定。这也意味着你可以使用同一个变量保存不同类型的数据,那么如何进行数据类型检测确定,那么就要进行检测判断</p><ul><li>typeof</li><li>instanceof</li></ul><p>typeof 操作符的唯一目的就是检查数据类型,如果我们希望检查任何从 Object 派生出来的结构类型,使用 typeof 是不起作用的,因为总是会得到 “object”。检查 Object 种类的合适方式是使用 <a href="https://developer.mozilla.org/en-US/docs/Glossary/instanceof">instanceof</a> 关键字。但即使这样也存在误差。</p>]]></content>
<summary type="html"><p><strong>基本数据类型</strong></p>
<p>基本类型值指的是简单的数据段,其中基本数据类型是直接保存在栈内存中,对于基本数据类型的传递则是进行值传递</p>
<ul>
<li>Undifined</li>
<li>Null</li>
<li>Boolean</summary>
<category term="JavaScript" scheme="https://www.dengxy.cn/tags/JavaScript/"/>
</entry>
<entry>
<title>ArrayList的基本实现</title>
<link href="https://www.dengxy.cn/2021/03/17/ArrayList%E7%9A%84%E5%9F%BA%E6%9C%AC%E5%AE%9E%E7%8E%B0/"/>
<id>https://www.dengxy.cn/2021/03/17/ArrayList%E7%9A%84%E5%9F%BA%E6%9C%AC%E5%AE%9E%E7%8E%B0/</id>
<published>2021-03-17T08:21:31.000Z</published>
<updated>2021-03-18T09:09:10.435Z</updated>
<content type="html"><![CDATA[<h2 id="ArrayList的基本实现"><a href="#ArrayList的基本实现" class="headerlink" title="ArrayList的基本实现"></a>ArrayList的基本实现</h2><p>1、通过Object类型的数组来实现,所以数组中需要存储基本类型数据的时候需要使用包装类</p><figure class="highlight java"><table><tbody><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">public</span> <span class="class"><span class="keyword">class</span> <span class="title">ArrayList</span><<span class="title">E</span>> <span class="keyword">extends</span> <span class="title">AbstractList</span><<span class="title">E</span>></span></span><br><span class="line"><span class="class"> <span class="keyword">implements</span> <span class="title">List</span><<span class="title">E</span>>, <span class="title">RandomAccess</span>, <span class="title">Cloneable</span>, <span class="title">java</span>.<span class="title">io</span>.<span class="title">Serializable</span></span></span><br><span class="line"><span class="class"></span>{</span><br><span class="line"> <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> <span class="keyword">long</span> serialVersionUID = <span class="number">8683452581122892189L</span>;</span><br><span class="line"></span><br><span class="line"> <span class="comment">/**</span></span><br><span class="line"><span class="comment"> * Default initial capacity.</span></span><br><span class="line"><span class="comment"> */</span></span><br><span class="line"> <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> <span class="keyword">int</span> DEFAULT_CAPACITY = <span class="number">10</span>;</span><br><span class="line"></span><br><span class="line"> <span class="comment">/**</span></span><br><span class="line"><span class="comment"> * Shared empty array instance used for empty instances.</span></span><br><span class="line"><span class="comment"> */</span></span><br><span class="line"> <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> Object[] EMPTY_ELEMENTDATA = {};</span><br><span class="line"></span><br><span class="line"> <span class="comment">/**</span></span><br><span class="line"><span class="comment"> * Shared empty array instance used for default sized empty instances. We</span></span><br><span class="line"><span class="comment"> * distinguish this from EMPTY_ELEMENTDATA to know how much to inflate when</span></span><br><span class="line"><span class="comment"> * first element is added.</span></span><br><span class="line"><span class="comment"> */</span></span><br><span class="line"> <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {};</span><br><span class="line"></span><br><span class="line"> <span class="comment">/**</span></span><br><span class="line"><span class="comment"> * The array buffer into which the elements of the ArrayList are stored.</span></span><br><span class="line"><span class="comment"> * The capacity of the ArrayList is the length of this array buffer. Any</span></span><br><span class="line"><span class="comment"> * empty ArrayList with elementData == DEFAULTCAPACITY_EMPTY_ELEMENTDATA</span></span><br><span class="line"><span class="comment"> * will be expanded to DEFAULT_CAPACITY when the first element is added.</span></span><br><span class="line"><span class="comment"> */</span></span><br><span class="line"> <span class="keyword">transient</span> Object[] elementData; <span class="comment">// non-private to simplify nested class access</span></span><br></pre></td></tr></tbody></table></figure><p>2、初始化的无参构造函数为一个空对象数组,在添加第一个元素的时候,会默认申请10个大小的内存空间,如果添加到了尾端,在进行1.5倍的空间申请并将原来存储的数据挪动复制到新申请的内存空间中</p><figure class="highlight java"><table><tbody><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">/**</span></span><br><span class="line"><span class="comment"> * Constructs an empty list with an initial capacity of ten.</span></span><br><span class="line"><span class="comment"> */</span></span><br><span class="line"><span class="function"><span class="keyword">public</span> <span class="title">ArrayList</span><span class="params">()</span> </span>{</span><br><span class="line"> <span class="keyword">this</span>.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA;</span><br><span class="line">}</span><br></pre></td></tr></tbody></table></figure><figure class="highlight java"><table><tbody><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">/**</span></span><br><span class="line"><span class="comment"> * Increases the capacity to ensure that it can hold at least the</span></span><br><span class="line"><span class="comment"> * number of elements specified by the minimum capacity argument.</span></span><br><span class="line"><span class="comment"> *</span></span><br><span class="line"><span class="comment"> * <span class="doctag">@param</span> minCapacity the desired minimum capacity</span></span><br><span class="line"><span class="comment"> */</span></span><br><span class="line"><span class="function"><span class="keyword">private</span> <span class="keyword">void</span> <span class="title">grow</span><span class="params">(<span class="keyword">int</span> minCapacity)</span> </span>{</span><br><span class="line"> <span class="comment">// overflow-conscious code</span></span><br><span class="line"> <span class="keyword">int</span> oldCapacity = elementData.length;</span><br><span class="line"> <span class="keyword">int</span> newCapacity = oldCapacity + (oldCapacity >> <span class="number">1</span>);</span><br><span class="line"> <span class="keyword">if</span> (newCapacity - minCapacity < <span class="number">0</span>)</span><br><span class="line"> newCapacity = minCapacity;</span><br><span class="line"> <span class="keyword">if</span> (newCapacity - MAX_ARRAY_SIZE > <span class="number">0</span>)</span><br><span class="line"> newCapacity = hugeCapacity(minCapacity);</span><br><span class="line"> <span class="comment">// minCapacity is usually close to size, so this is a win:</span></span><br><span class="line"> elementData = Arrays.copyOf(elementData, newCapacity);</span><br><span class="line">}</span><br></pre></td></tr></tbody></table></figure><p>3、数组在遍历的时候很快就是因为内存地址是连续的,所以查找某个位置的元素可以瞬间获取到,所以遍历的是特别快的,通过第一个元素的地址就能计算出后面第N位的元素地址</p><p>4、ArrayList实现了一个叫RandomAccess的空接口,实际上实现这个接口只是为了做打标,就是告诉别人当前的这个类支持快速访问,所以在进行泛型对象的遍历的时候,由于我们不清楚具体的实现类是什么,所以可以判断是否实现了RandomAccess接口,如果实现了此接口则进行for循环遍历集合,否之则使用迭代器,所以这里的RandomAccess就是为了告诉别人当前实现类支持快速访问,但实际上是否能快速访问还是因为存储的数据结构不一样</p><figure class="highlight java"><table><tbody><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br></pre></td><td class="code"><pre><span class="line"><span class="function"><span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">void</span> <span class="title">loop</span><span class="params">(java.util.List list)</span></span>{</span><br><span class="line"> <span class="keyword">if</span>(list <span class="keyword">instanceof</span> RandomAccess) {</span><br><span class="line"> <span class="comment">// for循环</span></span><br><span class="line"> System.out.println(<span class="string">"采用for循环遍历"</span>);</span><br><span class="line"> <span class="keyword">for</span> (<span class="keyword">int</span> i = <span class="number">0</span>;i< list.size();i++) {</span><br><span class="line"> System.out.println(list.get(i));</span><br><span class="line"> }</span><br><span class="line"> } <span class="keyword">else</span> {</span><br><span class="line"> <span class="comment">// 迭代器</span></span><br><span class="line"> System.out.println(<span class="string">"采用迭代器遍历"</span>);</span><br><span class="line"> Iterator it = list.iterator();</span><br><span class="line"> <span class="keyword">while</span>(it.hasNext()){</span><br><span class="line"> System.out.println(it.next());</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line">}</span><br><span class="line"><span class="function"><span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">void</span> <span class="title">main</span><span class="params">(String[] args)</span> </span>{</span><br><span class="line"> java.util.List<String> list = Arrays.asList(<span class="string">"123"</span>,<span class="string">"456"</span>,<span class="string">"789"</span>,<span class="string">"1110"</span>);</span><br><span class="line"> java.util.List<String> list1 = <span class="keyword">new</span> LinkedList<>();</span><br><span class="line"> list1.add(<span class="string">"aaa"</span>);</span><br><span class="line"> list1.add(<span class="string">"bbb"</span>);</span><br><span class="line"> list1.add(<span class="string">"ccc"</span>);</span><br><span class="line"> loop(list);</span><br><span class="line"> loop(list1);</span><br><span class="line">}</span><br></pre></td></tr></tbody></table></figure><p>5、ArrayList中的存储数组elementData是用transient修饰的,而ArrayList又是实现了Serializable接口表明是可实例化的,这里就是很矛盾,因为被transient修饰的数据是不会被实例化的。实际上是因为刚刚说的数组的空间是必须要提前申请的,所以这里有个问题就是数组可能会空间比较大,但实际上存储的元素没有那么多。所以在序列化的时候完全不需要去序列化那些空内存,所以ArrayList手动实现了序列化方法,根据元素的多少进行序列化。</p><figure class="highlight java"><table><tbody><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">/**</span></span><br><span class="line"><span class="comment"> * The array buffer into which the elements of the ArrayList are stored.</span></span><br><span class="line"><span class="comment"> * The capacity of the ArrayList is the length of this array buffer. Any</span></span><br><span class="line"><span class="comment"> * empty ArrayList with elementData == DEFAULTCAPACITY_EMPTY_ELEMENTDATA</span></span><br><span class="line"><span class="comment"> * will be expanded to DEFAULT_CAPACITY when the first element is added.</span></span><br><span class="line"><span class="comment"> */</span></span><br><span class="line"><span class="keyword">transient</span> Object[] elementData; <span class="comment">// non-private to simplify nested class access</span></span><br></pre></td></tr></tbody></table></figure><figure class="highlight java"><table><tbody><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">/**</span></span><br><span class="line"><span class="comment"> * Save the state of the <tt>ArrayList</tt> instance to a stream (that</span></span><br><span class="line"><span class="comment"> * is, serialize it).</span></span><br><span class="line"><span class="comment"> *</span></span><br><span class="line"><span class="comment"> * <span class="doctag">@serialData</span> The length of the array backing the <tt>ArrayList</tt></span></span><br><span class="line"><span class="comment"> * instance is emitted (int), followed by all of its elements</span></span><br><span class="line"><span class="comment"> * (each an <tt>Object</tt>) in the proper order.</span></span><br><span class="line"><span class="comment"> */</span></span><br><span class="line"><span class="function"><span class="keyword">private</span> <span class="keyword">void</span> <span class="title">writeObject</span><span class="params">(java.io.ObjectOutputStream s)</span></span></span><br><span class="line"><span class="function"> <span class="keyword">throws</span> java.io.IOException</span>{</span><br><span class="line"> <span class="comment">// Write out element count, and any hidden stuff</span></span><br><span class="line"> <span class="keyword">int</span> expectedModCount = modCount;</span><br><span class="line"> s.defaultWriteObject();</span><br><span class="line"></span><br><span class="line"> <span class="comment">// Write out size as capacity for behavioural compatibility with clone()</span></span><br><span class="line"> s.writeInt(size);</span><br><span class="line"></span><br><span class="line"> <span class="comment">// Write out all elements in the proper order.</span></span><br><span class="line"> <span class="keyword">for</span> (<span class="keyword">int</span> i=<span class="number">0</span>; i<size; i++) {</span><br><span class="line"> s.writeObject(elementData[i]);</span><br><span class="line"> }</span><br><span class="line"></span><br><span class="line"> <span class="keyword">if</span> (modCount != expectedModCount) {</span><br><span class="line"> <span class="keyword">throw</span> <span class="keyword">new</span> ConcurrentModificationException();</span><br><span class="line"> }</span><br><span class="line">}</span><br></pre></td></tr></tbody></table></figure><figure class="highlight java"><table><tbody><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">/**</span></span><br><span class="line"><span class="comment"> * Reconstitute the <tt>ArrayList</tt> instance from a stream (that is,</span></span><br><span class="line"><span class="comment"> * deserialize it).</span></span><br><span class="line"><span class="comment"> */</span></span><br><span class="line"><span class="function"><span class="keyword">private</span> <span class="keyword">void</span> <span class="title">readObject</span><span class="params">(java.io.ObjectInputStream s)</span></span></span><br><span class="line"><span class="function"> <span class="keyword">throws</span> java.io.IOException, ClassNotFoundException </span>{</span><br><span class="line"> elementData = EMPTY_ELEMENTDATA;</span><br><span class="line"></span><br><span class="line"> <span class="comment">// Read in size, and any hidden stuff</span></span><br><span class="line"> s.defaultReadObject();</span><br><span class="line"></span><br><span class="line"> <span class="comment">// Read in capacity</span></span><br><span class="line"> s.readInt(); <span class="comment">// ignored</span></span><br><span class="line"></span><br><span class="line"> <span class="keyword">if</span> (size > <span class="number">0</span>) {</span><br><span class="line"> <span class="comment">// be like clone(), allocate array based upon size not capacity</span></span><br><span class="line"> ensureCapacityInternal(size);</span><br><span class="line"></span><br><span class="line"> Object[] a = elementData;</span><br><span class="line"> <span class="comment">// Read in all elements in the proper order.</span></span><br><span class="line"> <span class="keyword">for</span> (<span class="keyword">int</span> i=<span class="number">0</span>; i<size; i++) {</span><br><span class="line"> a[i] = s.readObject();</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line">}</span><br></pre></td></tr></tbody></table></figure>]]></content>
<summary type="html"><h2 id="ArrayList的基本实现"><a href="#ArrayList的基本实现" class="headerlink" title="ArrayList的基本实现"></a>ArrayList的基本实现</h2><p>1、通过Object类型的数组来实现,所以数</summary>
<category term="JAVA" scheme="https://www.dengxy.cn/tags/JAVA/"/>
</entry>
</feed>