首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
我的文章
订阅
卡巴拉的树
更多收藏集
微信扫码分享
微信
新浪微博
QQ
36篇文章 · 1订阅
“Hello,World”背后的故事
学习一门语言,经常都是从打印“Hello,World”开始的,打过招呼后,你便可以进入程序的新世界。 就拿经典的C语言举例,基本上每个程序员在上学时就可以闭着眼睛写下“Hello,World”,这也是检测开发环境是否能正常工作常用的小程序,就像有的人看能不能上网就输个百度试试(…
vim进阶 | 使用插件打造实用vim工作环境
首先晒一张我的vim截图,基本IDE有的功能都能实现了,虽然在日常工作里还是IDE用的多,但是作为一个开发者,少不了折腾的心。 vim,作为与emacs齐名的编辑器,无需更多溢美之词,由于学习曲线陡峭,但是学会之人,无不表示其方便,vim操作的简洁,熟练使用后,形成的肌肉习惯让…
和我一起读Java8 LinkedList源码
书接上一篇ArrayList源码解析,这一节继续分析LinkedList在Java8中的实现,它同样实现了List接口,不过由名字就可以知道,内部实现是基于链表的,而且是双向链表,所以Linked List在执行像插入或者删除这样的操作,效率是极高的,相对地,在随机访问方面就弱…
浅析Linux中的零拷贝技术
本文探讨Linux中主要的几种零拷贝技术以及零拷贝技术适用的场景。为了迅速建立起零拷贝的概念,我们拿一个常用的场景进行引入: 在写一个服务端程序时(Web Server或者文件服务器),文件下载是一个基本功能。这时候服务端的任务是:将服务端主机磁盘中的文件不做修改地从已连接的s…
图解Prim&Kruskal算法
假设以下情景,有一块木板,板上钉上了一些钉子,这些钉子可以由一些细绳连接起来。假设每个钉子可以通过一根或者多根细绳连接起来,那么一定存在这样的情况,即用最少的细绳把所有钉子连接起来。 更为实际的情景是这样的情况,在某地分布着N个村庄,现在需要在N个村庄之间修路,每个村庄之前的距…
Java并发工具类(栅栏CyclicBarrier)
CyclicBarrier适用于这样的情况:你希望创建一组任务,它们并行地执行工作,然后在下一个步骤之前等待,直到所有任务都完成。栅栏和闭锁的关键区别在于,所有线程必须同时到达栅栏位置,才能继续执行。 闭锁用于等待事件,而栅栏是线程之间彼此等待,等到都到的时候再决定做下一件事。…
深入理解JVM类文件格式
我们知道Java最有名的宣传口号就是:“一次编写,到处运行(Write Once,Run Anywhere)”,而其平台无关性则是依赖于JVM, 所有的java文件都被编译成字节码(class)文件,而虚拟机只需要认识字节码文件就可以了。想要弄懂虚拟机以及类加载机制,这部分内容…
Mybatis学习笔记(5)-高级映射之多对多映射
假设我们现在有这样的需求,想知道某一位顾客购买了哪些商品,但是通过观察customers表和products表,我们发现这两张表并没有关联,那么怎么办呢?通过前面的例子,我们可以发现,经由orders和orderitems这两张表,customers表和products表能建立…
Java CAS 原理剖析
在Java并发中,我们最初接触的应该就是synchronized关键字了,但是synchronized属于重量级锁,很多时候会引起性能问题,volatile也是个不错的选择,但是volatile不能保证原子性,只能在某些场合下使用。 像synchronized这种独占锁属于悲观…
理解ARP协议
我们知道在网络中通讯,都是知道对方的IP地址后,才能发起连接,IP地址所在的层是网络层,而在网络层下面是数据链路层,这里IP数据包继续被封装成以太网数据帧,当然还有别的数据链路层格式,但是数据链路层也需要寻址机制,常常就是48bit的硬件地址,又叫MAC地址。 ARP协议就是起…