2011年4月14日
摘要: 1、写两个线程,一个线程打印1-52,另一个线程打印字母A-Z。打印顺序为12A34B56C……5152Z。学习线程之间的通信协调关系。代码线程类Thread01package com.ljq.test;public class Thread01 implements Runnable { private Object obj; public Thread01(Object obj) { this.obj = obj; } public void run() { synchronized (obj) { for (int i = 1; i <= 26; i++) { System.out 阅读全文
posted @ 2011-04-14 17:03 Ruthless 阅读(2609) 评论(0) 推荐(1)
  2011年4月13日
摘要: 适当的使用索引可以提高数据检索速度,可以给经常需要进行查询的字段创建索引 oracle索引分为3种: normal: 可重复数据,普通索引unique: 数据不能重复,唯一索引bitmap: 位图索引创建索引的标准语法: CREATE INDEX 索引名 ON 表名 (列名) TABLESPACE 表空间名; 例如:CREATE INDEX idx_of_imsi ON uim_auth_file(imsi) TABLESPACE users; 创建唯一索引: CREATE unique INDEX 索引名 ON 表名 (列名) TABLESPACE 表空间名; 例如:CREATE UNIQU 阅读全文
posted @ 2011-04-13 16:53 Ruthless 阅读(1920) 评论(1) 推荐(1)
摘要: ORACLE有个高速缓冲的概念,这个高速缓冲就是存放执行过的SQL语句,那oracle在执行sql语句的时候要做很多工作,例如解析sql语句,估算索引利用率,绑定变量,读取数据块等等这些操作。假设高速缓冲里已经存储了执行过的sql语句,那就直接匹配执行了,少了步骤,自然就快了,但是经过测试会发现高速缓冲只对简单的表起作用,多表的情况完全没有效果,例如在查询单表的时候那叫一个快,但是假设连接多个表,就龟速了。最重要一点,ORACLE的高速缓冲是全字符匹配的,什么意思呢,看下面三个select--No.1select * from tableA;--No.2select * From tableA 阅读全文
posted @ 2011-04-13 14:20 Ruthless 阅读(26748) 评论(6) 推荐(8)
摘要: --oracle查找重复记录select * from tableA a where a.rowid>=(select min(rowid) from tableB b where a.column=b.column) --oracle删除重复记录delete from tableA a where a.rowid>=(select min(rowid) from tableB b where a.column=b.column) 阅读全文
posted @ 2011-04-13 11:24 Ruthless 阅读(1012) 评论(1) 推荐(1)
摘要: 一、多表联合查询 通过连接可以建立多表查询,多表查询的数据可以来自多个表,但是表之间必须有适当的连接条件。为了从多张表中查询,必须识别连接多张表的公共列。一般是在WHERE子句中用比较运算符指明连接的条件。 两个表连接有四种连接方式: * 相等连接 * 不等连接(看作单表查询) * 外连接* 自连接(自关联) 1.相等连接 通过两个表具有相同意义的列,可以建立相等连接条件。使用相等连接进行两个表的查询时,只有连接列上在两个表中都出现且值相等的行才会出现在查询结果中 显示雇员名称和所在部门的编号和名称。 执行以下查询: SELECT a.ename, b.id, b.dname FROM emp 阅读全文
posted @ 2011-04-13 10:45 Ruthless 阅读(17741) 评论(0) 推荐(1)
  2011年4月11日
摘要: 前天俺们谈到了加锁(线程同步),但是在使用加锁的同时又会带来一个问题,就是死锁。什么叫死锁?所谓死锁: 是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。发生死锁的原因一般是两个对象的锁相互等待造成的。那么为什么会产生死锁呢?1.因为系统资源不足。2.进程运行推进的顺序不合适。 3.资源分配不当。 学过操作系统的朋友都知道:产生死锁的条件有四个:1.互斥条件:所谓互斥就是进程在某一时间内独占资源。2.请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。3.不剥夺条件:进程已获得资源,在末使用完之前,不能强行剥夺。4. 阅读全文
posted @ 2011-04-11 23:21 Ruthless 阅读(37176) 评论(7) 推荐(2)
摘要: 本文转自http://jiangzhengjun.iteye.com/blog/652269中断线程线程的thread.interrupt()方法是中断线程,将会设置该线程为中断状态,即设置为true。线程中断后的结果是死亡、还是等待新的任务或是继续运行至下一步,取决于这个程序本身。线程会不时地检测这个中断标识位,以判断线程是否应该被中断(中断标识值是否为true)。它并不像stop方法那样会中断一个正在运行的线程。判断线程是否被中断判断某个线程是否已被中断,请使用Thread.currentThread().isInterrupted()方法(因为它将线程中断标识位设置为true后,不会立刻 阅读全文
posted @ 2011-04-11 17:04 Ruthless 阅读(14708) 评论(3) 推荐(3)
  2011年4月10日
摘要: 写一个程序,模拟4个售票窗口共同卖100张火车票的程序。 1:使用继承Thread类方式实现()。2:使用实现Runnable接口方式实现()。 第一种方式(没有共享数据,售票窗口各自买100张票,那4个售票窗口就有400张票) package com.ljq.test;/** * 使用Thread 阅读全文
posted @ 2011-04-10 20:41 Ruthless 阅读(14076) 评论(4) 推荐(2)
摘要: Thread类中run()和start()方法的区别如下:run()方法:在本线程内调用该Runnable对象的run()方法,可以重复多次调用;start()方法:启动一个线程,调用该Runnable对象的run()方法,不能多次启动一个线程; package com.ljq.test;public class ThreadTest { /** * 观察直接调用run()和用start()启动一个线程的差别 * * @param args * @throws Exception */ public static void main(String[] args){ Thread thread= 阅读全文
posted @ 2011-04-10 13:20 Ruthless 阅读(62278) 评论(3) 推荐(3)
  2011年4月8日
摘要: 以下内容转自http://blog.sina.com.cn/guoyalun如何创建和理解线程 曾经在学习操作系统的时候,进程是一个重点内容,线程也学习过,但是没有什么深刻的印象。在Java多线程的学习中对线程有了一个全面而深刻的理解。一个进程可以包含一个或多个线程,一个线程就是一个程序内部的一条执行线索。 创建多线程有两种方法:继承Thread类和实现Runnable接口。通过调用继承thread对象的start()方法就可以调用该类中的run()方法。如果想要将一段代码在一个新的线程上运行时,该代码就应该位于一个类的run函数中,并且run()函数所在的类是Tread类的子类。启动一个新的 阅读全文
posted @ 2011-04-08 16:37 Ruthless 阅读(5985) 评论(2) 推荐(1)
  2011年3月31日
摘要: package com.ljq.analyzer;import java.io.StringReader;import jeasy.analysis.MMAnalyzer;import org.apache.lucene.analysis.Analyzer;import org.apache.lucene.analysis.SimpleAnalyzer;import org.apache.lucene.analysis.Token;import org.apache.lucene.analysis.TokenStream;import org.apache.lucene.analysis.cj 阅读全文
posted @ 2011-03-31 22:39 Ruthless 阅读(2367) 评论(0) 推荐(1)
摘要: package com.ljq.one;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.InputStreamReader;import org.apache.lucene.analysis.Analyzer;import org.apache.lucene.analysis.standard.StandardAnalyzer;import org.apache.lucene.document.Document;import org.apache.lu 阅读全文
posted @ 2011-03-31 22:18 Ruthless 阅读(11110) 评论(0) 推荐(3)
  2011年3月30日
摘要: Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。 以下模拟一个简单的Lucene入门案例接下来为Lucene开发步骤:1、新建一个java工程,导入Lucene所需jar,如下图 目录结构其中:luceneds为数据源存储位置,luceneindex存放索引 阅读全文
posted @ 2011-03-30 23:08 Ruthless 阅读(5957) 评论(1) 推荐(1)
  2011年3月28日
摘要: DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含AJAX技术的网站.它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样。 以下模拟一个简单的dwr入门案例,重点理解dwr是如何跟java后台服务器打交道的模拟效果如下该功能说明了dwr是怎么跟后台服务器打交道的模拟从服务器加载下拉列表数据模拟保存功能模拟查询功能 接下来为dwr+spring集成步骤:1、新建一个web工程,导入dwr+spring所需jar,如下图 目录结构图 修改web.xml<?xml 阅读全文
posted @ 2011-03-28 21:25 Ruthless 阅读(21768) 评论(5) 推荐(3)
  2011年3月27日
摘要: 使用XMLHTTPRequest对象来进行AJAX的异步数据交互服务器端代码和请求页面请看http://www.cnblogs.com/linjiqin/archive/2011/03/26/1996629.htmljs代码如下://用户名校验的方法//使用XMLHTTPRequest对象来进行AJAX的异步数据交互var xmlhttp;function verify() { var userName = document.getElementById("userName").value; //1.创建XMLHttpRequest对象 //这是XMLHttpReuques 阅读全文
posted @ 2011-03-27 00:33 Ruthless 阅读(1601) 评论(2) 推荐(1)
摘要: 使用XMLHTTPRequest对象来进行AJAX的异步数据交互服务器端代码和请求页面请看http://www.cnblogs.com/linjiqin/archive/2011/03/24/1994463.htmljs代码如://用户名校验的方法//这个方法将使用XMLHTTPRequest对象来进行AJAX的异步数据交互var xmlhttp;function verify() { //0。使用dom的方式获取文本框中的值 //document.getElementById("userName")是dom中获取元素节点的一种方法,一个元素节点对应HTML页面中的一个标签 阅读全文
posted @ 2011-03-27 00:30 Ruthless 阅读(5092) 评论(0) 推荐(0)
  2011年3月26日
摘要: 以下使用jQuery+Servlet接受和处理xml数据,模拟判断用户名是否存在,效果如下:服务器端package com.ljq.test;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.ServletException;import java.io.IOException;import java.io.PrintWriter;/** * 利用 阅读全文
posted @ 2011-03-26 23:57 Ruthless 阅读(4234) 评论(0) 推荐(3)
  2011年3月25日
摘要: <select name="queryInfo.cityCode"> <!-- 服务器端代码如: public class QueryInfo { private String cityCode; //cityCode的getter、setter public String getCityCode() { return cityCode; } public void setCityCode(String cityCode) { this.cityCode = cityCode; } } private QueryInfo queryInfo; //quer 阅读全文
posted @ 2011-03-25 14:45 Ruthless 阅读(579) 评论(0) 推荐(1)
  2011年3月24日
摘要: 本案例通过jQuery和Servlet技术来判断用户名是否存在,让读者明白jQuery是怎么调用服务器后台的。还给出了解决中文乱码的方案和如何避免各种浏览器的缓存。 功能如下:如果用户名为空提示“用户名不能为空 ”如果用户名存在提示“用户名[xxxxxx]已经存在,请使用其他用户名, 4 ” 如果用户名不存在提示“用户名[xxxxxx]尚未存在,可以使用该用户名注册, 5”运行效果如下: 目录结构:服务器端AjaxServerpackage com.ljq.test;import java.io.IOException;import java.io.PrintWriter;import jav 阅读全文
posted @ 2011-03-24 23:38 Ruthless 阅读(2178) 评论(1) 推荐(0)
  2011年3月23日
摘要: 以下为myeclipse安装jQuery插件的安装步骤:1、在网上下载spket-1.6.12.zip压缩文件,解压后会看到eclipse目录下有features、plugins这两个文件夹2、把features、plugins这两个文件夹下的文件复制黏贴到D:\myeclipse6.5\myeclipse\eclipse\目录下(注意features、plugins要对应清楚哦),然后重启myeclipse3、重启myeclipse后,打开window -> preference -> spket -> javascript profiles -> new -> 阅读全文
posted @ 2011-03-23 22:43 Ruthless 阅读(3909) 评论(0) 推荐(1)