使用 Java 8 函数接口避免 Null Check 发表于 2015-10-01 使用 OptionalOptional是核心类库的新成员,用来替换null。相信大家对NPE已经司空见惯,在代码里也有不少 null check,null 这个东西也是颇有争议的, 而Optional可以消除我们这种厌恶感,鼓励我们适当时候去检查null值,防止程序崩溃。 示例 :Shop.java ... 阅读全文 »
【JVM】 常用GC算法简介 发表于 2015-10-01 在对Java内存区域进行回收时, 我们会涉及到不同的算法, 这些算法或多或少都有自身的优缺点, 正因如此, 它们有着自己的用武之地(适合的内存区), 能在适合自己的场景下发挥长处. 可回收判断方法 在介绍回收算法前, 我们需要了解一下, 如何进行对象可回收的判断, 常见的有两种方法: 1 引用计数: ... 阅读全文 »
edup 无线网卡驱动安装 发表于 2015-08-22 最近买了一个新无线网卡, 可惜在linux上用时, 总是几分钟后就断, 停止working, 于是尝试安装官方光盘中的驱动, 竟然有许多编译错误...只能在网上找驱动了~~ 查询网卡型号使用lsusb -v查到usb无线网卡的相关信息, 如下: Bus 003 Device 002: ID 0bda ... 阅读全文 »
monit 监控 发表于 2015-07-18 Monit 是一个开源的非常实用的进程管理和监控工具,如Linux下的apache、nginx、MySql、FTP等服务都可以使用。 install # for RedHat/CentOS/Fedora/ yum install monit # for Ubuntu/Debian/Linux Min ... 阅读全文 »
vim 大法好 - 命令指南 发表于 2015-07-01 基本模式 命令模式 进入vim后, 默认就是命令模式. input模式 命令模式下, 输入i进入input模式, esc返回命令模式. 文本操作 文本选择 快捷键 说明 V selects entire lines v selects range of text ctrl ... 阅读全文 »
log 为什么使用isDebugEnable()和isTraceEnabled() 发表于 2015-05-30 今天看源码,发现许多框架的log部分都会有log.isTraceEnabled()之类的判断,然后再进行调用trace()打印日志。我不禁想,为什么不直接使用log.trace(),结果不是一样吗。但细细想来,肯定有原因的。 再看看if(isTraceEnabled()){}中的内容,有些打印日志的 ... 阅读全文 »
spring aop 简介 & JDK 动态代理 发表于 2015-05-01 aop 简介aop,全称:aspect-oriented programming,即是面向切面编程。aop和Ioc并称为spring的两大特性,但aop有什么用呢? 场景一: 对功能重复的代码,并被不同地方使用,我们都会把它简单的封装成util,以供调用。但是,我们并不能很好的灵活控制这个util ... 阅读全文 »
Python Scrapy 爬虫初体验 发表于 2015-03-30 之前写爬虫都是用Java,换成Python来写,开发速度应该会更快,今天就来试试。 初体验 安装 首先,安装Python(for Ubuntu): sudo apt-get install python-dev python-pip libxml2-dev libxslt1-dev zlib1g-d ... 阅读全文 »
slf4j 绑定机制浅析 发表于 2015-03-03 简介Simple Logging Facade for Java, 顾名思义,它是作为一个许多logging库(如log4j,logback,commons-logging等)的简单门面,提供一个简单统一的接口,从而使得最终用户能够很方便的使用和切换想要的logging实现。 可能你还是要问, 为什 ... 阅读全文 »
maven 模块聚合与继承 发表于 2015-01-02 在开发中,出于分工和设计和管理上的原因,我们无可避免地要进行分模块开发。虽然OSGi、Jigsaw都有涉及到模块化,但常见的应用中,我们会使用一些构建工具(如maven)进行模块的管理。 模块举个例子(示例代码),假设有两个模块:user-model,用来定义用户的领域对象;user-service ... 阅读全文 »