-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcontent.json
executable file
·1 lines (1 loc) · 10.2 KB
/
content.json
1
{"pages":[{"title":"","text":"个人简介","link":"/about/index.html"}],"posts":[{"title":"容器深入研究","text":"HashMap,TreeMap,LikedHashMap,WeakHashMap,ConcurrentHashMap浅析 理解Map映射表(也称为关联数组)的基本思想是它维护的是键值对关联。标准的java类库中包含类Map的几种基本实现,包括 HashMap,TreeMap,LikedHashMap,WeakHashMap,ConcurrentHashMap,IdentityHashMap. | HashMap | Map 基于散列表的实现(它取代类Hashtable)。插入和查询键值对的开销是固定的,可以通过构造器设置容器和负载因子,以调整容器的性能 || LinkedHashMap | 类似于hashmap,但是迭代遍历它时,取得键值对的顺序是其插入顺序,或者是最近最少使用(lru)的次序,只比hashmap慢一点,而在迭代访问的时候时反而更快,因为它使用链表维护内部的次序 || TreeMap | 基于红黑树的实现,查看键或键值对时,它们会被排序(次序由Comparable或Comparator决定)treemap的特点在于,所得的结果是经过排序的。treemap是唯一带有subMap()方法的map,他可以返回一个子树 || WeakHashMap | 弱键映射,允许释放映射所指向的对象,这是为解决某类特殊问题而设计的,如果映射之外没有引用指向某个键,则此键可以被垃圾收集器回收|| ConcurrentHashMap | 一种线程安全的map,它不涉及同步加锁 || IdentityHashMap | 使用==代替equals()对键进行比较的散列映射 | LinkedHashMap为了提高速度,LinkedHashMap散列化所有的元素,但是遍历键值对时,却又以元素的插入顺序返回键值对 性能是映射表的一个重要问题,当在get()中使用线性搜索时,执行速度会相当慢,而这正是hashmap提高速度的地方。hashmap使用了特殊的值,称作散列码,来取代键的缓慢搜索,散列码是相对唯一的,用以代表对象的int值,它是通过将该对象的某些信息进行转换生成的。hashcode()是根类object中的方法,因此所有java对象都能产生散列码,hashmap就是使用对象的hashcode()进行快速查询的,此方法能狗显著提高性能。 HashMap,TreeMap,HashTable HashMap HashTable 是无序的,treemap是有序的。 hasbtable的方法是同步的,hashmap的方法不是同步的这就表明: hashtable是线程安全的,hashmap不是线程安全的 hashmap效率较高,hashtable效率较低,如果对同步性或者遗留代码的兼容性没有任何要求,建议使用hashmap,查看hashmap的源码就可以发现,除了构造函数外,hashtable的所有public方法声明中都有synchronized关键字,但hashmap的源码中没有。 hashtable不允许null值,hashmap允许null值(key和value都允许) hashtable的父类是dictionary,hashmap的父类是abstractmap TreeSet,LinkedHashSet,HashSet TreeSet,LinkedHashSet,HashSet在java中都是Set的数据结构 TreeSet的主要功能用于排序 LinkedHashSet的主要功能用于保证FIFO 即有序的集合,先进先出 HashSet只是通用的存储数据的集合 三者都是线程安全的 HashSet插入顺序最快,其次LinkedHashSet,最慢的是TreeSet,因为内部实现排序。","link":"/2019/08/23/iterator/"},{"title":"函数式编程范式","text":"函数式编程,让代码更优雅。 在java8之前我们遍历list是这样写的 123for(int i=0;i<wordList.size();i++){ wordList.get(i).toUpperCase()} 在java8支持stream时,我们遍历集合变得简单:wordList.stream.map(w->w.toUpperCase())一句话搞定,map()用于映射,遍历原stream中的元素,转换后构成新的stream除了map ,还有filter()用于过滤 123456List<String> list = new ArrayList<String>(); list.add(\"java\"); list.add(\"heml\"); list.add(\"python\"); List<String> singlelist = list.stream().filter(w->w.equals(\"java\")).collect(Collectors.toList()); System.out.println(singlelist.toString()); 运行结果:[java]filter()方法返回的是stream,利用collect(Collectors.toList())将数据收集进一个列表(Stream 转换为 List,允许重复值,有顺序)这里需要注意的是需要创建一个新的List来存储过滤后的list,原来list并不会发生改变。利用collect(Collectors.toSet())将数据收集进一个集合(Stream 转换为 Set,不允许重复值,没有顺序)除了上述方法,还可以自定义的实现Collection的数据结构收集 12345678//利用LinkedList收集collect(Collectors.toCollection(LinkedList::new));//利用CopyOnWriteArrayList收集collect(Collectors.toCollection(CopyOnWriteArrayList::new))//利用TreeSet收集collect(Collectors.toCollection(TreeSet::new));//利用joining()对stream字符串进行拼接collect(Collectors.joining())","link":"/2019/08/22/functionalProgramming/"},{"title":"macbook一些常用的快捷键","text":"熟练掌握mac快捷键,让操作更顺畅。 积累一些mac常用的快捷键,操作会方便许多。 Mocbook 跳到行首行尾 、home 和end快捷键 control + a 到行首control + e 到行尾control + n 到下一行control + p 到上一行Control + k 从光标出开始删除,直到行尾 fn + 左方向键 :HOMEFn + 右方向键 :ENDFn + 上方向键:page upFn + 下方向键:page down 创建新的文件夹: shift+command+n 选择上一个输入法;control+space选择下一个输入法:control + option + space 切换到英文输入法,按capslock可以切换大小写切换到中文输入法,按capslock可以切换小写英文和中文输入法 在eclipse中,command加左右键到行首行尾command+shift+o 快速导包","link":"/2019/08/22/macfastkey/"},{"title":"icarus主题配置优化","text":"访问人数,文章阅读更多,摘要配图,章详情页面设置双栏模式等 1.设置访问人数 在icarus主题中已经集成了不蒜子计数插件,我们只需要在主题的_config.yml文件将busuanzi: false 设置为 ture 然后在/layout/common/footer.ejs文件中配置访客人数即可 12345<span id=\"busuanzi_container_site_uv\"><!-- <%- _p('plugin.visitor', '<span id=\"busuanzi_value_site_uv\">0</span>') %> -->❤️感谢<span id=\"busuanzi_value_site_uv\"></span>位小伙伴的 </span> <span id=\"busuanzi_value_site_pv\"></span> 次光临 ❤️ 2.设置文章阅读更多 很多小伙伴在刚建立好博文后,在主页都是显示了整片博文的内容,这样很不好看。 在博文的md文件中在你认为合适的位置加上<!--more-->,便可以显示“阅读更多”,让前面的内容形成一个导引。 点击“阅读更多”就是阅读整篇文章内容。 3.摘要配图 文章导引只有标题,略显单薄,不少小伙伴都希望配张图片美化。那怎么加图片呢? 很简单,只要在博文开头处加上thumbnail标签,后面跟上图片的url即可。 1234567---title: icarus主题配置优化:访问人数,文章阅读更多,摘要配图等。date: 2019-10-03 11:54:53thumbnail: 图片urltags: blogcategoriers: [blog]--- 4.文章详情页面设置双栏模式 在原始的主题设置中,主页是有三列的,点击文章查看全部内容时也是显示三列,这个时候可以想办法把右边的一栏放到左边,然后中间那栏适当放宽。 实现参考removerif博主分享的源码和水寒的这篇文章进行设置。","link":"/2019/10/03/makeblogbetter/"},{"title":"初创博客","text":"也是偶然的机会在B站中看到程序羊的视频,他分享了一个利用hexo框架搭建博客的这么一个视频。看了之后自己也挺感兴趣的,就想着自己也搭建一个属于自己的专属博客,记录下自己的学习心得体会之类的。搭建过程也是比较艰辛,毕竟也是第一次折腾。也是一点点的摸索,将自己搭建的过程记录一下,供大家参考,一起交流学习。 为什么写博客在b站中关注了“程序羊”,在他up的视频中有这么一篇视频:手把手教你从0搭建自己的个人博客,很感兴趣,于是尝试搭建。 在这个过程中遇到了一些问题和踩过的坑,记录一下。 利用hexo 进行初始话时遇到一个错误:sudo hexo init 12345sudo hexo init INFO Cloning hexo-starter https://github.com/hexojs/hexo-starter.gitxcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrunWARN git clone failed. Copying data insteadWARN Failed to install dependencies. Please run 'npm install' manually! 原因是电脑上没有安装xcrun利用 xcode-select –install安装即可 一步一步按照程序羊视频的介绍,非常顺利的搭建好了自己的博客,同时也部署到了自己的github中。 接下来就是自己对界面的丰富了: 由于博客是利用了litten开发的yilia主题,所有在上面有很多详细介绍,后续根据自己的爱好一一配置即可。 hexo 一些常见的命令: hexo new “我的第一篇博客” 是新建一篇博客 可简写 hexo nhexo generate 生成静态文件,可简写 hexo ghexo server 启动服务器,默认情况下,访问网址为:http://loacalhost:4000/ 可简写 hexo shexo deploy 部署网址,可简写 hexo d #添加关于页面 通过 hexo new page “about”","link":"/2019/08/14/start-blog/"},{"title":"《激荡三十年》读书笔记","text":"当这个时代到来当时候,锐不可挡。万物肆意生长,尘埃与曙光升腾,江河汇聚成川,无名山丘崛起为峰,天地一时,无比开阔。 当市场当大闸被小心翼翼地打开的时候,自由的水流就开始渗透了进来,一切都变得无法逆转, 那些自由都水流是那么的弱小,却又是那么的肆意,它随风而行,遇石则弯,轰然成势, 它是善于妥协的力量,但任何妥协都必须依照它浩荡前行的规律, 它是建设和破坏的集大成者,当一切旧秩序被溃然推到的时候,新的天地却也呈现出混乱无度的面貌。","link":"/2019/10/03/readbooknote/"}],"tags":[{"name":"mac","slug":"mac","link":"/tags/mac/"},{"name":"blog","slug":"blog","link":"/tags/blog/"}],"categories":[{"name":"mac","slug":"mac","link":"/categories/mac/"},{"name":"blog","slug":"blog","link":"/categories/blog/"}]}