-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
254 lines (135 loc) · 13 KB
/
index.html
File metadata and controls
254 lines (135 loc) · 13 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
<!DOCTYPE html>
<html lang="zh-Hans">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>godvvvvvv的博客</title>
<meta name="viewport" content="width=device-width,minimum-scale=1">
<meta name="generator" content="Hugo 0.74.3" />
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
<link href="/godvvvvvv.github.io/dist/css/app.4fc0b62e4b82c997bb0041217cd6b979.css" rel="stylesheet">
<link href="godvvvvvv.github.io/index.xml" rel="alternate" type="application/rss+xml" title="godvvvvvv的博客" />
<link href="godvvvvvv.github.io/index.xml" rel="feed" type="application/rss+xml" title="godvvvvvv的博客" />
<meta property="og:title" content="godvvvvvv的博客" />
<meta property="og:description" content="" />
<meta property="og:type" content="website" />
<meta property="og:url" content="godvvvvvv.github.io/" />
<meta property="og:updated_time" content="2020-09-03T21:41:42+08:00" />
<meta itemprop="name" content="godvvvvvv的博客">
<meta itemprop="description" content="">
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="godvvvvvv的博客"/>
<meta name="twitter:description" content=""/>
</head>
<body class="ma0 avenir bg-near-white">
<header>
<div class="pb3-m pb6-l bg-black">
<nav class="pv3 ph3 ph4-ns" role="navigation">
<div class="flex-l justify-between items-center center">
<a href="godvvvvvv.github.io/" class="f3 fw2 hover-white no-underline white-90 dib">
godvvvvvv的博客
</a>
<div class="flex-l items-center">
</div>
</div>
</nav>
<div class="tc-l pv3 ph3 ph4-ns">
<h1 class="f2 f-subheadline-l fw2 light-silver mb0 lh-title">
godvvvvvv的博客
</h1>
</div>
</div>
</header>
<main class="pb7" role="main">
<article class="cf ph3 ph5-l pv3 pv4-l f4 tc-l center measure-wide lh-copy mid-gray">
</article>
<div class="pa3 pa4-ns w-100 w-70-ns center">
<h1 class="flex-none">
Recent Posts
</h1>
<section class="w-100 mw8">
<div class="relative w-100 mb4">
<article class="bb b--black-10">
<div class="db pv4 ph3 ph0-l no-underline dark-gray">
<div class="flex flex-column flex-row-ns">
<div class="blah w-100">
<h1 class="f3 fw1 athelas mt0 lh-title">
<a href="godvvvvvv.github.io/posts/%E5%85%B3%E4%BA%8Ecollection%E4%BD%93%E7%B3%BB%E7%9A%84%E4%B8%80%E7%82%B9%E6%80%BB%E7%BB%93%C3%A3/" class="color-inherit dim link">
关于Collection体系的一点总结
</a>
</h1>
<div class="f6 f5-l lh-copy nested-copy-line-height nested-links">
关于Collection体系做一点点总金额,可能很乱,但是是自己所能学到的想到的。 大概分为三个部分,list,set,map。 对于list和set而言 list本质上就是一个数组,list和set之间的显而易见的区别在于能否有重复的元素,set是会自动去重的。 要注意的是他们都是接口,千万不可以直接去new一个实例,例如这样 Set<Object> set = new Set<>;这样是不对的!!! 他们提供了很多方便的方法来供我们使用。 size()用来得到数组长度的函数;isEmpty用来判断数组是否为空;contains()用来判断是否包含某个元素。 add()添加一个元素;addall()把某个list的元素全都添加进来;a.retainAll(b)用来找到ab共有的元素。 clear()删除所有元素;remove()删除某个元素;a.removeAll(b)用来删除a中b的元素。 讲到的可能的面试题 扩容的原理:当一直向一个ArrayList中添加元素事,程序会帮你首先查看是否有足够的内存装得下要添加的元素,如果不够会再重新创建一个新的ArrayList,并 把旧的里面的元素复制进新的里面,新的长度是旧的1.5倍大小。 对于set的一点点总结 对于set对象如何去重,其实就是利用equals方法来判断。 在判断两个对象是否相等之前,会首先判断两个对象的hash是否相等,因为判断hashcode的过程效率更高。两个不同的对象也有可能拥有相同的hashcode,故而 对象相同,hashcode一定相同,hashcode不同那么对象一定不等了。 注意HashSet是无序的,linkedHashSet是根据你输入的顺序排序的。 java世界第二重要的约定: 同⼀个对象必须始终返回相同的hashCode 两个对象的equals返回true,必须返回相同的hashCode 两个对象不等,也可能返回相同的hashCode 关于Map Map内存放并不仅仅是一个个个体的元素,而是一对一对的映射!(键->值)注意这里的区别。 同样的Map仅仅只是一个接口,需要实例化的时候,HashMap是一个常用的选择。 提供的方法 put/putAll有点类似于以上的add/addAll get()通过键来查找相应的value containsKey()/containsValue()分别为是否包含相应的键或者值 keyset为把Map对象中的键拿出来放到一个set对象中去;values()来返回所有的值到一个collection中;entryset()来返回Map中的键值对到一个set中 红黑树的被用于jdk7以后解决hash碰撞问题导致的效率大幅下降 另外,HashMap并不是线程安全的,在多线程访问中,可能会造成死循环,以至于cpu100%。
</div>
<a href="godvvvvvv.github.io/posts/%E5%85%B3%E4%BA%8Ecollection%E4%BD%93%E7%B3%BB%E7%9A%84%E4%B8%80%E7%82%B9%E6%80%BB%E7%BB%93%C3%A3/" class="ba b--moon-gray bg-light-gray br2 color-inherit dib f7 hover-bg-moon-gray link mt2 ph2 pv1">read more</a>
</div>
</div>
</div>
</article>
</div>
<div class="relative w-100 mb4">
<article class="bb b--black-10">
<div class="db pv4 ph3 ph0-l no-underline dark-gray">
<div class="flex flex-column flex-row-ns">
<div class="blah w-100">
<h1 class="f3 fw1 athelas mt0 lh-title">
<a href="godvvvvvv.github.io/posts/maven%E7%9A%84%E5%8C%85%E7%AE%A1%E7%90%86/" class="color-inherit dim link">
Maven的包管理
</a>
</h1>
<div class="f6 f5-l lh-copy nested-copy-line-height nested-links">
一.什么是包,类是从哪里找到的 要说包,首先要说到jvm的工作原理啊,jvm的工作原理就是去执行一个类的字节码,如果在执行这个类的过程中碰到新的类,那就加载它。 那么去哪里加载这个碰到的类呢?答案就是类路径(classpath)中挨个去查找相应的类,找到了则加载,找不到则报错。 那么什么是包呢,其实就是把许多类打包到一起的一个“压缩包“。 但是事情没有这么简单,你在运行你的类的时候碰到了一个新的类,难道只需要加载这个嘛?答案当然是否定的,在加载新的类的时候,新的类又引入了其他的类,则又要去加载 另一个新的类,这就是所谓的”传递性依赖“。 还记得类的唯一标识是他的全限定类名,但是当传递性依赖引入了两个同名(不同版本的,功能上存在差异的)的包,那么问题就来了。 二.Maven的包管理 Maven可以帮你快速的自动下载你所需要的包 包管理的本质就是告诉jvm去哪里找到所需要的第三方类库,以及成功的解决其中的”包冲突“。 在maven的中央仓库中存放了所需要的所有的第三方类库,在我们需要引入第三方类库的时候,maven就可以快速的缓存来供我们使用。 在pom.xml文件中的dependency标签下存放了我们所需要的引入的第三方类库,他一共有三个必须的标签,分别是groupId/artifactId/version,三者共同决定了你所需要的包位于 maven中央仓库的位置,有的还有scope这样一个标签,来表示这个依赖所作用的范围,其中比较常见的compile作用于全局,test作用于测试代码中。这样可以达到快速检索并找到所需要包的效果,大大的提升了效率。 Maven可以帮助你解决包冲突 包冲突来自于传递性依赖,因为依赖的存在,导致引入了同名的包。 Maven的原则是在classpath中绝对不允许出现同名不同版本的jar包,如果你不小心引入了,那么根据这个原则Maven会自动地帮你解决掉一部分,直到只剩下一个!Maven解决掉多余的包的原则是 根据dependencytree谁离根节点约近谁就胜出,胜出者就可以留下。 但是我们不一定希望近的胜出,因为近的那个包的版本不一定是最新的,他不一定支持其他的依赖。 三.解决包冲突的办法 在解决包冲突之前我们需要知道问题出在了哪里 我们可以直接点击idea内置的maven图形界面,点开dependency来查看。 在命令行中输入mvn dependency:tree来查看依赖树。 那么如何解决呢? 直接把最新版本的,也就是你想留下的那个版本的包写入pom.xml文件中,让它位于离根节点最近的一层,那么它就轻易的”胜出啦“。 把你想要的干掉的包在pom.xml文件中e用xclusion标签干掉他。 下载一个maven helper插件,可以直接在插件里面利用插件对你当前依赖分析的结果去一键解决包冲突。
</div>
<a href="godvvvvvv.github.io/posts/maven%E7%9A%84%E5%8C%85%E7%AE%A1%E7%90%86/" class="ba b--moon-gray bg-light-gray br2 color-inherit dib f7 hover-bg-moon-gray link mt2 ph2 pv1">read more</a>
</div>
</div>
</div>
</article>
</div>
<div class="relative w-100 mb4">
<article class="bb b--black-10">
<div class="db pv4 ph3 ph0-l no-underline dark-gray">
<div class="flex flex-column flex-row-ns">
<div class="blah w-100">
<h1 class="f3 fw1 athelas mt0 lh-title">
<a href="godvvvvvv.github.io/posts/%E5%A6%82%E4%BD%95%E7%94%A8hugo%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/" class="color-inherit dim link">
如何用hugo搭建个人博客
</a>
</h1>
<div class="f6 f5-l lh-copy nested-copy-line-height nested-links">
一.首先你应该下载一个hugo 从网上下载一个hugo,注意你的电脑系统的区别。
当然下载完后并没有结束,而是要解压你的hugo到一个目录
解压完成后我们需要把hugo得目录添加到环境变量中,你可以通过两种方法添加
我的电脑-属性-高级系统设置-环境变量-将你的hugo所在的路径添加到path中。 在命令行中运行,vi ~/.bashrc,export PATH=$PATH:/d/software/hugo,然后保存并退出(ESC:wq)。 在完成添加环境变量之后在你的命令行中运行hugo version来查看是否配置完成。 二.现在就可以用hugo快速搭建自己的博客啦 在一个目录中利用hugo new site quickstart来创建一个根目录,quuckstart最好换成你想要的目录名字。 运行cd quickstart, git init来进入目录并创建本地仓库,运行git submodule add https://github.com/budparr/gohugo-theme-ananke.git themes/ananke来下载一个博客得默认主题,完成后找到config.toml文件修改博客名字等信息。 现在来写第一篇文章,运行hugo new posts/my-first-post.md来创建一个markdown文件,相信你可以很好的完成文章的内容,写完记得将状态改为false。 来运行hugo serve -D来生成你的博客,此时点击http://localhost:1313/即可查看本地博客的生成页面。 这样你就生成你的博客(仅仅能在本地查看)
关于如何推动github中就在下一次博客再讲吧!
</div>
<a href="godvvvvvv.github.io/posts/%E5%A6%82%E4%BD%95%E7%94%A8hugo%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/" class="ba b--moon-gray bg-light-gray br2 color-inherit dib f7 hover-bg-moon-gray link mt2 ph2 pv1">read more</a>
</div>
</div>
</div>
</article>
</div>
</section>
<section class="w-100">
<h1 class="f3">More</h1>
<h2 class="f5 fw4 mb4 dib mr3">
<a href="godvvvvvv.github.io/posts/%E5%BC%80%E5%8D%9A%E5%A4%A7%E5%90%89/" class="link black dim">
开博大吉
</a>
</h2>
<a href="godvvvvvv.github.io/posts/" class="link db f6 pa2 br3 bg-mid-gray white dim w4 tc">All Posts</a>
</section>
</div>
</main>
<footer class="bg-black bottom-0 w-100 pa3" role="contentinfo">
<div class="flex justify-between">
<a class="f4 fw4 hover-white no-underline white-70 dn dib-ns pv2 ph3" href="godvvvvvv.github.io" >
© godvvvvvv的博客 2020
</a>
<div>
</div>
</div>
</footer>
<script src="/godvvvvvv.github.io/dist/js/app.3fc0f988d21662902933.js"></script>
</body>
</html>