Fork me on GitHub
xpath入门笔记

xpath入门笔记

XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。 XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。 起初XPath的提出的初衷是将其作为一个通用的、介于XPointer与XSL间的语法模型。 但是XPath很快的被开发者采用来当作小型查询语言。 W3C网址: http://www.w3schools.com/XPath/ 表示法最常见的XPath表达式是路径表达式(XPath这一名称的另...

mqtt消息中间件mosquitto的安装和配置

mqtt消息中间件mosquitto的安装和配置

Mosquitto是一个开源(BSD许可证)的消息代理,实现MQTT(消息队列遥测传输)协议版本3.1.1。 MQTT(MQ Telemetry Transport),消息队列遥测传输协议,轻量级的发布/订阅协议, 适用于一些条件比较苛刻的环境,进行低带宽、不可靠或间歇性的通信。目前已经是物联网消息通信事实上的标准协议了。 值得一提的是mqtt提供三种不同质量的消息服务: “至多一次”:消息发布完全依赖底层 TCP/IP 网络。会发生消息丢失或重复。这一级别可用于如下...

Java8中的lambda表达式

Java8中的lambda表达式

2014年3月18日,Oracle终于发布Java8正式版。在新的版本里面加入了很多特性, 总共增加了55个新特性,其中最最吸引人的就是Lambdas表达式和Stream函数式编程,本文详细讲解这两个特性。 其他特性比如日期API,泛型,反射,注解,集合框架,并发,Nashorn引擎等等这里暂时就不详细介绍了。 具体可以参考:http://openjdk.java.net/projects/jdk8/features 昨天参加了Oracle的Java8宣讲活动,有幸目睹...

Java内存区域与内存溢出异常

Java内存区域与内存溢出异常

Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来。 按照《Java虚拟机规范(第2版)》的规定,Java虚拟机所管理的内存将包括以下几个运行时数据区域,来个图更加直观点,如下图所示: 程序计数器Program Counter Register是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的行号指示器。 每个线程都有一个独立的程序计数器,各个线程之间计数器互不影响,独立存储。此内存区域是唯一一个在J...

fastjson对Date的处理

fastjson对Date的处理

fastjson对日期的序列化方式 一种方法是通过注解 @JSONField (format="yyyy-MM-dd HH:mm:ss") public Date birthday; 另一种是通过SerializeConfig: private static SerializeConfig mapping = new SerializeConfig(); private static String dateFormat; static { ...

使用xmemcached客户端

使用xmemcached客户端

Xmemcached是基于java nio实现的高性能可扩展的memcached客户端。它的主要特点: 高性能,稳定可靠,已经在众多公司的众多项目里得到应用。 功能完备:客户端分布式、权重、最新最完整的协议支持。 可扩展,易于集成 可动态增删memached节点 客户端操作统计 NIO连接池 等等,更多信息请见wiki文档。 实例演示废话不多讲,先上代码: package xmemcache; import java.io.IOException; import ...

快速排序和二分查找

快速排序和二分查找

排序算法中最快的是快速排序算法,搜索算法中最快的是二分搜索算法。我也最喜欢这2 个算法。 因为它们是使用递归实现的,代码简洁清晰,效率又非常高。 根据我的理解,算法的本质就是数学。根据输入和设定的目标,采用有限的步骤实现输出。 通常,使用计算机实现的算法,都会用到循环,这样才能发挥计算机高速运算的优势。 循环和递归是等效的,这已经被科学家所证明。数学上没有循环,只有递归的概念,因此使用递归代替循环表示算法有很多好处: 递归的代码要比循环简洁很多,也优雅很多。 递归的代...

linux上安装memcached

linux上安装memcached

下载memcached与libevent的安装文件: memcached下载地址:memcached-1.4.15.tar.gz libevent下载地址:libevent-2.0.21-stable.tar.gz 具体安装步骤安装libevent 由于memcached依赖于libevent,因此需要安装libevent。由于linux系统可能默认已经安装libevent,执行命令:rpm -qa|grep libevent 查看系统是否带有该安装软件,如果有执...

回溯法解决八皇后问题

回溯法解决八皇后问题

八皇后问题是一个以国际象棋为背景的问题:如何能够在8×8的国际象棋棋盘上放置八个皇后, 使得任何一个皇后都无法直接吃掉其他的皇后?为了达到此目的,任两个皇后都不能处于同一条横行、纵行或斜线上。 八皇后问题可以推广为更一般的n皇后摆放问题:这时棋盘的大小变为n×n,而皇后个数也变成n。 当且仅当n = 1或n ≥ 4时问题有解 — 摘自八皇后问题wiki 利用回溯法解决# coding: utf-8 __author__ = 'Administrator'...

利用递归算法并行化解决谜题框架

利用递归算法并行化解决谜题框架

我们将谜题定义为:包含一个初始位置,一个目标位置,以及用于判断是否是有效移动的规则集。 规则集包含两部分:计算从指定位置开始的所有合法移动,以及每次移动的结果位置。 Java抽象下面先给出表示谜题的抽象类,其中的类型参数P和M表示位置类和移动类。根据这个接口, 我们可以写一个简单的串行求解程序,该程序将在谜题空间Puzzle Space中查找, 直到找到一个解答或者找遍了整个空间都没有发现答案。注:一个移动M代表一步 /** 表示 搬箱子 之类谜题的抽象类*/ publ...