摘要: Redis是一个开源的分布式缓存框架,它也常被理解为数据结构服务器,因为它包含丰富的数据类型,如strings, hashes, lists, sets, sorted sets, bitmaps and hyperloglogs。Redis的全称是Remote Dictionary Server(... 阅读全文
posted @ 2014-09-28 11:49 sam zeng6 阅读(473) 评论(0) 推荐(0)
摘要: 线程同步是为了让多个线程在共享数据时,保持数据的一致性。举个例子,有两个人同时取钱,假设用户账户余额是1000,第一个用户取钱800,在第一个用户取钱的同时,第二个用户取钱600。银行规定,用户不允许透支,当余额不足时,应该取钱失败。我们先来看一下,如果线程不同步,会出现什么情况。代码如下:public class SynchronizeApp { /** * @param args */ public static void main(String[] args) { // 获得账户 Account account = new Acco... 阅读全文
posted @ 2014-02-14 10:01 sam zeng6 阅读(206) 评论(0) 推荐(0)
摘要: 在Java开发中,多线程是很常用的,用得好的话,可以提高程序的性能。首先先来看一下线程和进程的区别:1,一个应用程序就是一个进程,一个进程中有一个或多个线程。一个进程至少要有一个主线程。线程可以看做是轻量级的进程。(lightweight process)2,多个线程可以共享进程的资源。进程之间是独立的,一个进程不能共享其它进程的资源。3,因为系统创建进程需要为其分配空间,所以创建进程的代价高,创建线程的代价则要小得多。创建线程的方式:Java中创建多线程有3中方式:1,继承Thread类。一个类继承Thread类并且重写了run方法之后,如果新建这个类的实例,并调用start方法,那么系统就 阅读全文
posted @ 2014-02-12 16:17 sam zeng6 阅读(781) 评论(2) 推荐(0)
摘要: 使用Java自带的MessageDigest类可以轻松实现MD5加密,只不过加密后得到的是byte数组,我们需要将其转换为16进制的字符。代码如下:package com.stepsoft.test;import java.security.MessageDigest;/*** * * @auth... 阅读全文
posted @ 2014-11-30 13:33 sam zeng6 阅读(485) 评论(0) 推荐(0)
摘要: 发送邮件是很常用的功能,注册验证,找回密码,到货通知,欠费提醒等,都可以通过邮件来提醒。Java中发送邮件需要使用javax.mail.jar包,读者可以上网搜索或去官方下载,下载地址为:下面贴上发送邮件的核心代码。 1 // Get system properties 2 Prop... 阅读全文
posted @ 2014-10-27 12:03 sam zeng6 阅读(2386) 评论(0) 推荐(1)
摘要: 这一节主要介绍Redis支持的数据结构及常用命令。数据类型Redis支持多种数据类型的存储,包括字符,列表,集合,有续集合,哈希表,bit数组,超级日志等。下面分别介绍:strings:存储普通字符。Lists:列表,通常是有序的,根据插入的顺序排列的链表。 利用List的有序性,可以模拟消息队列。... 阅读全文
posted @ 2014-09-28 14:12 sam zeng6 阅读(745) 评论(0) 推荐(0)
摘要: Lucene的分词器中使用了装饰模式,之前不太理解,今天花点时间消化一下。定义:装饰模式允许程序动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。UML图举个例子:假如你是卖手抓饼的,你卖两种手抓饼,大号和小号,同时买家可以随意加生菜,鸡蛋,火腿肠,培根等。如果用继承,想想有多麻烦。这时装饰模式就派上用场了,代码如下: 1 public class Program { 2 3 /** 4 * @param args 5 */ 6 public static void main(String[] args) { 7 ... 阅读全文
posted @ 2013-10-12 14:03 sam zeng6 阅读(256) 评论(0) 推荐(0)