-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathatom.xml
More file actions
287 lines (154 loc) · 83.2 KB
/
Copy pathatom.xml
File metadata and controls
287 lines (154 loc) · 83.2 KB
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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>xnmll's blog</title>
<link href="/atom.xml" rel="self"/>
<link href="http://xnmll.cn/"/>
<updated>2017-12-18T13:57:37.225Z</updated>
<id>http://xnmll.cn/</id>
<author>
<name>xnmll</name>
</author>
<generator uri="http://hexo.io/">Hexo</generator>
<entry>
<title>19周及以后课程设计</title>
<link href="http://xnmll.cn/2017/12/18/19%E5%91%A8%E5%8F%8A%E4%BB%A5%E5%90%8E%E8%AF%BE%E7%A8%8B%E8%AE%BE%E8%AE%A1/"/>
<id>http://xnmll.cn/2017/12/18/19周及以后课程设计/</id>
<published>2017-12-18T13:49:39.000Z</published>
<updated>2017-12-18T13:57:37.225Z</updated>
<content type="html"><![CDATA[<h1 id="前言:"><a href="#前言:" class="headerlink" title="前言:"></a>前言:</h1><p>18周以后第一天,已经算是进入假期了,没有早起?英语很久没有背了。<br>时间是12/18到1/8左右,还有20天回家。</p><h1 id="要求:"><a href="#要求:" class="headerlink" title="要求:"></a>要求:</h1><p>每天早起,考研英语每天背一个至少,走之前背完一遍<br>课程设计独立完善执行,做一次有意义的课程设计</p><h1 id="细节:"><a href="#细节:" class="headerlink" title="细节:"></a>细节:</h1><p>week19day01:</p>]]></content>
<summary type="html">
<h1 id="前言:"><a href="#前言:" class="headerlink" title="前言:"></a>前言:</h1><p>18周以后第一天,已经算是进入假期了,没有早起?英语很久没有背了。<br>时间是12/18到1/8左右,还有20天回家。</p>
<
</summary>
<category term="日常" scheme="http://xnmll.cn/categories/%E6%97%A5%E5%B8%B8/"/>
<category term="成长历程" scheme="http://xnmll.cn/tags/%E6%88%90%E9%95%BF%E5%8E%86%E7%A8%8B/"/>
<category term="随机" scheme="http://xnmll.cn/tags/%E9%9A%8F%E6%9C%BA/"/>
</entry>
<entry>
<title>java笔记</title>
<link href="http://xnmll.cn/2017/12/13/java%E7%AC%94%E8%AE%B0/"/>
<id>http://xnmll.cn/2017/12/13/java笔记/</id>
<published>2017-12-13T14:08:03.000Z</published>
<updated>2017-12-14T02:56:38.337Z</updated>
<content type="html"><![CDATA[<p>###很长时间没有整理代码..也没有敲是代码了</p><p><img src="/2017/12/13/java笔记/1.jpg" alt=".."><br>java临近考试,过俩天靠四级..考完后花一天整合代码 很久没敲有点生疏,整合之后放在github上还需要学点github…各种小白,新用的ide idea,感觉很舒服。<br>上床写试卷了..</p>]]></content>
<summary type="html">
<p>###很长时间没有整理代码..也没有敲是代码了</p>
<p><img src="/2017/12/13/java笔记/1.jpg" alt=".."><br>java临近考试,过俩天靠四级..考完后花一天整合代码 很久没敲有点生疏,整合之后放在github上还需要学点gi
</summary>
<category term="笔记" scheme="http://xnmll.cn/categories/%E7%AC%94%E8%AE%B0/"/>
<category term="随机" scheme="http://xnmll.cn/tags/%E9%9A%8F%E6%9C%BA/"/>
</entry>
<entry>
<title>假期安排</title>
<link href="http://xnmll.cn/2017/12/09/%E5%81%87%E6%9C%9F%E5%AE%89%E6%8E%92/"/>
<id>http://xnmll.cn/2017/12/09/假期安排/</id>
<published>2017-12-09T15:44:02.000Z</published>
<updated>2017-12-09T14:27:03.390Z</updated>
<content type="html"><![CDATA[<p>这个周六日常的没有完成任务,写下假期安排吧,明早早起..</p><p>假期大概55天左右,去掉年中,算是50天</p><h2 id="1-总任务及安排"><a href="#1-总任务及安排" class="headerlink" title="1.总任务及安排"></a>1.总任务及安排</h2><p>额,有次在日记中整理了,先写上点以后补充</p><p>1.考研英语(绿皮第一遍,第二遍)</p><p>2.数学(看教学视频,起码过一遍)</p><p>3.专业课(了解后写内容)</p><p>4.政治了解</p><p>5.预习大三下学期所有课程,编程类提前看书写代码等,所有编程类学科尽量下学期不用上课去做更有意义的事</p><p>6.每天半小时以上看行业资讯,思考每天所学</p><h2 id="2-时间"><a href="#2-时间" class="headerlink" title="2.时间"></a>2.时间</h2><p>6点起 上午下午各两个档和学校类似 晚上加两个档。</p><p>大概就是这样</p><h2 id="3-important"><a href="#3-important" class="headerlink" title="3.important"></a>3.important</h2><p>18周以后就算是假期了,时间按照假期安排</p><p>两周课程设计不能浪费时间,全力以赴</p>]]></content>
<summary type="html">
<p>这个周六日常的没有完成任务,写下假期安排吧,明早早起..</p>
<p>假期大概55天左右,去掉年中,算是50天</p>
<h2 id="1-总任务及安排"><a href="#1-总任务及安排" class="headerlink" title="1.总任务及安排"></
</summary>
<category term="计划" scheme="http://xnmll.cn/categories/%E8%AE%A1%E5%88%92/"/>
<category term="成长历程" scheme="http://xnmll.cn/tags/%E6%88%90%E9%95%BF%E5%8E%86%E7%A8%8B/"/>
</entry>
<entry>
<title>我有罪我有罪我有罪</title>
<link href="http://xnmll.cn/2017/11/26/11-26/"/>
<id>http://xnmll.cn/2017/11/26/11-26/</id>
<published>2017-11-26T15:44:02.000Z</published>
<updated>2017-11-26T15:52:50.001Z</updated>
<content type="html"><![CDATA[<p>##度过了大三史上最颓废的周六周日!!!!!</p><p>在呛眼的烟味中睡觉了,明早早起。</p>]]></content>
<summary type="html">
<p>##度过了大三史上最颓废的周六周日!!!!!</p>
<p>在呛眼的烟味中睡觉了,明早早起。</p>
</summary>
<category term="计划" scheme="http://xnmll.cn/categories/%E8%AE%A1%E5%88%92/"/>
<category term="成长历程" scheme="http://xnmll.cn/tags/%E6%88%90%E9%95%BF%E5%8E%86%E7%A8%8B/"/>
</entry>
<entry>
<title>日常吐槽</title>
<link href="http://xnmll.cn/2017/11/19/11-19/"/>
<id>http://xnmll.cn/2017/11/19/11-19/</id>
<published>2017-11-19T09:27:18.000Z</published>
<updated>2017-11-19T10:04:40.627Z</updated>
<content type="html"><![CDATA[<h1 id="吐槽…"><a href="#吐槽…" class="headerlink" title="吐槽…"></a>吐槽…</h1><p><img src="/2017/11/19/11-19/haha.png" alt="demo"></p><p>大三上学期的生活转眼过去了一大半,状态逐渐好转还是觉得要做的还有很多。<br>消费主义,性自由,成功学,充斥着现代社会。<br>独善其身,保持冷静与思考。<br>就先这样吧…</p>]]></content>
<summary type="html">
<h1 id="吐槽…"><a href="#吐槽…" class="headerlink" title="吐槽…"></a>吐槽…</h1><p><img src="/2017/11/19/11-19/haha.png" alt="demo"></p>
<p>大三上学期的生活转
</summary>
<category term="吐槽" scheme="http://xnmll.cn/categories/%E5%90%90%E6%A7%BD/"/>
<category term="成长历程" scheme="http://xnmll.cn/tags/%E6%88%90%E9%95%BF%E5%8E%86%E7%A8%8B/"/>
</entry>
<entry>
<title>linux服务器部署jsp项目(详解)</title>
<link href="http://xnmll.cn/2017/11/09/11-9/"/>
<id>http://xnmll.cn/2017/11/09/11-9/</id>
<published>2017-11-09T10:24:15.000Z</published>
<updated>2017-11-09T10:42:53.999Z</updated>
<content type="html"><![CDATA[<h1 id="1-前言"><a href="#1-前言" class="headerlink" title="1.前言"></a>1.前言</h1><p>话说现在很多同学都有自己的服务器,(ps:学生认证后很优惠,飞机票点<a href="https://cloud.tencent.com/act/campus" target="_blank" rel="external">这里</a>)所以很多东西都可以付诸实践啦,python,jsp,asp部署,爬虫,<a href="http://www.jianshu.com/p/db589e9cdbef" target="_blank" rel="external">ssr</a>等等。毕竟服务器仅仅部署网站太浪费啦,今天介绍的是linux服务器部署jsp项目详解</p><h1 id="2-坑和环境"><a href="#2-坑和环境" class="headerlink" title="2.坑和环境"></a>2.坑和环境</h1><h2 id="开发环境"><a href="#开发环境" class="headerlink" title="开发环境"></a>开发环境</h2><p>1.腾讯云服务器 </p><p>2.xshell远程连接工具</p><p>3.navicat数据库管理</p><p>4.<a href="https://www.bt.cn/bbs/thread-1186-1-1.html" target="_blank" rel="external">宝塔面板</a>支持(主要)</p><h2 id="坑"><a href="#坑" class="headerlink" title="坑"></a>坑</h2><p>1.上传war包</p><p>2.数据库管理</p><p>3.数据库权限</p><p>4.诶,小编也是伸手党好吗,要不是没找到比较全面的教材也不会费时间写啊写啊的,你们好好看啊喂</p><h2 id="3-解决和后期"><a href="#3-解决和后期" class="headerlink" title="3.解决和后期"></a>3.解决和后期</h2>]]></content>
<summary type="html">
<h1 id="1-前言"><a href="#1-前言" class="headerlink" title="1.前言"></a>1.前言</h1><p>话说现在很多同学都有自己的服务器,(ps:学生认证后很优惠,飞机票点<a href="https://cloud.tence
</summary>
<category term="学习笔记" scheme="http://xnmll.cn/categories/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/"/>
<category term="java" scheme="http://xnmll.cn/tags/java/"/>
<category term="jsp" scheme="http://xnmll.cn/tags/jsp/"/>
</entry>
<entry>
<title>java 字符串详解 String</title>
<link href="http://xnmll.cn/2017/11/06/11-6/"/>
<id>http://xnmll.cn/2017/11/06/11-6/</id>
<published>2017-11-06T05:10:41.000Z</published>
<updated>2017-11-08T10:04:31.953Z</updated>
<content type="html"><![CDATA[<h2 id="一-Java中的数据类型"><a href="#一-Java中的数据类型" class="headerlink" title="一 Java中的数据类型"></a>一 Java中的数据类型</h2><h3 id="一-基本类型"><a href="#一-基本类型" class="headerlink" title="一 基本类型"></a>一 基本类型</h3><p>一种是基本类型(primitive types),共有8种,即int,short, long, byte, float, double, boolean, char(注意,并没有string的基本类型)。</p><p>这种类型的定义是通过诸如int a = 3; long b = 255L;的形式来定义的,称为自动变量。值得注意的是,自动变量存的是字面值,不是类的实例,即不是类的引用,这里并没有类的存在。如int a = 3;这里的a直接指向3这个字面值。这些字面值的数据,由于大小可知,生存期可知(这些字面值固定定义在某个程序块里面,程序块退出后,字段值就消失了),出于追求速度的原因,就存在于<a href="">栈</a>中。</p><h3 id="二-包装类"><a href="#二-包装类" class="headerlink" title="二 包装类"></a>二 包装类</h3><p>另一种是包装类数据,如Integer, String, Double等将相应的基本数据类型包装起来的类。这些类数据全部存在于<a href="">堆</a>中,Java用new()语句来显示地告诉编译器,在运行时才根据需要动态创建,因此比较灵活,但缺点是要占用更多的时间。 </p><p>举例如下: Java代码 :</p><figure class="highlight java"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div><div class="line">13</div><div class="line">14</div><div class="line">15</div><div class="line">16</div><div class="line">17</div><div class="line">18</div></pre></td><td class="code"><pre><div class="line"> <span class="keyword">public</span> <span class="class"><span class="keyword">class</span> <span class="title">Test</span> </span>{ </div><div 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></div><div class="line"><span class="function"> </span>{ </div><div class="line"> <span class="keyword">int</span> a1 = <span class="number">1</span>; </div><div class="line"> <span class="keyword">int</span> b1 = <span class="number">1</span>; </div><div class="line"> <span class="keyword">int</span> c1 = <span class="number">2</span>; </div><div class="line"> <span class="keyword">int</span> d1 = a1+b1; </div><div class="line"> Integer c = <span class="number">3</span>; </div><div class="line"> Integer d = <span class="number">3</span>; </div><div class="line"> Integer e = <span class="number">321</span>; </div><div class="line"> Integer f = <span class="number">321</span>;</div><div class="line"> Long g = <span class="number">3L</span>; </div><div class="line"> System.out.println(a1==b1); <span class="comment">//true 结果1 </span></div><div class="line"> System.out.println(c1==d1); <span class="comment">//true 结果2 </span></div><div class="line"> System.out.println(c==d); <span class="comment">//true 结果3 </span></div><div class="line"> System.out.println(e==f); <span class="comment">//false 结果4 </span></div><div class="line"> } </div><div class="line">}</div></pre></td></tr></table></figure><p>分析:</p><p> 结果1:a1==b1如上面所述,会在栈中开辟存储空间存放数据。 </p><p> 结果2:首先它会在栈中创建一个变量为c1的引用,然后查找有没有字面值为2的地址,没找到,就开辟一个存放2这个字面值的地址,然后将c1指向2的地址,d1为两个字面值相加也为2,由于在栈中已经有2这个字面值,便将d1直接指向2的地址。这样,就出现了c1与d1同时均指向2的地址的情况。 </p><p> 在分析下面结果以前让我们先对Java自动拆箱和装箱做个了结:在自动装箱时,把int变成Integer的时候,是有规则的,当你的int的值在-128-IntegerCache.high(127)时,返回的不是一个新new出来的Integer对象,而是一个已经缓存在堆中的Integer对象,(我们可以这样理解,系统已经把-128到127之间的Integer缓存到一个Integer数组中去了,如果你要把一个int变成一个Integer对象,首先去缓存中找,找到的话直接返回引用给你就行了,不必再new一个),如果不在-128-IntegerCache.high(127)时会返回一个新new出来的Integer对象。 </p><p> 结果3:由于3是在范围内所以是从缓存中取数据的,c和d指向同一个对象,结果为true; </p><p> 结果4:由于321不是在范围内所以不是从缓存中取数据的而是单独有new对象,e和f并没有指向同一个对象,结果为false;</p><h2 id="二-String是一个特殊的包装类数据"><a href="#二-String是一个特殊的包装类数据" class="headerlink" title="二 String是一个特殊的包装类数据"></a>二 String是一个特殊的包装类数据</h2><h3 id="一-String创建"><a href="#一-String创建" class="headerlink" title="一 String创建"></a>一 String创建</h3><figure class="highlight java"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">javaString str = <span class="keyword">new</span> String(<span class="string">"abc"</span>);</div></pre></td></tr></table></figure><p>的形式来创建,也可以用<br><figure class="highlight java"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">String str =<span class="string">"abc"</span>;</div></pre></td></tr></table></figure></p><p>的形式来创建。<br><figure class="highlight java"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">javaString str = <span class="keyword">new</span> String(<span class="string">"abc"</span>);</div></pre></td></tr></table></figure></p><p>创建实例的过程:<br>1首先定义一个str的String类型的引用并存放在栈中<br>2在字符串常量池中查看是否存在内容为”abc”字符串对象<br>3若存在则跳过这个步骤,若不存在,则在字符串常量池中创建一个内容为”abc”的字符串对象<br>4执行new操作,在堆中创建一个指定的对象”abc”,这里堆的对象是字符串常量池“abc”对象的一个拷贝对象<br>5让str指向堆中“abc”这个对象(也就是存储这个对象的在堆中的地址)<br><figure class="highlight java"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">String str =<span class="string">"abc"</span>;</div></pre></td></tr></table></figure></p><p>创建对象的过程:<br>1 首先在常量池中查找是否存在内容为”abc”的字符串对象<br>2 如果不存在则在常量池中创建一个”abc”的字符串对象,并让str引用该对象<br>3 如果存在则直接让str引用该对象<br>注意:常量池属于类信息的一部分,而类信息反映到JVM内存模型中是对应存在于JVM内存模型的方法区,也就是说这个类信息中的常量池概念是存在于在方法区中。一般这种情况下,”abc”在编译时就被写入字节码中,所以class被加载时,JVM就为”abc”在常量池中分配内存,所以和静态区差不多。 </p><h3 id="二-详细例子"><a href="#二-详细例子" class="headerlink" title="二 详细例子"></a>二 详细例子</h3><figure class="highlight java"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div><div class="line">13</div><div class="line">14</div><div class="line">15</div><div class="line">16</div><div class="line">17</div><div class="line">18</div><div class="line">19</div><div class="line">20</div><div class="line">21</div><div class="line">22</div><div class="line">23</div><div class="line">24</div><div class="line">25</div><div class="line">26</div><div class="line">27</div><div class="line">28</div><div class="line">29</div><div class="line">30</div><div class="line">31</div><div class="line">32</div><div class="line">33</div><div class="line">34</div><div class="line">35</div><div class="line">36</div><div class="line">37</div><div class="line">38</div><div class="line">39</div><div class="line">40</div><div class="line">41</div><div class="line">42</div><div class="line">43</div><div class="line">44</div><div class="line">45</div><div class="line">46</div><div class="line">47</div><div class="line">48</div><div class="line">49</div><div class="line">50</div><div class="line">51</div><div class="line">52</div><div class="line">53</div><div class="line">54</div><div class="line">55</div><div class="line">56</div><div class="line">57</div><div class="line">58</div><div class="line">59</div><div class="line">60</div><div class="line">61</div><div class="line">62</div><div class="line">63</div><div class="line">64</div><div class="line">65</div><div class="line">66</div><div class="line">67</div><div class="line">68</div><div class="line">69</div><div class="line">70</div><div class="line">71</div><div class="line">72</div><div class="line">73</div><div class="line">74</div><div class="line">75</div><div class="line">76</div><div class="line">77</div><div class="line">78</div><div class="line">79</div><div class="line">80</div><div class="line">81</div><div class="line">82</div><div class="line">83</div><div class="line">84</div><div class="line">85</div><div class="line">86</div><div class="line">87</div></pre></td><td class="code"><pre><div 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>{ </div><div class="line"> <span class="comment">/**</span></div><div class="line"><span class="comment"> * 情景一:字符串池</span></div><div class="line"><span class="comment"> * JAVA虚拟机(JVM)中存在着一个字符串常量池,其中保存着很多String对象;</span></div><div class="line"><span class="comment"> * 并且可以被共享使用,因此它提高了效率。</span></div><div class="line"><span class="comment"> * 由于String类是final的,它的值一经创建就不可改变。</span></div><div class="line"><span class="comment"> * 字符串池由String类维护,我们可以调用intern()方法来访问字符串池。 </span></div><div class="line"><span class="comment"> */</span> </div><div class="line"> String s1 = <span class="string">"abc"</span>; </div><div class="line"> <span class="comment">//↑ 在字符串池创建了一个对象 </span></div><div class="line"> String s2 = <span class="string">"abc"</span>; </div><div class="line"> <span class="comment">//↑ 字符串常量池中已经存在对象“abc”(共享),所以创建0个对象,累计创建一个对象 </span></div><div class="line"> System.out.println(<span class="string">"s1== s2 : "</span>+(s1==s2)); </div><div class="line"> <span class="comment">//↑ true 指向同一个对象, </span></div><div class="line"> System.out.println(<span class="string">"s1.equals(s2): "</span> + (s1.equals(s2))); </div><div class="line"> <span class="comment">//↑ true 值相等 </span></div><div class="line"> </div><div class="line"> <span class="comment">/**</span></div><div class="line"><span class="comment"> * 情景二:关于new String("")</span></div><div class="line"><span class="comment"> * </span></div><div class="line"><span class="comment"> */</span> </div><div class="line"> String s3 = <span class="keyword">new</span> String(<span class="string">"abc"</span>); </div><div class="line"> <span class="comment">//↑ 创建了两个对象,一个存放在字符串池中,一个存在堆区中; </span></div><div class="line"> <span class="comment">//↑ 还有一个对象引用s3存放在栈中 </span></div><div class="line"> String s4 = <span class="keyword">new</span> String(<span class="string">"abc"</span>); </div><div class="line"> <span class="comment">//↑ 字符串池中已经存在“abc”对象,所以只在堆中创建了一个对象 </span></div><div class="line"> System.out.println(<span class="string">"s3== s4 : "</span>+(s3==s4)); </div><div class="line"> <span class="comment">//↑false s3和s4栈区引用的地址不同,堆区对象的地址不同; </span></div><div class="line"> System.out.println(<span class="string">"s3.equals(s4): "</span>+(s3.equals(s4))); </div><div class="line"> <span class="comment">//↑true s3和s4的值相同 </span></div><div class="line"> System.out.println(<span class="string">"s1== s3 : "</span>+(s1==s3)); </div><div class="line"> <span class="comment">//↑false 存放的地区不同,一个常量池中,一个堆区 </span></div><div class="line"> System.out.println(<span class="string">"s1.equals(s3): "</span>+(s1.equals(s3))); </div><div class="line"> <span class="comment">//↑true 值相同 </span></div><div class="line"> </div><div class="line"> <span class="comment">/**</span></div><div class="line"><span class="comment"> * 情景三: </span></div><div class="line"><span class="comment"> * 由于常量的值在编译的时候就被确定(优化)了。</span></div><div class="line"><span class="comment"> * 在这里,"ab"和"cd"都是常量,因此变量str1的值在编译时就可以确定。</span></div><div class="line"><span class="comment"> * 这行代码编译后的效果等同于: String str1 = "abcd";</span></div><div class="line"><span class="comment"> */</span> </div><div class="line"> String str1 = <span class="string">"ab"</span>+ <span class="string">"cd"</span>; <span class="comment">//1个对象 </span></div><div class="line"> String str2 = <span class="string">"abcd"</span>; </div><div class="line"> System.out.println(<span class="string">"str1= str2 : "</span>+ (str1 == str2)); </div><div class="line"> <span class="comment">//↑引用的常量池中同一个对象 </span></div><div class="line"> <span class="comment">/**</span></div><div class="line"><span class="comment"> * 情景四:</span></div><div class="line"><span class="comment"> * 涉及到str2是变量(不全是常量)的相加,所以会生成新的对象,其内部实</span></div><div class="line"><span class="comment">* 现是先new一个StringBuilder,然后 append(str2),append("c");然后让</span></div><div class="line"><span class="comment">* str3引用toString()返回的对象 </span></div><div class="line"><span class="comment"> */</span> </div><div class="line"> String str1 = <span class="string">"abc"</span>; </div><div class="line"> String str2 = <span class="string">"ab"</span>;</div><div class="line"> String str3 = str2+<span class="string">"c"</span>;</div><div class="line"> System.out.println(str1==str3); <span class="comment">// false</span></div><div class="line"> </div><div class="line"> String str1 = <span class="string">"abc"</span>; </div><div class="line"> <span class="keyword">final</span> String str2 = <span class="string">"ab"</span>;</div><div class="line"> String str3 = str2+<span class="string">"c"</span>;</div><div class="line"> System.out.println(str1==str3); <span class="comment">// true</span></div><div class="line"> </div><div class="line"> <span class="comment">/**</span></div><div class="line"><span class="comment"> * 情景五:</span></div><div class="line"><span class="comment">* intern()方法可以返回该字符串在常量池中的对象的引用</span></div><div class="line"><span class="comment">* 一个初始为空的字符串池,它由类 String私有地维护。 当调用 intern 方法</span></div><div class="line"><span class="comment">* 时,如果池已经包含一个等于此 String对象的字符串(用 equals(Object) 方</span></div><div class="line"><span class="comment">* 法确定),则返回池中的字符串。否则,将此 String对象添加到池中,并返回</span></div><div class="line"><span class="comment">* 此 String 对象的引用。 </span></div><div class="line"><span class="comment"> */</span></div><div class="line"> String str1 = <span class="string">"abc"</span>; </div><div class="line"> String str2 = newString(<span class="string">"abc"</span>).intern(); </div><div class="line"> System.out.println(str1==str2); <span class="comment">//true</span></div><div class="line"><span class="comment">/**情景六:</span></div><div class="line"><span class="comment"> * 当我们将str1的值改为"bcd"时,JVM发现在常量池中没有存放该值的地址,</span></div><div class="line"><span class="comment"> * 便开辟了这个地址,并创建了一个新的对象,其字符串的值指向这个地址。</span></div><div class="line"><span class="comment">* 事实上String类被设计成为不可改变(immutable)的类。如果你要改变其值,</span></div><div class="line"><span class="comment">*可以,但JVM在运行时根据新值悄悄创建了一个新对象,然后将这个对象的</span></div><div class="line"><span class="comment">* 地址返回给原来类的引用。这个创建过程虽说是完全自动进行的,但它毕竟</span></div><div class="line"><span class="comment">* 占用了更多的时间。在对时间要求比较敏感的环境中,会带有一定的不良影</span></div><div class="line"><span class="comment">* 响。</span></div><div class="line"><span class="comment">* */</span></div><div class="line"> String str1 = <span class="string">"abc"</span>;</div><div class="line"> String str2 = <span class="string">"abc"</span>;</div><div class="line"> str1 = <span class="string">"bcd"</span>;</div><div class="line"> System.out.println(str1 + <span class="string">","</span> + str2); <span class="comment">//bcd, abc </span></div><div class="line"> System.out.println(str1==str2); <span class="comment">//false</span></div><div class="line"> }</div></pre></td></tr></table></figure><h2 id="三-Java-JVM"><a href="#三-Java-JVM" class="headerlink" title="三 Java JVM"></a>三 Java JVM</h2><h3 id="一-Java内存模型"><a href="#一-Java内存模型" class="headerlink" title="一 Java内存模型"></a>一 Java内存模型</h3><p>按照官方的说法:Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。</p><p>JVM主要管理两种类型内存:堆和非堆,堆内存(Heap Memory)是在 Java 虚拟机启动时创建,非堆内存(Non-heap Memory)是在JVM堆之外的内存。</p><p>简单来说,非堆包含方法区、JVM内部处理或优化所需的内存(如 <a href="http://baike.baidu.com/view/112978.htm#10" target="_blank" rel="external">JIT</a>Compiler,Just-in-time Compiler,即时编译后的代码缓存)、每个类结构(如运行时常数池、字段和方法数据)以及方法和构造方法的代码。</p><p>Java的堆是一个运行时数据区,类的(对象从中分配空间。这些对象通过new、newarray、 anewarray和multianewarray等指令建立,它们不需要程序代码来显式的释放。<strong>堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,</strong>生存期也不必事先告诉编译器<strong>,因为它是在运行时动态分配内存的,Java的垃圾收集器会自动收走这些不再使用的数据。但缺点是,由于要在运行时动态分配内存,存取速度较慢。</strong><br> <strong>栈的优势是,存取速度比堆要快,仅次于寄存器,栈数据可以共享。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。</strong>栈中主要存放一些基本类型的变量数据(int, short, long, byte, float, double, boolean, char)和对象句柄(引用)。 </p><p>虚拟机必须为每个被装载的类型维护一个常量池。常量池就是该类型所用到常量的一个有序集合,包括直接常量(string,integer和 floating point常量)和对其他类型,字段和方法的符号引用。<br>对于String常量,它的值是在常量池中的。而JVM中的常量池在内存当中是以表的形式存在的, 对于String类型,有一张固定长度的CONSTANT_String_info表用来存储文字字符串值,注意:该表只存储文字字符串值,不存储符号引用。说到这里,对常量池中的字符串值的存储位置应该有一个比较明了的理解了。在程序执行的时候,常量池会储存在Method Area,而不是堆中。常量池中保存着很多String对象; 并且可以被共享使用,因此它提高了效率</p><p> 具体关于JVM和内存等知识请参考:</p><p><a href="http://blog.csdn.net/ithomer/article/details/9936743" target="_blank" rel="external">JVM 基础知识</a></p><p><a href="http://blog.csdn.net/ithomer/article/details/6252552" target="_blank" rel="external">Java 内存模型及GC原理</a></p><h3 id="二-案例解析"><a href="#二-案例解析" class="headerlink" title="二 案例解析"></a>二 案例解析</h3><figure class="highlight java"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div><div class="line">13</div><div class="line">14</div><div class="line">15</div><div class="line">16</div><div class="line">17</div><div class="line">18</div><div class="line">19</div><div class="line">20</div><div class="line">21</div><div class="line">22</div><div class="line">23</div><div class="line">24</div><div class="line">25</div><div class="line">26</div><div class="line">27</div><div class="line">28</div><div class="line">29</div><div class="line">30</div><div class="line">31</div><div class="line">32</div><div class="line">33</div><div class="line">34</div><div class="line">35</div><div class="line">36</div><div class="line">37</div><div class="line">38</div><div class="line">39</div><div class="line">40</div><div class="line">41</div><div class="line">42</div><div class="line">43</div><div class="line">44</div><div class="line">45</div><div class="line">46</div><div class="line">47</div><div class="line">48</div><div class="line">49</div><div class="line">50</div><div class="line">51</div><div class="line">52</div><div class="line">53</div><div class="line">54</div><div class="line">55</div><div class="line">56</div><div class="line">57</div><div class="line">58</div><div class="line">59</div><div class="line">60</div><div class="line">61</div><div class="line">62</div><div class="line">63</div><div class="line">64</div><div class="line">65</div><div class="line">66</div><div class="line">67</div><div class="line">68</div><div class="line">69</div><div class="line">70</div><div class="line">71</div><div class="line">72</div><div class="line">73</div><div class="line">74</div><div class="line">75</div><div class="line">76</div><div class="line">77</div><div class="line">78</div><div class="line">79</div><div class="line">80</div><div class="line">81</div><div class="line">82</div><div class="line">83</div><div class="line">84</div><div class="line">85</div></pre></td><td class="code"><pre><div 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>{ </div><div class="line"> <span class="comment">/** </span></div><div class="line"><span class="comment"> * 情景一:字符串池 </span></div><div class="line"><span class="comment"> * JAVA虚拟机(JVM)中存在着一个字符串池,其中保存着很多String对象; </span></div><div class="line"><span class="comment"> * 并且可以被共享使用,因此它提高了效率。 </span></div><div class="line"><span class="comment"> * 由于String类是final的,它的值一经创建就不可改变。 </span></div><div class="line"><span class="comment"> * 字符串池由String类维护,我们可以调用intern()方法来访问字符串池。 </span></div><div class="line"><span class="comment"> */</span> </div><div class="line"> String s1 = <span class="string">"abc"</span>; </div><div class="line"> <span class="comment">//↑ 在字符串池创建了一个对象 </span></div><div class="line"> String s2 = <span class="string">"abc"</span>; </div><div class="line"> <span class="comment">//↑ 字符串pool已经存在对象“abc”(共享),所以创建0个对象,累计创建一个对象 </span></div><div class="line"> System.out.println(<span class="string">"s1 == s2 : "</span>+(s1==s2)); </div><div class="line"> <span class="comment">//↑ true 指向同一个对象, </span></div><div class="line"> System.out.println(<span class="string">"s1.equals(s2) : "</span> + (s1.equals(s2))); </div><div class="line"> <span class="comment">//↑ true 值相等 </span></div><div class="line"> <span class="comment">//↑------------------------------------------------------over </span></div><div class="line"> <span class="comment">/** </span></div><div class="line"><span class="comment"> * 情景二:关于new String("") </span></div><div class="line"><span class="comment"> * </span></div><div class="line"><span class="comment"> */</span> </div><div class="line"> String s3 = <span class="keyword">new</span> String(<span class="string">"abc"</span>); </div><div class="line"> <span class="comment">//↑ 创建了两个对象,一个存放在字符串池中,一个存在与堆区中; </span></div><div class="line"> <span class="comment">//↑ 还有一个对象引用s3存放在栈中 </span></div><div class="line"> String s4 = <span class="keyword">new</span> String(<span class="string">"abc"</span>); </div><div class="line"> <span class="comment">//↑ 字符串池中已经存在“abc”对象,所以只在堆中创建了一个对象 </span></div><div class="line"> System.out.println(<span class="string">"s3 == s4 : "</span>+(s3==s4)); </div><div class="line"> <span class="comment">//↑false s3和s4栈区的地址不同,指向堆区的不同地址; </span></div><div class="line"> System.out.println(<span class="string">"s3.equals(s4) : "</span>+(s3.equals(s4))); </div><div class="line"> <span class="comment">//↑true s3和s4的值相同 </span></div><div class="line"> System.out.println(<span class="string">"s1 == s3 : "</span>+(s1==s3)); </div><div class="line"> <span class="comment">//↑false 存放的地区多不同,一个栈区,一个堆区 </span></div><div class="line"> System.out.println(<span class="string">"s1.equals(s3) : "</span>+(s1.equals(s3))); </div><div class="line"> <span class="comment">//↑true 值相同 </span></div><div class="line"> <span class="comment">//↑------------------------------------------------------over </span></div><div class="line"> <span class="comment">/** </span></div><div class="line"><span class="comment"> * 情景三: </span></div><div class="line"><span class="comment"> * 由于常量的值在编译的时候就被确定(优化)了。 </span></div><div class="line"><span class="comment"> * 在这里,"ab"和"cd"都是常量,因此变量str3的值在编译时就可以确定。 </span></div><div class="line"><span class="comment"> * 这行代码编译后的效果等同于: String str3 = "abcd"; </span></div><div class="line"><span class="comment"> */</span> </div><div class="line"> String str1 = <span class="string">"ab"</span> + <span class="string">"cd"</span>; <span class="comment">//1个对象 </span></div><div class="line"> String str11 = <span class="string">"abcd"</span>; </div><div class="line"> System.out.println(<span class="string">"str1 = str11 : "</span>+ (str1 == str11)); </div><div class="line"> <span class="comment">//↑------------------------------------------------------over </span></div><div class="line"> <span class="comment">/** </span></div><div class="line"><span class="comment"> * 情景四: </span></div><div class="line"><span class="comment"> * 局部变量str2,str3存储的是存储两个拘留字符串对象(intern字符串对象)的地址。 </span></div><div class="line"><span class="comment"> * </span></div><div class="line"><span class="comment"> * 第三行代码原理(str2+str3): </span></div><div class="line"><span class="comment"> * 运行期JVM首先会在堆中创建一个StringBuilder类, </span></div><div class="line"><span class="comment"> * 同时用str2指向的拘留字符串对象完成初始化, </span></div><div class="line"><span class="comment"> * 然后调用append方法完成对str3所指向的拘留字符串的合并, </span></div><div class="line"><span class="comment"> * 接着调用StringBuilder的toString()方法在堆中创建一个String对象, </span></div><div class="line"><span class="comment"> * 最后将刚生成的String对象的堆地址存放在局部变量str3中。 </span></div><div class="line"><span class="comment"> * </span></div><div class="line"><span class="comment"> * 而str5存储的是字符串池中"abcd"所对应的拘留字符串对象的地址。 </span></div><div class="line"><span class="comment"> * str4与str5地址当然不一样了。 </span></div><div class="line"><span class="comment"> * </span></div><div class="line"><span class="comment"> * 内存中实际上有五个字符串对象: </span></div><div class="line"><span class="comment"> * 三个拘留字符串对象、一个String对象和一个StringBuilder对象。 </span></div><div class="line"><span class="comment"> */</span> </div><div class="line"> String str2 = <span class="string">"ab"</span>; <span class="comment">//1个对象 </span></div><div class="line"> String str3 = <span class="string">"cd"</span>; <span class="comment">//1个对象 </span></div><div class="line"> String str4 = str2+str3; </div><div class="line"> String str5 = <span class="string">"abcd"</span>; </div><div class="line"> System.out.println(<span class="string">"str4 = str5 : "</span> + (str4==str5)); <span class="comment">// false </span></div><div class="line"> <span class="comment">//↑------------------------------------------------------over </span></div><div class="line"> <span class="comment">/** </span></div><div class="line"><span class="comment"> * 情景五: </span></div><div class="line"><span class="comment"> * JAVA编译器对string + 基本类型/常量 是当成常量表达式直接求值来优化的。 </span></div><div class="line"><span class="comment"> * 运行期的两个string相加,会产生新的对象的,存储在堆(heap)中 </span></div><div class="line"><span class="comment"> */</span> </div><div class="line"> String str6 = <span class="string">"b"</span>; </div><div class="line"> String str7 = <span class="string">"a"</span> + str6; </div><div class="line"> String str67 = <span class="string">"ab"</span>; </div><div class="line"> System.out.println(<span class="string">"str7 = str67 : "</span>+ (str7 == str67)); </div><div class="line"> <span class="comment">//↑str6为变量,在运行期才会被解析。 </span></div><div class="line"> <span class="keyword">final</span> String str8 = <span class="string">"b"</span>; </div><div class="line"> String str9 = <span class="string">"a"</span> + str8; </div><div class="line"> String str89 = <span class="string">"ab"</span>; </div><div class="line"> System.out.println(<span class="string">"str9 = str89 : "</span>+ (str9 == str89)); </div><div class="line"> <span class="comment">//↑str8为常量变量,编译期会被优化 </span></div><div class="line"> <span class="comment">//↑------------------------------------------------------over </span></div><div class="line"> }</div></pre></td></tr></table></figure><h2 id="四-总结"><a href="#四-总结" class="headerlink" title="四 总结"></a>四 总结</h2><h3 id="一-String类初始化后是不可变的-immutable"><a href="#一-String类初始化后是不可变的-immutable" class="headerlink" title="一 String类初始化后是不可变的(immutable)"></a>一 String类初始化后是不可变的(immutable)</h3><p>这一说又要说很多,大家只要知道String的实例一旦生成就不会再改变了,比如说:String str=”kv”+”ill”+” “+”ans”; 就是有4个字符串常量,首先”kv”和”ill”生成了”kvill”存在内存中,然后”kvill”又和” ” 生成 “kvill “存在内存中,最后又和生成了”kvill ans”;并把这个字符串的地址赋给了str,就是因为String的”不可变”产生了很多临时变量,这也就是为什么建议用StringBuffer的原 因了,因为StringBuffer是可改变的。 </p><p> 下面是<strong>一些String相关的常见问题</strong>:<br> String中的final用法和理解<br> final StringBuffer a = new StringBuffer(“111”);<br> final StringBuffer b = new StringBuffer(“222”);<br> a=b;//此句编译不通过 final StringBuffer a = new StringBuffer(“111”);<br> a.append(“222”);// 编译通过<br> 可见,<strong>final只对引用的”值”(即内存地址)有效,它迫使引用只能指向初始指向的那个对象,改变它的指向会导致编译期错误。</strong>至于它所指向的对象的变化,final是不负责的。 </p><p>2.代码中的字符串常量在编译的过程中收集并放在class文件的常量区中,如”123”、”123”+”456”等,含有变量的表达式不会收录,如”123”+a。</p><p>3.JVM在加载类的时候,根据常量区中的字符串生成常量池,每个字符序列如”123”会生成一个实例放在常量池里,这个实例是不在堆里的,也不会被GC,这个实例的value属性从源码的构造函数看应该是用new创建数组置入123的,所以按我的理解此时value存放的字符数组地址是在堆里,如果有误的话欢迎大家指正。</p><h3 id="二-使用String不一定创建对象"><a href="#二-使用String不一定创建对象" class="headerlink" title="二 使用String不一定创建对象"></a>二 使用String不一定创建对象</h3><p>在执行到双引号包含字符串的语句时,如String a = “123”,JVM会先到常量池里查找,如果有的话返回常量池里的这个实例的引用,否则的话创建一个新实例并置入常量池里。如果是 String a = “123” + b (假设b是”456”),前半部分”123”还是走常量池的路线,但是这个+操作符其实是转换成[SringBuffer].Appad()来实现的,所以最终a得到是一个新的实例引用,而且a的value存放的是一个新申请的字符数组内存空间的地址(存放着”123456”),而此时”123456”在常量池中是未必存在的。</p><p>要注意: 我们在使用诸如String str = “abc”;的格式定义类时,总是想当然地认为,创建了String类的对象str。<strong>担心陷阱!对象可能并没有被创建!而可能只是指向一个先前已经创建的对象。</strong>只有通过new()方法才能保证每次都创建一个新的对象</p><h3 id="三-使用new-String,一定创建对象"><a href="#三-使用new-String,一定创建对象" class="headerlink" title="三 使用new String,一定创建对象"></a>三 使用new String,一定创建对象</h3><p>在执行String a = new String(“123”)的时候,首先走常量池的路线取到一个实例的引用,然后在堆上创建一个新的String实例,走以下构造函数给value属性赋值,然后把实例引用赋值给a:<br><figure class="highlight java"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div><div class="line">13</div><div class="line">14</div><div class="line">15</div><div class="line">16</div><div class="line">17</div><div class="line">18</div><div class="line">19</div></pre></td><td class="code"><pre><div class="line"><span class="function"><span class="keyword">public</span> <span class="title">String</span><span class="params">(String original)</span> </span>{</div><div class="line"> <span class="keyword">int</span> size = original.count;</div><div class="line"> <span class="keyword">char</span>[] originalValue = original.value;</div><div class="line"> <span class="keyword">char</span>[] v;</div><div class="line"> <span class="keyword">if</span> (originalValue.length > size) {</div><div class="line"> <span class="comment">// The array representing the String is bigger than the new</span></div><div class="line"> <span class="comment">// String itself. Perhaps this constructor is being called</span></div><div class="line"> <span class="comment">// in order to trim the baggage, so make a copy of the array.</span></div><div class="line"> <span class="keyword">int</span> off = original.offset;</div><div class="line"> v = Arrays.copyOfRange(originalValue, off, off+size);</div><div class="line"> } <span class="keyword">else</span> {</div><div class="line"> <span class="comment">// The array representing the String is the same</span></div><div class="line"> <span class="comment">// size as the String, so no point in making a copy.</span></div><div class="line"> v = originalValue;</div><div class="line"> }</div><div class="line"> <span class="keyword">this</span>.offset = <span class="number">0</span>;</div><div class="line"> <span class="keyword">this</span>.count = size;</div><div class="line"> <span class="keyword">this</span>.value = v;</div><div class="line"> }</div></pre></td></tr></table></figure></p><p>从中我们可以看到,虽然是新创建了一个String的实例,但是value是等于常量池中的实例的value,即是说没有new一个新的字符数组来存放”123”。</p><p>如果是String a = new String(“123”+b)的情况,首先看回第4点,”123”+b得到一个实例后,再按上面的构造函数执行。</p><h3 id="四-String-intern"><a href="#四-String-intern" class="headerlink" title="四 String.intern()"></a>四 String.intern()</h3><p>String对象的实例调用intern方法后,可以让JVM检查常量池,如果没有实例的value属性对应的字符串序列比如”123”(注意是检查字符串序列而不是检查实例本身),就将本实例放入常量池,如果有当前实例的value属性对应的字符串序列”123”在常量池中存在,则返回常量池中”123”对应的实例的引用而不是当前实例的引用,即使当前实例的value也是”123”。</p><figure class="highlight java"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line"><span class="function"><span class="keyword">public</span> <span class="keyword">native</span> String <span class="title">intern</span><span class="params">()</span></span>;</div></pre></td></tr></table></figure><p>存在于.class文件中的常量池,在运行期被JVM装载,并且可以扩充。String的 intern()方法就是扩充常量池的 一个方法;当一个String实例str调用intern()方法时,Java 查找常量池中 是否有相同Unicode的字符串常量,如果有,则返回其的引用,如果没有,则在常 量池中增加一个Unicode等于str的字符串并返回它的引用;看示例就清楚了</p><figure class="highlight java"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div></pre></td><td class="code"><pre><div 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>{</div><div class="line"> String s0 = <span class="string">"kvill"</span>; </div><div class="line"> String s1 = <span class="keyword">new</span> String(<span class="string">"kvill"</span>); </div><div class="line"> String s2 = <span class="keyword">new</span> String(<span class="string">"kvill"</span>); </div><div class="line"> System.out.println( s0 == s1 ); <span class="comment">//false</span></div><div class="line"> System.out.println( <span class="string">"**********"</span> ); </div><div class="line"> s1.intern(); <span class="comment">//虽然执行了s1.intern(),但它的返回值没有赋给s1</span></div><div class="line"> s2 = s2.intern(); <span class="comment">//把常量池中"kvill"的引用赋给s2 </span></div><div class="line"> System.out.println( s0 == s1); <span class="comment">//flase</span></div><div class="line"> System.out.println( s0 == s1.intern() ); <span class="comment">//true//说明s1.intern()返回的是常量池中"kvill"的引用</span></div><div class="line"> System.out.println( s0 == s2 ); <span class="comment">//true</span></div><div class="line"> }</div></pre></td></tr></table></figure><p>最后我再破除一个错误的理解:有人说,“使用 String.intern() 方法则可以将一个 String 类的保存到一个全局 String 表中 ,如果具有相同值的 Unicode 字符串已经在这个表中,那么该方法返回表中已有字符串的地址,如果在表中没有相同值的字符串,则将自己的地址注册到表中”如果我把他说的这个全局的 String 表理解为常量池的话,他的最后一句话,”如果在表中没有相同值的字符串,则将自己的地址注册到表中”是错的: </p><figure class="highlight java"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div></pre></td><td class="code"><pre><div 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>{ </div><div class="line"> String s1 = <span class="keyword">new</span> String(<span class="string">"kvill"</span>); </div><div class="line"> String s2 = s1.intern(); </div><div class="line"> System.out.println( s1 == s1.intern() ); <span class="comment">//false</span></div><div class="line"> System.out.println( s1 + <span class="string">" "</span> + s2 ); <span class="comment">//kvill kvill</span></div><div class="line"> System.out.println( s2 == s1.intern() ); <span class="comment">//true</span></div><div class="line"> }</div></pre></td></tr></table></figure><p>在这个类中我们没有声名一个”kvill”常量,所以常量池中一开始是没有”kvill”的,当我们调用s1.intern()后就在常量池中新添加了一 个”kvill”常量,原来的不在常量池中的”kvill”仍然存在,也就不是“将自己的地址注册到常量池中”了。<br> s1==s1.intern() 为false说明原来的”kvill”仍然存在;s2现在为常量池中”kvill”的地址,所以有s2==s1.intern()为true。</p><h3 id="五-StringBuffer与StringBuilder的区别,它们的应用场景是什么?"><a href="#五-StringBuffer与StringBuilder的区别,它们的应用场景是什么?" class="headerlink" title="五 StringBuffer与StringBuilder的区别,它们的应用场景是什么?"></a>五 StringBuffer与StringBuilder的区别,它们的应用场景是什么?</h3><p>jdk的实现中StringBuffer与StringBuilder都继承自AbstractStringBuilder,对于多线程的安全与非安全看到StringBuffer中方法前面的一堆synchronized就大概了解了。</p><p>这里随便讲讲AbstractStringBuilder的实现原理:我们知道使用StringBuffer等无非就是为了提高java中字符串连接的效率,因为直接使用+进行字符串连接的话,jvm会创建多个String对象,因此造成一定的开销。AbstractStringBuilder中采用一个char数组来保存需要append的字符串,char数组有一个初始大小,当append的字符串长度超过当前char数组容量时,则对char数组进行动态扩展,也即重新申请一段更大的内存空间,然后将当前char数组拷贝到新的位置,因为重新分配内存并拷贝的开销比较大,所以每次重新申请内存空间都是采用申请大于当前需要的内存空间的方式,这里是2倍</p><p>【</p><p> StringBuffer 始于 JDK 1.0<br> StringBuilder 始于 JDK 1.5<br> 从 JDK 1.5 开始,带有字符串变量的连接操作(+),JVM 内部采用的是<br> StringBuilder 来实现的,而之前这个操作是采用 StringBuffer 实现的。</p><p>】</p><p>我们通过一个简单的程序来看其执行的流程:</p><figure class="highlight java"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div><div class="line">13</div></pre></td><td class="code"><pre><div class="line"><span class="keyword">public</span> <span class="class"><span class="keyword">class</span> <span class="title">Buffer</span> </span>{ </div><div 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>{ </div><div class="line"> String s1 = <span class="string">"aaaaa"</span>; </div><div class="line"> String s2 = <span class="string">"bbbbb"</span>; </div><div class="line"> String r = <span class="keyword">null</span>; </div><div class="line"> <span class="keyword">int</span> i = <span class="number">3694</span>; </div><div class="line"> r = s1 + i + s2; </div><div class="line"> </div><div class="line"> <span class="keyword">for</span>(<span class="keyword">int</span> j=<span class="number">0</span>;i<<span class="number">10</span>;j++){ </div><div class="line"> r+=<span class="string">"23124"</span>; </div><div class="line"> } </div><div class="line"> } </div><div class="line">}</div></pre></td></tr></table></figure><p>使用命令javap -c Buffer查看其字节码实现:<img src="/2017/11/06/11-6/1.png" alt="1">将清单1和清单2对应起来看,清单2的字节码中ldc指令即从常量池中加载“aaaaa”字符串到栈顶,istore_1将“aaaaa”存到变量1中,后面的一样,sipush是将一个短整型常量值(-32768~32767)推送至栈顶,这里是常量“3694”,更多的Java指令集请查看另一篇文章“<a href="http://blog.csdn.net/shi1122/article/details/8053605" target="_blank" rel="external">Java指令集</a>”。</p><p>让我们直接看到13,13~17是new了一个StringBuffer对象并调用其初始化方法,20~21则是先通过aload_1将变量1压到栈顶,前面说过变量1放的就是字符串常量“aaaaa”,接着通过指令invokevirtual调用StringBuffer的append方法将“aaaaa”拼接起来,后续的24~30同理。最后在33调用StringBuffer的toString函数获得String结果并通过astore存到变量3中。</p><p>看到这里可能有人会说,“既然JVM内部采用了StringBuffer来连接字符串了,那么我们自己就不用用StringBuffer,直接用”+“就行了吧!“。是么?当然不是了。俗话说”存在既有它的理由”,让我们继续看后面的循环对应的字节码。</p><p>37~42都是进入for循环前的一些准备工作,37,38是将j置为1。44这里通过if_icmpge将j与10进行比较,如果j大于10则直接跳转到73,也即return语句退出函数;否则进入循环,也即47~66的字节码。这里我们只需看47到51就知道为什么我们要在代码中自己使用StringBuffer来处理字符串的连接了,因为每次执行“+”操作时jvm都要new一个StringBuffer对象来处理字符串的连接,这在涉及很多的字符串连接操作时开销会很大。</p><p>参考:<a href="http://blog.csdn.net/shi1122/article/details/8053680" target="_blank" rel="external">java那点事——StringBuffer与StringBuilder原理与区别</a></p>]]></content>
<summary type="html">
<h2 id="一-Java中的数据类型"><a href="#一-Java中的数据类型" class="headerlink" title="一 Java中的数据类型"></a>一 Java中的数据类型</h2><h3 id="一-基本类型"><a href="#一-基本类型"
</summary>
<category term="学习笔记" scheme="http://xnmll.cn/categories/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/"/>
<category term="Java" scheme="http://xnmll.cn/tags/Java/"/>
</entry>
<entry>
<title>日程表</title>
<link href="http://xnmll.cn/2017/11/05/11-5/"/>
<id>http://xnmll.cn/2017/11/05/11-5/</id>
<published>2017-11-05T06:42:00.000Z</published>
<updated>2017-12-18T14:00:06.467Z</updated>
<content type="html"><![CDATA[<h2 id="习惯"><a href="#习惯" class="headerlink" title="习惯"></a>习惯</h2><p>行为心理学研究表明:21天以上的重复会形成习惯;90天的重复会形成稳定的习惯。即同一个动作,重复21天就会变成习惯性的动作;同样道理,任何一个想法,重复21天,或者重复验证21次,就会变成习惯性想法。所以,一个观念如果被别人或者自己验证了21次以上,它一定已经变成了你的信念。 </p><p>习惯的形成大致分三个阶段。 </p><p>第一阶段:1~7天左右。此阶段的特征是“刻意,不自然”。你需要十分刻意提醒自己改变,而你也会觉得有些不自然,不舒服。 </p><p>第二阶段:7~21天左右。不要放弃第一阶段的努力,继续重复,跨入第二阶段。此阶段的特征是:“刻意,自然”。你已经觉得比较自然,比较舒服了,但是一不留意,你还会回复到从前。因此,你还需要刻意提醒自己改变。 </p><p>第三阶段:21~90天左右。此阶段的特征是“不经意,自然”,其实这就是习惯。这一阶段被称为“习惯性的稳定期”。一旦跨入此阶段,一个人已经完成了自我改造,这项习惯就已经成为他生命中的一个有机组成部分,它会自然而然地不停地为人们“效劳”。<br>做一个有计划的成功者,去有计划地为自己塑造好习惯。当然,因为与之相对应的坏习惯已经十分顽固,因此要形成某些好习惯时,你可能需要花更多的力气同时去克服坏习惯。 </p><h2 id="大三上学期第十一周:"><a href="#大三上学期第十一周:" class="headerlink" title="大三上学期第十一周:"></a>大三上学期第十一周:</h2><table><thead><tr><th style="text-align:center">日期\事件</th><th style="text-align:center">早起(6:20)</th><th style="text-align:center">背,复习各一个list</th><th style="text-align:center">认真听课</th><th style="text-align:center">不看直播打游戏等</th></tr></thead><tbody><tr><td style="text-align:center">17-11-06</td><td style="text-align:center">1</td><td style="text-align:center">0</td><td style="text-align:center">0</td><td style="text-align:center">0</td></tr><tr><td style="text-align:center">17-11-07</td><td style="text-align:center">1</td><td style="text-align:center">1</td><td style="text-align:center">0</td><td style="text-align:center">0</td></tr><tr><td style="text-align:center">17-11-08</td><td style="text-align:center">0</td><td style="text-align:center">1</td><td style="text-align:center">0</td><td style="text-align:center">0</td></tr><tr><td style="text-align:center">17-11-09</td><td style="text-align:center">0</td><td style="text-align:center">1</td><td style="text-align:center">0</td><td style="text-align:center">1</td></tr><tr><td style="text-align:center">17-11-10</td><td style="text-align:center">0</td><td style="text-align:center">0</td><td style="text-align:center">0</td><td style="text-align:center">0</td></tr><tr><td style="text-align:center">17-11-11</td><td style="text-align:center">0</td><td style="text-align:center">1</td><td style="text-align:center">1</td><td style="text-align:center">0</td></tr><tr><td style="text-align:center">17-11-12</td><td style="text-align:center">0</td><td style="text-align:center">1</td><td style="text-align:center">1</td><td style="text-align:center">0</td></tr></tbody></table><h2 id="大三上学期第十二周:"><a href="#大三上学期第十二周:" class="headerlink" title="大三上学期第十二周:"></a>大三上学期第十二周:</h2><table><thead><tr><th style="text-align:center">日期\事件</th><th style="text-align:center">早起(6:20)</th><th style="text-align:center">背,复习各一个list</th><th style="text-align:center">认真听课</th><th style="text-align:center">不看直播打游戏等</th></tr></thead><tbody><tr><td style="text-align:center">17-11-13</td><td style="text-align:center">1</td><td style="text-align:center">1</td><td style="text-align:center">0</td><td style="text-align:center">0</td></tr><tr><td style="text-align:center">17-11-14</td><td style="text-align:center">0</td><td style="text-align:center">1</td><td style="text-align:center">0</td><td style="text-align:center">0</td></tr><tr><td style="text-align:center">17-11-15</td><td style="text-align:center">1</td><td style="text-align:center">1</td><td style="text-align:center">0</td><td style="text-align:center">0</td></tr><tr><td style="text-align:center">17-11-16</td><td style="text-align:center">0</td><td style="text-align:center">1</td><td style="text-align:center">0</td><td style="text-align:center">0</td></tr><tr><td style="text-align:center">17-11-17</td><td style="text-align:center">0</td><td style="text-align:center">0</td><td style="text-align:center">0</td><td style="text-align:center">0</td></tr><tr><td style="text-align:center">17-11-18</td><td style="text-align:center">1</td><td style="text-align:center">1</td><td style="text-align:center">1</td><td style="text-align:center">1</td></tr><tr><td style="text-align:center">17-11-19</td><td style="text-align:center">0</td><td style="text-align:center">1</td><td style="text-align:center">1</td><td style="text-align:center">1</td></tr></tbody></table><h2 id="大三上学期第十三周:"><a href="#大三上学期第十三周:" class="headerlink" title="大三上学期第十三周:"></a>大三上学期第十三周:</h2><h3 id="PS-20号到30号-复习一次单词-10套英语试卷"><a href="#PS-20号到30号-复习一次单词-10套英语试卷" class="headerlink" title="PS:20号到30号 复习一次单词+10套英语试卷"></a>PS:20号到30号 复习一次单词+10套英语试卷</h3><table><thead><tr><th style="text-align:center">日期\事件</th><th style="text-align:center">早起(6:20)</th><th style="text-align:center">复习三个list</th><th style="text-align:center">做一套真题</th><th style="text-align:center">半小时听力练习</th></tr></thead><tbody><tr><td style="text-align:center">17-11-20</td><td style="text-align:center">1</td><td style="text-align:center">1</td><td style="text-align:center">1</td><td style="text-align:center">1</td></tr><tr><td style="text-align:center">17-11-21</td><td style="text-align:center">0</td><td style="text-align:center">1</td><td style="text-align:center">0</td><td style="text-align:center">1</td></tr><tr><td style="text-align:center">17-11-22</td><td style="text-align:center">0</td><td style="text-align:center">1</td><td style="text-align:center">0</td><td style="text-align:center">1</td></tr><tr><td style="text-align:center">17-11-23</td><td style="text-align:center">0</td><td style="text-align:center">1</td><td style="text-align:center">0</td><td style="text-align:center">1</td></tr><tr><td style="text-align:center">17-11-24</td><td style="text-align:center">0</td><td style="text-align:center">0</td><td style="text-align:center">0</td><td style="text-align:center">0</td></tr><tr><td style="text-align:center">17-11-25</td><td style="text-align:center">0</td><td style="text-align:center">0</td><td style="text-align:center">0</td><td style="text-align:center">0</td></tr><tr><td style="text-align:center">17-11-26</td><td style="text-align:center">0</td><td style="text-align:center">0</td><td style="text-align:center">0</td><td style="text-align:center">0</td></tr></tbody></table><p>PS:英语好多…<br>PS:!!!!!!<br>大三史上最颓废的周六周日!!!!!</p><h2 id="大三上学期第十四周:"><a href="#大三上学期第十四周:" class="headerlink" title="大三上学期第十四周:"></a>大三上学期第十四周:</h2><table><thead><tr><th style="text-align:center">日期\事件</th><th style="text-align:center">早起(6:20)</th><th style="text-align:center">背,复习各一个list</th><th style="text-align:center">认真听课</th><th style="text-align:center">不看直播打游戏等</th></tr></thead><tbody><tr><td style="text-align:center">17-11-27</td><td style="text-align:center">1</td><td style="text-align:center">1</td><td style="text-align:center">1</td><td style="text-align:center">1</td></tr><tr><td style="text-align:center">17-11-28</td><td style="text-align:center">0</td><td style="text-align:center">1</td><td style="text-align:center">1</td><td style="text-align:center">1</td></tr><tr><td style="text-align:center">17-11-29</td><td style="text-align:center">1</td><td style="text-align:center">1</td><td style="text-align:center">1</td><td style="text-align:center">1</td></tr><tr><td style="text-align:center">17-11-30</td><td style="text-align:center">0</td><td style="text-align:center">1</td><td style="text-align:center">0</td><td style="text-align:center">1</td></tr><tr><td style="text-align:center">17-12-1</td><td style="text-align:center">0</td><td style="text-align:center">1</td><td style="text-align:center">0</td><td style="text-align:center">1</td></tr><tr><td style="text-align:center">17-12-2</td><td style="text-align:center">1</td><td style="text-align:center">1</td><td style="text-align:center">0</td><td style="text-align:center">0</td></tr><tr><td style="text-align:center">17-12-3</td><td style="text-align:center">0</td><td style="text-align:center">1</td><td style="text-align:center">0</td><td style="text-align:center">0</td></tr></tbody></table><h2 id="大三上学期第十五周:"><a href="#大三上学期第十五周:" class="headerlink" title="大三上学期第十五周:"></a>大三上学期第十五周:</h2><table><thead><tr><th style="text-align:center">日期\事件</th><th style="text-align:center">早起(6:20)</th><th style="text-align:center">背,复习各一个list</th><th style="text-align:center">认真听课</th><th style="text-align:center">不看直播打游戏等</th></tr></thead><tbody><tr><td style="text-align:center">17-12-4</td><td style="text-align:center">0</td><td style="text-align:center">1</td><td style="text-align:center">1</td><td style="text-align:center">1</td></tr><tr><td style="text-align:center">17-12-5</td><td style="text-align:center">0</td><td style="text-align:center">1</td><td style="text-align:center">1</td><td style="text-align:center">1</td></tr><tr><td style="text-align:center">17-12-6</td><td style="text-align:center">0</td><td style="text-align:center">1</td><td style="text-align:center">0</td><td style="text-align:center">1</td></tr><tr><td style="text-align:center">17-12-7</td><td style="text-align:center">0</td><td style="text-align:center">1</td><td style="text-align:center">0</td><td style="text-align:center">0</td></tr><tr><td style="text-align:center">17-12-8</td><td style="text-align:center">0</td><td style="text-align:center">0</td><td style="text-align:center">0</td><td style="text-align:center">0</td></tr><tr><td style="text-align:center">17-12-9</td><td style="text-align:center">0</td><td style="text-align:center">0</td><td style="text-align:center">0</td><td style="text-align:center">0</td></tr><tr><td style="text-align:center">17-12-10</td><td style="text-align:center">0</td><td style="text-align:center">1</td><td style="text-align:center">1</td><td style="text-align:center">1</td></tr></tbody></table><h2 id="大三上学期第十六周:"><a href="#大三上学期第十六周:" class="headerlink" title="大三上学期第十六周:"></a>大三上学期第十六周:</h2><table><thead><tr><th style="text-align:center">日期\事件</th><th style="text-align:center">早起(6:20)</th><th style="text-align:center">背,复习各一个list</th><th style="text-align:center">认真听课</th><th style="text-align:center">不看直播打游戏等</th></tr></thead><tbody><tr><td style="text-align:center">17-12-11</td><td style="text-align:center">0</td><td style="text-align:center">0</td><td style="text-align:center">0</td><td style="text-align:center">0</td></tr><tr><td style="text-align:center">17-12-12</td><td style="text-align:center">0</td><td style="text-align:center">0</td><td style="text-align:center">0</td><td style="text-align:center">0</td></tr><tr><td style="text-align:center">17-12-13</td><td style="text-align:center">0</td><td style="text-align:center">0</td><td style="text-align:center">0</td><td style="text-align:center">1</td></tr><tr><td style="text-align:center">17-12-14</td><td style="text-align:center">0</td><td style="text-align:center">1</td><td style="text-align:center">0</td><td style="text-align:center">0</td></tr><tr><td style="text-align:center">17-12-15</td><td style="text-align:center">0</td><td style="text-align:center">0</td><td style="text-align:center">0</td><td style="text-align:center">0</td></tr><tr><td style="text-align:center">17-12-16</td><td style="text-align:center">0</td><td style="text-align:center">0</td><td style="text-align:center">0</td><td style="text-align:center">0</td></tr><tr><td style="text-align:center">17-12-17</td><td style="text-align:center">0</td><td style="text-align:center">1</td><td style="text-align:center">1</td><td style="text-align:center">1</td></tr></tbody></table><p>19周更新——–<br>任务完成较差</p>]]></content>
<summary type="html">
<h2 id="习惯"><a href="#习惯" class="headerlink" title="习惯"></a>习惯</h2><p>行为心理学研究表明:21天以上的重复会形成习惯;90天的重复会形成稳定的习惯。即同一个动作,重复21天就会变成习惯性的动作;同样道理,任何一
</summary>
<category term="计划" scheme="http://xnmll.cn/categories/%E8%AE%A1%E5%88%92/"/>
<category term="成长历程" scheme="http://xnmll.cn/tags/%E6%88%90%E9%95%BF%E5%8E%86%E7%A8%8B/"/>
<category term="随机" scheme="http://xnmll.cn/tags/%E9%9A%8F%E6%9C%BA/"/>
</entry>
<entry>
<title>考研 大学</title>
<link href="http://xnmll.cn/2017/11/04/11-4/"/>
<id>http://xnmll.cn/2017/11/04/11-4/</id>
<published>2017-11-04T10:29:28.000Z</published>
<updated>2017-11-06T13:29:23.931Z</updated>
<content type="html"><![CDATA[<h1 id="前言"><a href="#前言" class="headerlink" title="前言:"></a>前言:</h1><p>写作时间:2017-11-04 大三上学期星期六的下午。</p><p>我想,我目前是很平静的做了人生中的一个重要决定,就是,下定决心准备考研。前几天在一部美剧中有看到这样的台词 <strong><em>生活就是二进制,一个个0101组成的。每一次抉择,选了就是1,不选就是0。</em></strong> 说实话,我在以前的人生道路上选择了不少的0,儿时并没有学到很多才艺,至少会一门乐器;高中的重要关头沉迷网游,高考失意… 现在站在分叉路口的我并不再这么迷茫,我仿佛可以看见自己在以后的一年里,10年里做着自己坚定的事,在未来的某一天成为行业大牛。<img src="/2017/11/04/11-4/1.png" alt="思维导图"></p><h1 id="WHAT"><a href="#WHAT" class="headerlink" title="WHAT:"></a>WHAT:</h1><h2 id="1-什么是考研?规模,意义,重要性?"><a href="#1-什么是考研?规模,意义,重要性?" class="headerlink" title="1.什么是考研?规模,意义,重要性?"></a>1.什么是考研?规模,意义,重要性?</h2><p>考研就是 <a href="https://baike.baidu.com/item/%E5%85%A8%E5%9B%BD%E7%A1%95%E5%A3%AB%E7%A0%94%E7%A9%B6%E7%94%9F%E7%BB%9F%E4%B8%80%E6%8B%9B%E7%94%9F%E8%80%83%E8%AF%95/20562930?fr=aladdin" target="_blank" rel="external">全国硕士研究生统一招生考试</a>的简称,具体在我的身上就是:难度系数高,意义重大的人生中最后一次统一考试。</p><h2 id="2-应该怎么准备?"><a href="#2-应该怎么准备?" class="headerlink" title="2.应该怎么准备?"></a>2.应该怎么准备?</h2><p>科目是:政治,英语,数一,专业课</p><p>英语数学和专业课是需要长期下功夫的,就目前的英语,数学水平来说,这将会是一场艰难的持久战。目前到12月的四级考试每天背一个list单词,最后几天每天复习4个list及做真题,先把12月的四级完成了。四级之后的时间开始准备数学,每天看数学及背单词加专业课,思路状态都调整差不多后狂刷19级资料书。下学期考六级。每天的时间安排有序,不做打游戏,看直播等浪费时间的事。大概安排就是这样。</p><h1 id="WHY"><a href="#WHY" class="headerlink" title="WHY:"></a>WHY:</h1><h2 id="1-自我挑战"><a href="#1-自我挑战" class="headerlink" title="1.自我挑战"></a>1.自我挑战</h2><p>在之前的某一段时期,如果你问我是否要考研,我一定会毅然决然的说:NO。我相信学历是三本的技术大牛当然可以闯出一片天,我也更害怕自己在努力一年多以后考研失败,浪费了一年的时光,如果没有选择考研,自己会在专业方面离大牛更近一步,但是如果考研失败,自己将面临很尴尬的处境。不得不说,这是一场自我挑战。</p><h2 id="2-新的高度"><a href="#2-新的高度" class="headerlink" title="2.新的高度"></a>2.新的高度</h2><p>但是,就我自身的条件来说,没有在专业上有一个很好的基础,还是很难走的很远,程序=算法+数据结构,以后面对的真正的项目会比我想像的复杂很多,并不是现在简简单单的demo所能比拟。考研会把我带到新的高度上去,让我在这条路走的长远。</p><h2 id="3-人生遗憾"><a href="#3-人生遗憾" class="headerlink" title="3.人生遗憾"></a>3.人生遗憾</h2><p>高考是我人生中的遗憾,也希望考研成功可以稍微弥补一点。</p><h1 id="HOW"><a href="#HOW" class="headerlink" title="HOW:"></a>HOW:</h1><h2 id="1-时间及任务"><a href="#1-时间及任务" class="headerlink" title="1.时间及任务"></a>1.时间及任务</h2><p>时间还有一年多一个月,还不算紧凑。但是自己的基础不好,任务极重。</p><h2 id="2-calendar"><a href="#2-calendar" class="headerlink" title="2.calendar"></a>2.calendar</h2><p>在以后的两个星期:</p><table><thead><tr><th style="text-align:center">6:00-7:30</th><th style="text-align:center">12:10-1:30</th><th style="text-align:center">6:10-9:30</th></tr></thead><tbody><tr><td style="text-align:center">一个list单词+10个词根</td><td style="text-align:center">复习单词</td><td style="text-align:center">专业课</td></tr></tbody></table><p>变动再补充。</p><h2 id="3-心态"><a href="#3-心态" class="headerlink" title="3.心态"></a>3.心态</h2><p>不崩就好…</p><h1 id="最后"><a href="#最后" class="headerlink" title="最后:"></a>最后:</h1><p>在新的博客上 第一次写这么多…</p><p>这篇文章竟然用了我近一个小时的时间!嗯,相信未来充满希翼,努力成为行业大牛,早日给父母养老,不为之前做的决定而后悔。</p>]]></content>
<summary type="html">
<h1 id="前言"><a href="#前言" class="headerlink" title="前言:"></a>前言:</h1><p>写作时间:2017-11-04 大三上学期星期六的下午。</p>
<p>我想,我目前是很平静的做了人生中的一个重要决定,就是,下定决心准
</summary>
<category term="感悟" scheme="http://xnmll.cn/categories/%E6%84%9F%E6%82%9F/"/>
<category term="成长历程" scheme="http://xnmll.cn/tags/%E6%88%90%E9%95%BF%E5%8E%86%E7%A8%8B/"/>
<category term="随机" scheme="http://xnmll.cn/tags/%E9%9A%8F%E6%9C%BA/"/>
</entry>
<entry>
<title>首记 hexo github</title>
<link href="http://xnmll.cn/2017/11/02/index/"/>
<id>http://xnmll.cn/2017/11/02/index/</id>
<published>2017-11-02T13:11:00.000Z</published>
<updated>2017-11-06T13:29:20.915Z</updated>
<content type="html"><![CDATA[<h2 id="新的开始"><a href="#新的开始" class="headerlink" title="新的开始"></a>新的开始</h2><h2 id="Q-amp-A"><a href="#Q-amp-A" class="headerlink" title="Q&A"></a>Q&A</h2><h3 id="Q-我是谁?"><a href="#Q-我是谁?" class="headerlink" title="Q:我是谁?"></a>Q:我是谁?</h3><p>A: 博主姓名:郎春阳,1997年出生。热爱编程,喜欢折腾。</p><h3 id="Q-我为什么要写博客?"><a href="#Q-我为什么要写博客?" class="headerlink" title="Q:我为什么要写博客?"></a>Q:我为什么要写博客?</h3><p>A: 三流院校的考研狗,在此记录自己生活点滴。等到自己github能被很多人看到的时候,可能这些大学期间的写作会是自己拥有的莫大财富。</p><p>之前搭建的博客: <a href="https://www.xnmll.cn" target="_blank" rel="external">https://www.xnmll.cn</a></p><h3 id="Q-我现在在干嘛?"><a href="#Q-我现在在干嘛?" class="headerlink" title="Q:我现在在干嘛?"></a>Q:我现在在干嘛?</h3><p>A: 现在是北京时间2017年11月2日,我在山东省烟台市蓬莱市济南大学泉城学院就读软件工程专业,目前大三在校,兢兢业业的准备自己的考研之路</p><h3 id="Q-目前心情怎么样?"><a href="#Q-目前心情怎么样?" class="headerlink" title="Q:目前心情怎么样?"></a>Q:目前心情怎么样?</h3><p>A: 现在吗?因为今天口腔溃疡所以不是很好,还有我得快点写了,图书馆就快熄灯了。总体来说还是不好~,虽然心中明确了方向,还是为未来担忧,自己担任着重任。</p>]]></content>
<summary type="html">
<h2 id="新的开始"><a href="#新的开始" class="headerlink" title="新的开始"></a>新的开始</h2><h2 id="Q-amp-A"><a href="#Q-amp-A" class="headerlink" title="Q&a
</summary>
<category term="日常" scheme="http://xnmll.cn/categories/%E6%97%A5%E5%B8%B8/"/>
<category term="成长历程" scheme="http://xnmll.cn/tags/%E6%88%90%E9%95%BF%E5%8E%86%E7%A8%8B/"/>
<category term="随机" scheme="http://xnmll.cn/tags/%E9%9A%8F%E6%9C%BA/"/>
</entry>
</feed>