自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

学习笔记

好记性不如烂博客

  • 博客(305)
  • 资源 (36)
  • 收藏
  • 关注

转载 Lucene 3 中写自己的分词器Analyzer

转:http://blog.sina.com.cn/s/blog_4b3b7aff0100g3wh.htmlLucene的分词器部分是经常被修改的,我们实验室自己的分词器更适合自然语言处理,因此如何挂载自己的分词结果呢?在Lucene 3 中,发生了较大的变化。研究了半天,只需重写Tokenizer即可,关键是incrementToken()函数,用来向索引表写入词语数据和位移数据。其中的FM

2013-04-11 14:20:44 1405 1

原创 二、spring mvc模拟用户增删改查以及登录和上传文件的相关流程

1、工程结构:spring mvc的访问地址是使用REST风格2、web.xml的配置 hello org.springframework.web.servlet.DispatcherServlet contextConfigLocation WEB-INF/web-main.xml hello *

2013-04-05 23:03:38 35326 10

原创 一、spring mvc的获取参数和传递参数

1、工程结构在lib下面加入jar包,jar图片如下所示:2,配置web.xml,也就是spring mvc设置启动的servlet hello org.springframework.web.servlet.DispatcherServlet contextConfigLocation WEB-INF/web-main.xm

2013-04-05 22:39:20 124215 13

转载 在java web项目中慎用Executors以及非守护线程

转:http://www.iflym.com/index.php/code/dont-use-executors-and-nondaemon-thread-in-java-web.html    最近研究embeded tomcat,特别是关于tomcat启动和关闭的模块。通过查看相应的源代码, 我们知道tomcat的关闭是通过往相应的关闭端口发送指定的关闭指令来达到关闭tomcat的目的。但

2013-03-08 09:27:54 1654

原创 wait和notify在锁竞争中的执行顺序

sleep就是正在执行的线程主动让出cpu,cpu去执行其他线程,在sleep指定的时间过后,cpu才会回到这个线程上继续往下执行,如果当前线程进入了同步锁,sleep方法并不会释放锁,即使当前线程使用sleep方法让出了cpu,但其他被同步锁挡住了的线程也无法得到执行。wait是指在一个已经进入了同步锁的线程内,让自己暂时让出同步锁,以便其他正在等待此锁的线程可以得到同步锁并运行,只有其他线程调

2013-03-02 11:12:41 7978 2

转载 java Filter过滤器的执行步骤

转:http://wangtan471x.blog.163.com/blog/static/231009682012981119122/建立一个过滤器涉及下列五个步骤:1)建立一个实现Filter接口的类。这个类需要三个方法,分别是:doFilter、init和destroy。doFilter方法  包含主要的过滤代码(见第2步),init方法建立设置操作,而destroy方法

2013-02-27 11:18:19 13467

原创 jsp中监听器的使用

本内容是Servlet监听器是给Web应用增加事件处理机制,以便更好地监视和控制Web应用的状态变化,从而在后台调用相应处理程序。 监听对象监听接口监听事件ServletRequestServletRequestListenerServletRequestEventServlet

2013-02-27 08:48:58 20434 5

转载 lucene 排序 (Sort SortField 构造函数)

注意:   在lucene2.9中,排序的字段域必须indexed但是不能tokenized。因为虽然tokenized后虽然可以排序,但是有可能不是你想要的结果,因为tokenized可能会去除停用词或者大小写转换等。(in Lucene 2.9 and when reading java doc for the Sort class I noticed it says "The f

2013-02-17 17:20:11 12259

转载 怎样新建一个Java的Web Service

转:http://carlyzk.blog.163.com/blog/static/11262062011743610185/1. 创建一个WebService项目。(不需要是Java EE 5.0)2. 创建包与接口以及实现类。3. 加上WebService的包4. 编辑配置文件5. 部署后在浏览器中测试: http://local

2013-02-05 14:55:37 851

转载 初见memcached

转:http://my249645546.iteye.com/blog/1420061一、 概念Memcached是danga.com(运营LiveJournal的技术团队)开发的一套分布式内存对象缓存系统,用于在动态系统中减少数据库负载,提升性能。二、 适用场合1. 分布式应用。由于memcached本身基于分布式的系统,所以尤其适合大型的分布式系统。2.

2013-02-05 13:31:33 3341

转载 防止刷新/后退引起的重复提交问题的Java Token代码,非Struts

原理: 服务器端在处理客户端的请求之前,会将请求中包含的令牌值与保存在当前会话中的令牌值进行比较,看是否匹配。在处理完该请求后,并且在信息达到客户端之前,将产生一个新的令牌。该令牌值将会替换当前会话中的令牌值,并且传到客户端。这样如果用户回退到刚才的提交页面并再一次提交的话,客户端传过来的令牌与服务其中的令牌值不一致,从而有效的防止了提交Struts本身有一套完善的防止重复提交表单的T

2013-02-01 13:48:40 1014

原创 jdbc小知识点

1、JDBC的注册驱动是使用这行代码:Class.forName("org.gjt.mm.mysql.Driver");其实这行代码是生成一个class对象,而在生成的同时会执行该类的静态代码块,所以JDBC也就是在静态块中加载驱动代码static { try { java.sql.DriverManager.registerDriver(new Driver()); }

2013-02-01 01:15:28 781

转载 java内部类的作用分析

提起Java内部类(Inner Class)可能很多人不太熟悉,实际上类似的概念在C++里也有,那就是嵌套类(Nested Class),关于这两者的区别与联系,在下文中会有对比。内部类从表面上看,就是在类中又定义了一个类(下文会看到,内部类可以在很多地方定义),而实际上并没有那么简单,乍看上去内部类似乎有些多余,它的用处对于初学者来说可能并不是那么显著,但是随着对它的深入了解,你会发现Java的

2013-01-31 17:50:15 739

转载 synchronized

synchronized的一个简单例子public class TextThread { /** * @param args */ public static void main(String[] args) { // TODO 自动生成方法存根 TxtThread tt = new TxtThread(); new Thread(tt).start(); n

2013-01-29 13:36:38 1200

原创 request和response的知识

public class Demo1 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } //在s

2013-01-24 16:17:24 9411 3

原创 类加载器的委托机制

与普通程序不同的是,Java程序(class文件)并不是本地的可执行程序。当运行Java程序时,首先运行JVM(Java虚拟机),然后再把Java class加载到JVM里头运行,负责加载Java class的这部分就叫做Class Loader。中文叫做类加载器。Java虚拟机中可以安装多个类加载器,系统默认三个主要类加载器,每个类负责加载特定位置的类:BootStrap,ExtClassL

2013-01-23 00:43:59 5219 4

原创 使用CAS实现的非阻塞计数器

//使用CAS实现的非阻塞计数器public class CasCount { private SimulatedCAS value; public int getValue(){ return value.get(); } public int increment(){ int v; do{ v = value.get(); }while(v != value.c

2013-01-20 22:52:22 1166

原创 Condition的应用

JDK原话,假定有一个绑定的缓冲区,它支持 put 和 take 方法。如果试图在空的缓冲区上执行 take 操作,则在某一个项变得可用之前,线程将一直阻塞;如果试图在满的缓冲区上执行 put 操作,则在有空间变得可用之前,线程将一直阻塞。我们喜欢在单独的等待 set 中保存 put 线程和 take 线程,这样就可以在缓冲区中的项或空间变得可用时利用最佳规划,一次只通知一个线程。可以使用两个 C

2013-01-20 17:44:02 920

原创 用读写锁包装Map

ReadWriteMap使用了ReentrantReadWriteLock来包装Map,使得它能够在多线程间被安全的共享,并仍然能够避免“读-写”或者“写-写”冲突。现实中,ConcurentHashMap的性能已经足够好了(经查看源代码,里面的是每个hash计算后的散列区域作为锁,这个大大减少了锁之间的竞争),ConcurrentHashMap源码:public V get(Obje

2013-01-20 11:07:58 2424

原创 简单的线程工厂

public interface ThreadFactory根据需要创建新线程的对象。使用线程工厂就无需再手工编写对 new Thread 的调用了,从而允许应用程序使用特殊的线程子类、属性等等。 此接口最简单的实现就是:class SimpleThreadFactory implements ThreadFactory { public Thread newThread(Runna

2013-01-19 19:15:08 2091

原创 可实时调整运行中的线程个数

import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.util.Iterator;import java.util.List;import java.util.concurrent.Callable;import java.ut

2013-01-18 10:39:00 1209

转载 停止Java线程,小心interrupt()方法

转自http://www.blogjava.net/jinfeng_wang/archive/2008/04/27/196477.html 程序是很简易的。然而,在编程人员面前,多线程呈现出了一组新的难题,如果没有被恰当的解决,将导致意外的行为以及细微的、难以发现的错误。  在本篇文章中,我们针对这些难题之一:如何中断一个正在运行的线程。 背景     中断(Interrupt

2013-01-18 10:26:36 59248 11

原创 扩展线程池ThreadPoolExecutor的简单例子

import java.util.concurrent.BlockingQueue;import java.util.concurrent.SynchronousQueue;import java.util.concurrent.ThreadPoolExecutor;import java.util.concurrent.TimeUnit;//扩展线程池以提供日志和计时功能public

2013-01-15 00:38:45 3347

转载 SynchronousQueue的简单应用2

转:http://blog.csdn.net/orgcheng/article/details/7985503SynchronousQueue的定义如下public class SynchronousQueueextends AbstractQueueimplements BlockingQueue, Serializable从上面可以看出,它实现BlockingQ

2013-01-14 23:01:35 8987 6

原创 SynchronousQueue的简单应用1

使用jdk的原话:一种阻塞队列,其中每个 put 必须等待一个take,反之亦然。同步队列没有任何内部容量,甚至连一个队列的容量都没有。不能在同步队列上进行 peek,因为仅在试图要取得元素时,该元素才存在;除非另一个线程试图移除某个元素,否则也不能(使用任何方法)添加元素;也不能迭代队列,因为其中没有元素可用于迭代。队列的头 是尝试添加到队列中的首个已排队线程元素;如果没有已排队线程

2013-01-14 22:50:12 1797

原创 使用CompletionService批处理任务

如果你向Executor提交了一个批处理任务,并且希望在它们完成后获得结果。为此你可以保存与每个任务相关联的Future,然后不断地调用timeout为零的get,来检验Future是否完成。这样做固然可以,但却相当乏味。幸运的是,还有一个更好的方法:完成服务(Completion service)。CompletionService整合了Executor和BlockingQueue的功能。你

2013-01-13 13:01:27 20398 7

原创 使用Semaphore或Condition把任何容器转化为有界的阻塞容器

信号量被初始化为容器所期望容量的最大值。add操作在向底层容器中添加条目之前,需要先 获取一个许可。事实上,如果add操作没有能加入任何东西,它会立刻释放一个许可,同样,一个成功的remove操作释放一个许可,使更多的元素能够加入其中。我们常用的阻塞队列LinkedBlockingQueue是使用Condition来进行限制的,原理差不多。private final Condition n

2013-01-12 18:20:10 1437

原创 CountDownLatch和CyclicBarrier的简单应用1

import java.util.Random;import java.util.concurrent.CountDownLatch;public class Test11 { public static void main(String[] args) throws InterruptedException { Runnable task = new Runnable(){ @O

2013-01-12 17:07:49 808

转载 java 转html为pdf

转http://blog.csdn.net/is_zhoufeng/article/details/8244454最近有个需求转html为pdf 。用过itext 、 pd4ml  ,都不理想,不是样式有问题,就是页面大小有问题。 或字体有问题。 解决办法是通过wkhtmltopdf工具 , 下载地址为:http://code.google.com/p/wkhtmlto

2013-01-11 10:28:31 4523 2

转载 jxl 遭遇读取sheet错误,不能getRows jxl.common.AssertionFailed

转:http://blog.csdn.net/zb0567/article/details/6367889Warning: Text Object on sheet "Sheet1" not supported - omitting jxl.common.AssertionFailed at jxl.common.Assert.verify(Assert.java:37)

2013-01-08 10:51:37 5350

原创 thinking in java 笔记

1,多态,向上转型:解决的办法是后期绑定,它的含义就是在运行时根据对象的类型进行绑定。后期绑定也叫动态绑定或运行时绑定。java中除了static方法和final方法,(private方法属于final方法)之外,其他所有的方法都是后期绑定,这意味着通常情况下,我们不必判定是否应该进行后期绑定--它会自动发生。final方法可以有效地“关闭”动态绑定,但是这样做对程序的整体性能不会有什么改观。

2012-12-31 20:29:37 970

原创 Exchanger的简单示例

两个线程可以交换对象的同步点。每个线程都在进入 exchange 方法时给出某个对象,并接受其他线程返回时给出的对象。public class Test { public static void main(String[] args) { final Exchanger exch = new Exchanger(); ExecutorService exec = Executors

2012-12-30 14:44:51 656

转载 转java中的volatile的用法

转:http://nnssll.blog.51cto.com/902724/204458比如:int a = 10; int b = a; int c = a; 理论上来讲每次使用a的时候都应该从a的地址来读取变量值,但是这存在一个效率问题,就是每次使用a都要去内存中取变量值,然后再通过系统总线传到CPU处理,这样开销会很大。所以那些编译器优化者故作聪明,把a读进CPU

2012-12-29 15:13:04 526

原创 JAVA面试题解惑系列

转:http://zangweiren.iteye.com/blog/209895以下是偶看的一些笔记摘录:String str=new String("abc");紧接着这段代码之后的往往是这个问题,那就是这行代码究竟创建了几个String对象呢?相信大家对这道题并不陌生,答案也是众所周知的,2个。接下来我们就从这道题展开,一起回顾一下与创建String对象相关的一些JA

2012-12-08 11:39:42 1191

转载 解决document.form.submit()对象不支持此属性或方法

很奇怪的问题,呵呵。。被我碰到了。很简单,将页面中名称为"submit"的控件改一下名称就可以了比如:有一个submit按钮名字叫submit你把这个名称改一下-------------------------------------------------------------------这两天做列表数据显示的时候,几乎被"对象不支持此属性和方法

2012-11-26 17:58:12 7043 1

原创 为图片打上水印

import java.awt.*; import java.io.*; import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import java.awt.image.*; import com.sun.image.codec.jpeg.*; import j

2012-11-13 07:15:41 804

原创 网站广告模拟点击

/**此系统是模拟点击用户投放的广告,让用户所投放的网站广告提高点击率,难点是点击用户的广告需要加载比如站长工具之类的js统计代码,而且每个点击的ip不能相同,也就是要使用代理ip来实现点击,点击的REFERER必须是广告所投放的网站地址. 实现方式:java程序每准备点击一个广告,都修改注册表,从而达到修改浏览器代理服务器的地址.修改完成后启动一个浏览器来就行访问打开用户的广告地址,让浏览器来

2012-11-09 08:48:57 3914 1

原创 哲学家进餐问题

//这个进餐原理:死循环拿左边的筷子,拿到之后一次机会拿右边的筷子,如果拿不到,放下左边的筷子;依次循环public class ZXJ { public static void main(String[] args) { Chopstick k1 = new Chopstick("筷子一号"); Chopstick k2 = new Chopstick("筷子二号"); C

2012-11-01 12:25:07 1103

转载 lock-free线程安全算法

//Lock-Free算法,不需要加锁,通常都是由三个部分组成class Count1{ private AtomicInteger max = new AtomicInteger(); public void set(int value){ while(true){//1、循环 int current = max.get(); if(value > current){//满

2012-10-30 19:17:46 1475

原创 整形的++是否是原子性的示例

首先,整形的操作是非原子性的,需要使用同步手段来进行同步import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.atomic.AtomicInteger;import java.util.concurrent.locks.

2012-10-28 15:49:35 1133

android的数据库操作

android的sqllite数据库操作,增删改查及事务处理

2013-09-16

quartz实例用法

quartz实例用法

2013-09-10

android 布局管理

android 布局管理

2013-09-10

android电话拨号

android电话拨号简单事例

2013-09-09

黎活明 网上支付 工程源码

黎活明 网上支付 工程源码 黎活明 网上支付 工程源码

2013-08-23

近实时搜索SearcherManager

近实时搜索SearcherManager和NRTManager的使用

2013-05-05

tika提取文本内容

tika 工程 简便获取文本的java工具

2013-05-03

lucene 自定义评分

lucene 自定义评分 实现 增加自定义的权重

2013-05-01

lucene collector的使用

lucene collector的使用 lucen分组统计 collector

2013-04-28

lucene的分词的测试工程

lucene的分词的测试工程,包括分词器的比较,扩展停用词,同义词分词等

2013-04-21

lucene的查询语法事例

lucene的查询语法事例.

2013-04-14

lucene3.5的创建和增删改查

lucene3.5的创建和增删改查的工程

2013-04-14

lucene的列子

lucene的列子,包括创建搜索以及增删改查等

2013-04-12

spring mvc的例子

spring mvc 例子 有图片上传等功能

2013-04-05

wkhtmltox-0.11.0_rc1-installer.exe

wkhtmltox-0.11.0_rc1-installer.exe

2013-01-18

oschina+技术架构介绍.ppt

oschina+技术架构介绍 oschina+技术架构介绍

2012-03-13

JavaEye+技术架构.pdf

JavaEye 技术架构 pdf 内容详尽

2012-03-13

groovy的简单例子

groovy的简单例子

2014-08-29

log4j日志的工程

在开发的过程中,我们总会想看到更多的错误,这时候log4j便产生了作用,但是有时候我们总会把日志给打印在一个文件中,那我们如何对各个不同的模块的日志进行分不同的日志文件存放呢,比如dao、service、controller、error、jsp等不同层次的日志。

2014-05-27

spring的自带定时任务

spring的自带定时任务 基于注解和xml配置

2014-05-06

个推的使用

可以为手机端的app使用者推送消息,而不是通过手机上的app对用户发送消息。

2014-04-28

ibatis笔记

ibatis笔记,摘录自ibatis实战里面的内容

2014-04-19

锋利jquery笔记

锋利jquery 笔记

2014-03-10

jquery插件tablesorter例子

jquery插件tablesorter例子

2014-01-21

cobar client的例子

cobar client的例子,描述了cobar client的整个创建过程

2013-12-11

solr的增删改查和高亮以及分组

solr3.6的增删改查操作和高亮以及分组

2013-12-05

shiro 入门实例

shiro 入门实例 与spring进行整合

2013-11-21

zookeeper和dubbo简单例子

zookeeper和dubbo简单例子,使用maven进行构建

2013-11-14

android的内容提供者

android的内容提供者contentprovider的应用, 采用ContentProvider对外共享数据和监听ContentProvider中数据的变化

2013-09-26

android的数据库操作和列表展示

android的sqlite数据库操作和界面列表展示

2013-09-24

android的偏好设置

android 偏好设置,向用户提供软件参数设置功能

2013-09-15

android的xml操作

android的xml操作,pull解析和xml的生成

2013-09-15

android 单元测试

android 单元测试

2013-09-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除