Java 固定线程数、阻塞式提交任务的 ExecutorService 线程池

Java 自带的 Executors.newFixedThreadPool() 使用 LinkedBlockingQueue 存储已提交但未处理的任务,这会导致批量处理时 ExecutorService 会短时间内存储大量的任务在队列中。 我们基于 Thre...

2017/07/13 15:40
1K
路由器常识指南

路由器世界的信息不如普通电脑那么亲切近人,我们需要一些基础知识铺垫。 比特与字节的单位换算 速度计算中,b 与 B 是不同的单位,8 bit = 1 Byte,而 ps 是 per second 每秒的意思,也就是...

2017/06/06 11:55
138
XDU 翼讯账号算法

其实很简单,官方提供的是 tXXXXXXXXXXX@dx,将 @dx 前的 ASCII 码加 4 即可,再加上 {SRUN2} 前缀: 如学号 13130110001 的拨号用户名是 {SRUN2}x57574554445@dx,密码不变。 该算法的 Pyth...

xdu
2017/05/25 19:36
292
手动配置 OpenWrt 路由器的 DNS 服务

刚配置好 PPPoE 拨号,想 ping 一下互联网,就遇到了 DNS 问题: $ ping www.baidu.com ping: bad address 'www.baidu.com' 查看本机的 DNS 配置: $ cat /etc/resolv.conf search lan name...

2017/05/23 22:10
5W
Java 使用 ShutdownHook 实现平滑关闭

Java 提供名为 ShutdownHook 的钩子,能够允许你在程序正常退出前执行特定代码。一般用于清理资源、输出日志、保护当前正在执行的任务的执行。 ShutdownHook 是一个不立刻执行的 Thread,当程...

2017/04/28 18:28
880
一次因“CST”时区协商问题导致数据库时间戳错误的 debug 经历

名为 CST 的时区是一个很混乱的时区,在与 MySQL 协商会话时区时,Java 会误以为是 CST -0500,而非 CST +0800。

2017/04/28 14:24
1.6K
手动配置 Linux 路由器

Linux 系统的机器很简单就可以配置为路由器,使内网的其他机器能通过该机器连接到其他网络(如公网)。 首先要允许 IP 转发: 编辑 /etc/sysctl.conf 文件,添加一行 net.ipv4.ip_forward = ...

2017/04/19 20:07
116
探究 C++ 中多态、虚函数、虚函数表与 this 的关系

最近因为同学的一个问题,我研究了一下 C++ 的多态性。 先讲讲什么是重载(overload)、覆写(override)和多态(polymorphism)。 重载是:同一个方法名,不同入参对应不同函数,实际是不同...

C++
2017/03/28 14:58
483
通过 User-Agent 请求头判断设备类型

接到了一个要根据不同设备(Android/iOS)跳转到不同链接的需求,然后自然地想到使用 User-Agent 来判断设备类型。 我们就随机抓取了一些,分析字符串: Mac Mozilla/5.0 (Macintosh; Intel ...

2017/03/27 16:41
6.5K
Spring ApplicationContext 的生命周期钩子探究

Spring 提供了多种方法实现 Bean 在初始化和销毁时的回调: JSR-250 标准提供了一对注解 @PostConstruct 和 @PreDestroy,用于在类中标识某方法为生命周期钩子。 实现了 InitializingBean 接...

2017/03/22 12:33
470
RedisTemplate SCAN 命令的使用和注意事项

spring-data-redis 提供了 RedisTemplate 类以简化和统一对 Redis 的访问。 使用 HSCAN 命令类似于: String key = "key"; BoundHashOperations<String, String, Long> boundHashOps = redis...

2017/03/20 14:21
4.8W
Java 类库 URI 与 URL 的区别和联系

在计算机术语里,“URI 统一资源标识符”是个纯粹的句法结构,用于指定“标识网络资源的字符串”的各个不同部分。 URI 的格式为 [scheme:]scheme-specific-part[#fragment] schema 命名空间 ...

2017/03/15 21:10
2.8K
Java Runnable/Callable/Future/FutureTask/ExecutorService 关系解析

首先,我们知道 Runnable 接口是无返回值可执行代码的基础接口: public interface Runnable { void run(); } 自 Java 1.8 起该接口的匿名类可以简化为: Runnable r = () -> { }; 该 ...

2017/03/14 19:30
1.7K
Spring Boot 在命令行指定主类启动程序

Spring Boot 程序我们一般会设置使用 spring-boot-maven-plugin 来生成 jar 包。但当我们需要指定并执行其他类的 main 函数时,使用 -cp 参数却行不通。因为 Spring Boot 打包时做了处理,启...

2017/03/14 15:26
5K
mac curl: (58) SSL: Can't load the certificate and its private key: OSStatus -25299 的解决方案

这是在 mac 下 curl 使用 pem 证书时发生的问题。原因是 iOS/macOS 的默认 SSL 实现 Secure Transport 在指定证书字符串时只允许使用系统或用户钥匙串(Keychain)中的名称或 PKCS#12 编码的...

2017/03/13 20:21
1.5K
Spring Boot 发送邮件和使用模板渲染邮件内容

首先确认自己有邮件服务器。简单的话,需要知道发信协议、服务器地址、端口号、是否为加密通信。 然后确认自己有发信账号。需要知道用户名、密码。很多邮件服务的用户名就是你的邮箱,但这也...

2017/03/07 14:32
3.9K
Java 流式查询数据库

Java 的 MySQL JDBC 封装了游标操作。通过简单设置几个参数,就能实现分批次查询,避免一次返回数据过大导致 OOM。

2017/03/01 14:52
5.9K
使用 rvictl 暴露 iOS 设备网络接口

rvictl 是 Xcode Command Line Tools 中的实用工具,通过它可以将指定 UDID 的设备的网络接口暴露给 mac。 rvictl [-h][-l][-s <udid1> ... <udidN>][-x <udid1> ... <udidN>] Remote Virt...

2017/02/07 14:53
570
一次多模块 Spring Boot 项目 mvn package 失败的解决经验

我们不应该给 parent 项目添加 spring-boot-maven-plugin 构建插件,而应该给终端项目使用,因为这个插件的 repackage 目标会处理 jar 包,导致依赖它的模块无法使用它。...

2017/01/16 03:26
3W
认识 ElasticSearch Analyzer 分析器

做全文搜索就需要对文档分析、建索引。从文档中提取词元(Token)的算法称为分词器(Tokenizer),在分词前预处理的算法称为字符过滤器(Character Filter),进一步处理词元的算法称为词元过...

2017/01/12 15:45
3.1K

没有更多内容

加载失败,请刷新页面