首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
卡巴拉的树
掘友等级
软件开发
开源爱好者。
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
68
文章 67
沸点 1
赞
68
返回
|
搜索文章
最新
热门
熟练使用 git 分支管理
观察过很多使用git的人,只会用add, commit,push,pull这几个命令,包括恢复版本之类的,多半也会暴力的删除整个项目,再重新clone干净的代码。虽说也能工作了,但是无疑没有领会到git的精华。 这篇文章主要说明如何使用分支使我们的开发工作更加顺滑,如何让分支成…
Java并发工具类(信号量Semaphore)
计数信号量用来控制同时访问某个特定资源的操作数量,或者同时执行某个指定操作的数量。信号量还可以用来实现某种资源池,或者对容器施加边界。 Semaphore管理着一组许可(permit),许可的初始数量可以通过构造函数设定,操作时首先要获取到许可,才能进行操作,操作完成后需要释放…
图的单源最短路径(Dijkstra算法)
在许多路由问题中,寻找图中一个顶点到另一个顶点的最短路径或最小带权路径是非常重要的提炼过程。正式表述为,给定一个带权有向图G = (V, E) , 顶点s到v中顶点t的最短路径为在边集E中连接s到t代价最小的路径。要做到这一点首先要解决更为一般的单源最短路径问题。在单源最短路径…
vim进阶 | 使用插件打造实用vim工作环境
首先晒一张我的vim截图,基本IDE有的功能都能实现了,虽然在日常工作里还是IDE用的多,但是作为一个开发者,少不了折腾的心。 vim,作为与emacs齐名的编辑器,无需更多溢美之词,由于学习曲线陡峭,但是学会之人,无不表示其方便,vim操作的简洁,熟练使用后,形成的肌肉习惯让…
图解Prim&Kruskal算法
假设以下情景,有一块木板,板上钉上了一些钉子,这些钉子可以由一些细绳连接起来。假设每个钉子可以通过一根或者多根细绳连接起来,那么一定存在这样的情况,即用最少的细绳把所有钉子连接起来。 更为实际的情景是这样的情况,在某地分布着N个村庄,现在需要在N个村庄之间修路,每个村庄之前的距…
Spring Boot + thymeleaf 实现文件上传下载
最近同事问我有没有有关于技术的电子书,我打开电脑上的小书库,但是邮件发给他太大了,公司又禁止用文件夹共享,于是花半天时间写了个小的文件上传程序,部署在自己的Linux机器上。 先给出成果,下面就一步步演示怎么实现。 首先当然是新建一个spring-boot工程,你可以选择在网站…
Java并发工具类(闭锁CountDownLatch)
闭锁是一种同步工具类,可以延迟线程的进度直到其到达终止状态。 CountDownLatch是一种灵活的闭锁实现,它可以使一个或者多个线程等待一组事件的发生。 闭锁状态包含一个计数器,该计数器被初始化为一个正数,表示需要等待的事件数量。countDown方法递减计数器,表示已经有…
Java并发工具类(栅栏CyclicBarrier)
CyclicBarrier适用于这样的情况:你希望创建一组任务,它们并行地执行工作,然后在下一个步骤之前等待,直到所有任务都完成。栅栏和闭锁的关键区别在于,所有线程必须同时到达栅栏位置,才能继续执行。 闭锁用于等待事件,而栅栏是线程之间彼此等待,等到都到的时候再决定做下一件事。…
图的广度优先和深度优先遍历(BFS和DFS)
图是一种灵活的数据结构,一般作为一种模型用来定义对象之间的关系或联系。对象由顶点(V)表示,而对象之间的关系或者关联则通过图的边(E)来表示。 图可以分为有向图和无向图,一般用G=(V,E)来表示图。经常用邻接矩阵或者邻接表来描述一副图。 在图的基本算法中,最初需要接触的就是图…
和我一起读Java8 LinkedList源码
书接上一篇ArrayList源码解析,这一节继续分析LinkedList在Java8中的实现,它同样实现了List接口,不过由名字就可以知道,内部实现是基于链表的,而且是双向链表,所以Linked List在执行像插入或者删除这样的操作,效率是极高的,相对地,在随机访问方面就弱…
下一页
个人成就
优秀创作者
文章被点赞
2,669
文章被阅读
261,713
掘力值
8,228
关注了
7
关注者
1,597
收藏集
1
关注标签
32
加入于
2016-09-26