为你的开源项目添加 996-prohibited-license

2019-04-08
阅读 1 分钟
2.4k
添加许可非常简单,首先找到项目当前的开发分支,在主页 README.md 的开头加入下面的内容即可: {代码...} 你将会看到这样一个图标: 可能你的项目无足轻重,但只要你还在维护,就不妨把它加进去,让我们从形成一种风气开始做起!

缓存的三个问题

2019-04-02
阅读 2 分钟
1.6k
缓存的作用是在内存中临时存储来自外部系统(如数据库)的数据,以便让请求更快的得到响应。如果请求数据在缓存中不存在,或者已经超时失效,那么也要从外部系统查询,然后放入缓存中,这个过程叫刷新缓存。
封面图

介绍 mybatis 执行 SQL 的大致过程

2019-03-27
阅读 4 分钟
2k
本文通过 main() 方法来用 mybatis 执行带参数的 SQL 命令,来介绍 mybatis 执行 SQL 的大致过程。 准备数据库 准备一个 MySQL 数据库,十分钟内快速运行起一个 MySQL 的方法可以看这篇文章。 数据库内创建一张很简单的表: {代码...} 创建项目 首先创建一个空的 Maven 项目,加上下面的依赖关系: {代码...} 创建 main(...

mybatis-plus 的一种很别扭的用法

2019-03-14
阅读 2 分钟
21.4k
对比这两个接口,操作都差不多,名字有一点点改变,比如 BaseMapper 里面叫 insert() 的方法,在 IService 里面叫 save()。

Epoll,Level Triggered 和 Edge Triggered

2019-03-02
阅读 1 分钟
4.1k
epoll 最开始只有 Edge Triggered API (ET API),因为实在不好懂容易出错,所以 epoll 作者 Davide Libenzi 再加入了 Level Triggered API:lt-epoll ( level triggered epoll ) ...

Map 的 getOrDefault(),putIfAbsent() 和 computeIfAbsent() 三个方法

2019-02-25
阅读 2 分钟
17.3k
假设我们定义下面一个 Map: {代码...} 如果我们要放一个元素进去,很多人会这么写: {代码...} 实际上从 Java 8 开始,Map 提供了 computeIfAbsent() 方法,我们可以写成一行即可: {代码...} 其中变量 k 是 Map 的 key。是不是很方便?但是除此之外,Map 还有两个方法:getOrDefault() 和 putIfAbsent(),这三个方法都...
封面图

【翻译】两行代码解决 RavenDB 性能问题

2019-01-16
阅读 2 分钟
1.7k
原文标题:Changing Fundamental Behavior With Two Lines of Code(用两行代码改变基础行为)

如何在账号之间迁移阿里云ECS

2019-01-08
阅读 2 分钟
5.3k
假设我们要从阿里云账号 A 迁移一台 ECS 服务器到阿里云账号 B,步骤如下: 1. 创建磁盘快照 登录阿里云账号 A,打开要迁移的主机磁盘列表,对每个磁盘创建快照。创建快照有两种方式: 直接创建快照,此时会立刻开始快照创建,根据磁盘大小需要等待。 设置自动快照策略,让阿里云在指定的时间(例如凌晨1:00)自动创建快...

如何使用 TODO 注释

2018-12-03
阅读 1 分钟
9.2k
在所有的注释中,有两个关键字是做特殊用处的,它们是 TODO 和 FIXME。 TODO 的作用是将等下要做的事情先记下来。下面是一个例子: 比如我们要实现一个 greetings() 方法,但是我们手头上有其他的紧急任务,所以先暂时在这里写个注释,把要做的事情描述一下。 为什么这个注释要以 TODO 开头呢?因为 IDE 会专门收集注释...

程序员怎样锻炼批判性思维

2018-10-20
阅读 2 分钟
2.3k
作为程序员,最重要的资本之一就是具有批判性思维的能力。不管你对编程语言有多精通,不管你写过多少行代码,如果你不能在工作当中采用横向或创造性的思维的话,你就不能做到高效地解决问题,或者用巧妙的方式来实现新的功能。

程序员这个职业到底怎么啦

2018-10-18
阅读 2 分钟
1.4k
当一个生意很赚钱的时候,什么乱七八糟的人都会想来做这个生意。这很正常。 当一个职业薪水高的时候,什么乱七八糟的人都会想从事这个职业。这也很正常。 程序员就是其中之一。 对其他高收入的职业来说,存在一个门槛,就是从业资质。它能保证进入这个行业的人,能满足一个最低标准,以确保这个职业的产出质量。 程序员...

一个技术债务的例子

2018-10-12
阅读 1 分钟
1.5k
我们有一个学校考试系统,其中一个功能就是发布考试项目的成绩。 今天说的不是发布成绩的功能,而是查看成绩发布状态的功能。这个简单的查询功能,会有什么样的技术债务呢? 最开始的时候,查询发布状态是这样的: 前端查询考试项目的成绩发布状态; 后端返回查询结果。1表示未发布,2表示已发布。 不能再简单了。 后来...

【译】软件开发的努力与成果

2018-10-07
阅读 1 分钟
2k
看看工厂里面,那些在流水线上组装电视的工人。如果有人停下来几分钟不做事,这意味着什么?意味着这段时间的产量就减少了,意味着每台电视的成本增加了。
封面图

“转码”、“签名”和“加密”

2018-07-19
阅读 2 分钟
3.9k
维基百科:在密码学中,加密(英语:Encryption)是将明文信息改变为难以读取的密文内容,使之不可读的过程。只有拥有解密方法的对象,经由解密过程,才能将密文还原为正常可读的内容。百度百科:数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为"密文",使其只...
封面图

【译】Quora 问答:为什么老师说我不适合编程?

2018-03-30
阅读 5 分钟
3.7k
Despite getting very high marks in programming (85 - 100), my professor told me that programming is not for me. He has even commented that I am a great coder. Why would he say this if I have done so well?

笨蛋都看得懂的二叉树介绍(Java)

2018-03-28
阅读 6 分钟
5k
本文专门针对笨蛋介绍如何编写二叉树,包括二叉树的结构、如何添加节点、如何删除节点。 首先介绍二叉树的结构。 二叉树的结构有三个要点: 每个节点最多有两个子节点,分别称作左子节点和右子节点。 每个节点的左子节点的值比它小,右子节点的值比它大。 每个节点的左子树每个节点的值都比它小,右子树每个节点的值都比...

来自投资银行的 10 个 Java 面试题

2018-03-25
阅读 4 分钟
6.4k
有为数不少的开发者希望能在像 Barclays、Credit Suisse、Citibank 等等那样的投资银行做 Java 开发工作,但是他们当中很多不知道自己会遇到什么样的面试题。

示例:如何多线程遍历组合

2018-03-21
阅读 4 分钟
3.2k
这是一个再简单不过的组合问题: 编号 0-9 的 10 个球里面拿取任意 5 个,有多少种不同的组合? 答案是可以用公式算出来的,也就是 (10!) / ((5!) ^ 2) = 252 个。但是如果要把它们全部遍历出来呢? 下面是一种效率比较高的遍历方式,原理是将所有结果集看作是树节点(准确的说是叶子节点),然后去遍历这棵树即可。树的...

MySQL 8.0 的关系数据库新特性

2018-03-17
阅读 3 分钟
9.5k
你可能已经知道 MySQL 从版本 5.7 开始提供了 NoSQL 存储的功能,在 8.0 中这部分功能也得到了一些改进,但鉴于这个在实际当中用得极少,本人也是没用过,所以本文不会介绍这方面的东西,而是关注其关系数据库方面。
封面图

强大的 String.format() 快速介绍

2018-03-11
阅读 2 分钟
45.8k
从 Java 5.0 开始,String 类新增了一个强大的字符串格式化方法 format()。这个方法到现在用的人还是不多,实在是一种浪费。本文带你快速过一遍这个方法的功能,将来你要用到格式化文本的时候,可能就不需要再借用第三方类库或自己去实现了。
封面图

Java 8 时间 API 快速入门

2018-03-05
阅读 3 分钟
10.8k
Java 8 出来很久了,各位也可能已经在用了,不过其中新的时间日期 API 可能很少人用,甚至不知道怎么上手。本文快速介绍一下其中的主要的类的概念和用法。
封面图

Collections 里面的几个你还不知道的方法

2018-03-01
阅读 2 分钟
3.7k
java.util.Collections 这个类你可能知道,也可能经常用里面的像 sort()、reverse() 这样的方法。但这个类当中还有几个方法,估计你到现在还不知道,还在自己手写循环来实现。
封面图

我是如何解决 kswapd0 占用率过高的问题的

2018-01-17
阅读 1 分钟
20.2k
首先我遇到了 kswapd0 占用率过高的问题: 我在网上找到的文章,基本上都是说出现这个问题是因为物理内存不足。 它喵的我的物理内存宽裕得很好不好! 最后实在不知道怎么回事,于是死马当作活马医,发送了一个 kill 给这个进程: {代码...} 然后肚子痛,上大号去了。 上完大号回来一看: 总之进程还在运行,但 CPU 掉下来...

介绍 Firefox 多开的方法

2017-12-27
阅读 2 分钟
13.7k
作为开发人员,在开发 Web 项目的时候免不了要打开浏览器测试一下,而如果某个功能需要多个帐号进行测试,那么来回切换登录也是够麻烦的。如果可以打开多个 Firefox 窗口,同时用不同的身份登录操作该多好。

Maven POM 模板

2017-12-22
阅读 3 分钟
3.3k
SpringBoot POM: [链接] 单独项目的 POM 模板: {代码...}

【译】十个刁钻的 Java 面试题

2017-12-20
阅读 2 分钟
3.8k
这里列出了十个常见而又刁钻的 Java 开发人员面试题及答案,这些题目是我从 StackOverflow 上找来的。如果你是初中级 Java 开发人员,而且近期准备面试的话,这些题目可能对你有些帮助。

Windows 下 Redis 快速搭建

2017-10-19
阅读 2 分钟
3.1k
Redis 官方没有 Windows 版,但是微软的开发人员移植了一个。页面中会有两种下载格式:.msi 安装包和 .zip 压缩包。本文仅介绍前者,因为用起来比较方便。

Java 9 的主要新特性

2017-09-21
阅读 1 分钟
4.9k
新增的 java.lang.ProcessHandle 类丰富了对进程的操作,同时原有的 java.lang.Process 类的功能也被加强了。

Java 机试题:解析命令行参数

2017-07-03
阅读 2 分钟
4.1k
一、根据下面的代码,实现 Arguments 类。 如果有需要,你可以根据自己喜好,创建另外的类来帮助实现 Arguments。 {代码...} 执行结果: {代码...} 二、为 Arguments 类添加自我解释功能 当用户没有输入任何参数时,打印帮助信息并退出。 代码示例: {代码...} 执行结果: {代码...} 三、允许参数别名 一个参数可以有简...

保持 CentOS 自动更新

2017-07-01
阅读 1 分钟
2.8k
我们很多主机一般都放在那里运行,只要不出问题是不管的。但是系统更新还是要保持,这个事情可以让主机自己去做。在 CentOS 下,可以通过安装 yum-cron 软件包来令主机定时自动更新。