JAVA
文章平均质量分 77
Java2King
淘宝。。。。数据平台
展开
-
SQL语句的解析方法
<br /> <br /> 数据是程序处理的主要内容,它一般存储在关系型数据库中,要操作它们最终必须要通过SQL语句来完成,因此,解读分析和处理SQL语句成为程序员的基本工作内容之一,当然有时这项任务是比较乏味的,如果让计算机来完成一些基本的分析解读工作如找出SQL语句涉及了哪些表,字段和条件等,可以帮助程序员解放出部分精力,投入到更有挑战性和复杂性的任务中去,本文将就如何解析单句SQL语句提出自己的解决方案和大家探讨,希望大家不吝批评指正。<br /> 首先说明以下单句SQL的范畴,它是指不存在嵌套的S转载 2010-11-03 15:27:00 · 4247 阅读 · 2 评论 -
Java软件架构师所需要的东西
作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从。我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水平的Java程序员们。 一、Java编程入门类对于没有Java编程经验的程序员要入门,随便读什么入门书籍都一样,这个阶段需要你快速的掌握Java基础语法和基本用法,宗旨就是“囫囵吞枣不求甚转载 2010-01-03 13:34:00 · 890 阅读 · 0 评论 -
DataInputStream与DataOutputStream的用法
DataInputStream与DataOutputStream的用法与注意事项import java.io.*; public class IOTest{ public static void main(String[] args) throws Exception{ FileInputStream in=new FileInputSt原创 2009-12-30 15:19:00 · 2610 阅读 · 0 评论 -
JAVA通过JNI调用本地C语言方法
Java特性深受人们喜爱,而又正由于它的跨平台的目的,使得它和本地机器的各种内部联系变得很少,约束了它的功能。解决JAVA对本地操作的一种方法就是JNI。 JAVA通过JNI调用本地方法,而本地方法是以库文件的形式存放的(在WINDOWS平台上是DLL文件形式,在UNIX机器上是SO文件形式)。通过调用本地的库文件的内部方法,使JAVA可以实现和本地机器的紧密联系,调用系统级的各接口方法。 简单介转载 2009-12-30 17:27:00 · 2215 阅读 · 0 评论 -
JAVA临时文件的读写
static File createTempFile(String prefix, String suffix) 在默认临时文件目录中创建一个空文件,使用给定前缀和后缀生成其名称。static File createTempFile(String prefix, String suff原创 2009-12-28 21:48:00 · 1815 阅读 · 0 评论 -
外部排序算法【java实现】
import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.util.ArrayList;import java.util.Arrays;im原创 2009-12-09 16:06:00 · 3951 阅读 · 0 评论 -
2-3-4树的分裂核心代码【JAVA实现】
2-3-4树节点分裂分两种情况。1:节点分裂;2:根的分裂。先要分裂的数据项设为A,B,C节点分裂1.创建一个新的空节点。它是要分裂节点的兄弟,在要分裂节点的右边。2.数据项C转移到新节点上。3.数据项B转移到要分裂节点的父节点上。4.数据项A保留在原来的节点上。5.最右边的两个子节点从要分裂节点处断开,连接到新节点上。根的分裂1.创建新的节点,作为根。原创 2009-12-06 15:59:00 · 1841 阅读 · 0 评论 -
Apache Solr 介绍
导言说起Apache Lucene,可以说无人不知,无人不晓,但是说道Apache Solr,恐怕知道的不多。看看Apache Solr的说明:Solr是一个基于Lucene java库的企业级搜索服务器,包含XML/HTTP,JSON API, 高亮查询结果,faceted search(不知道该如何翻译,片段式搜索),缓存,复制还有一个WEB管理界面。Solr运行在Serv转载 2010-01-22 15:14:00 · 1557 阅读 · 0 评论 -
Apache Solr 剖析
本文是Apache Solr介绍的姊妹篇,我将逐一分析Apache Solr的各个包,力图详细地分析Solr的设计和架构。Apache Solr由12个包组成,如下:org.apache.solr.analysis org.apache.solr.core org.apache.solr.request org.apache.solr.schema org.apache.s转载 2010-01-22 15:22:00 · 1495 阅读 · 0 评论 -
多路归并排序【JAVA实现】
对远远大于内存的数据进行外排序,在多路比较的时候用败者树效率会更高。这个算法可以在建立倒排索引的时候使用 package my.sort;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.BufferedWriter;import j原创 2010-01-07 17:40:00 · 5147 阅读 · 1 评论 -
Lucene的多线程访问原则和同步,锁机制
本文介绍lucene多线程环境下的使用原则和commit.lock与write.lock实现的锁机制。设计之初就是服务于多线程环境,大多数情况下索引会被不至一个线程访问。索引时一个关键资源。在对这样的资源进行访问时,不可避免地会出现同步访问的问题。因此需要有很好的策略来处理这些并发访问,以保证资源的合理使用。对索引的非法访问可能导致索引数据异常,进而毁坏重要的数据,导致整个系统的失败。原创 2010-03-24 19:41:00 · 1982 阅读 · 0 评论 -
ant教程详解--javac,java,jar,war,delete,copy,mkdir,move等指令(收藏)
Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能。在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作。一. 安装与配置下载地址:http://ant.apache.org/,在本文中下载的是1.7.0版本。解压到某个目录(例如E:"apache-ant-1.7.0),即可使用。添加系统环境转载 2010-04-06 20:58:00 · 953 阅读 · 0 评论 -
JSON — Java与JSON数据互转
转换时Bean所要求的:被转换的Bean必需是public的。Bean被转换的属性一定要有对应的get方法,且一定要是public的。Bean中不能用引用自身的this的属性,否则运行时出现et.sf.json.JSONException: There is a cycle in the hierarchy!异常json-lib包转换时,不能以null为键名,否则运行报net.sf.json.JSONException:java.lang.NullPointerException:JSON keys mus原创 2010-11-02 17:24:00 · 4953 阅读 · 1 评论 -
Java中多态的实现机制
<br /> <br />多态性是面向对象程序设计代码重用的一个重要机制,我们曾不只一次的提到Java多态性。在Java运行时多态性:继承和接口的实现一文中,我们曾详细介绍了Java实现运行时多态性的动态方法调度;今天我们再次深入Java核心,一起学习Java中多态性的实现。<br />“polymorphism(多态)”一词来自希腊语,意为“多种形式”。多数Java程序员把多态看作对象的一种能力,使其能调用正确的方法版本。尽管如此,这种面向实现的观点导致了多态的神奇功能,胜于仅仅把多态看成纯粹的概念。<b转载 2010-10-29 15:20:00 · 5248 阅读 · 0 评论 -
java.util.concurrent 多线程框架
<br />JDK5中的一个亮点就是将Doug Lea的并发库引入到Java标准库中。Doug Lea确实是一个牛人,能教书,能出书,能编码,不过这在国外还是比较普遍的,而国内的教授们就相差太远了。<br />一般的服务器都需要线程池,比如Web、FTP等服务器,不过它们一般都自己实现了线程池,比如以前介绍过的Tomcat、Resin和Jetty等,现在有了JDK5,我们就没有必要重复造车轮了,直接使用就可以,何况使用也很方便,性能也非常高。<br />package concurrent;import转载 2010-09-10 14:53:00 · 1816 阅读 · 1 评论 -
CONSISTENT HASHING算法实现
在做服务器负载均衡时候可供选择的负载均衡的算法有很多,包括: 轮循算法(Round Robin)、哈希算法(HASH)、最少连接算法(Least Connection)、响应速度算法(Response Time)、加权法(Weighted )等。其中哈希算法是最为常用的算法. 典型的应用场景是: 有N台服务器提供缓存服务,需要对服务器进行负载均衡,将请求平均分发到每台服务器上,每台机器负责1/N的服务。 常用的算法是对hash结果取余数 (hash() mod N):对机器编号从0到N-1转载 2010-08-13 16:15:00 · 1084 阅读 · 0 评论 -
一个不错的java缓存实现,有空好好研究下
原理图实现方法* 用 HashMap 来存储和用来做 CacheKey 查找。* 用一个LinkedList来存储访问顺序列表* 用一个LinkedList来存储添加时间顺序列表,即过期时间。* HashMap 中 Key 为 CacheKey, Value 包装成一个CacheObject* CacheObject 包含:1) object size2) 指向 Access List 节点的指针3) 指向 Age List 节点的指针其中两个List的作用1) AccessList当添加新元素且 List原创 2010-06-14 22:24:00 · 4384 阅读 · 0 评论 -
基于Java Socket的网络服务端小程序
关键词:socket ServerSocket 多线程 服务端 主程序监听一端口,等待客户接入;同时构造一个线程类,准备接管会话。当一个Socket会话产生后,将这个会话交给线程处理,然后主程序继续监听。运用Thread类或Runnable接口来实现是不错的办法。Java源代码:import java.io.*;import java.net.*;public class Server extends ServerSocket{private static final int SERVER_原创 2010-06-03 20:57:00 · 1351 阅读 · 0 评论 -
hashtable和hashmap的区别
<br /> <br />1.最明显的区别在于Hashtable 是同步的(每个方法都是synchronized),而HashMap则不是.<br /> <br />2.HashMap继承至AbstractMap,Hashtable继承至Dictionary ,前者为Map的骨干, 其内部已经实现了Map所需要做的大部分工作, 它的子类只需要实现它的少量方法即可具有Map的多项特性。而后者内部都为抽象方法,需要它的实现类一一作自己的实现,且该类已过时<br /> <br />3.HashMap允许将null原创 2010-07-01 19:08:00 · 1108 阅读 · 0 评论 -
阿里巴巴B2B Java实习生面试题
一次普通的电话面试,问了很多问题,记得的就这么几个。B2B侧重于业务,所以问了很多关于项目的问题,和web框架,java基础也很重要。针对实习生所以题目难度不是很大,基本都能说上来。只是淘宝的问题更合我胃口,更有挑战性B2B比较注重java底层、J2EE、数据库、并发、业务、学习能力1、自我介绍(还好我昨天准备了下)2、某个项目中遇到的最大问题3、团队成员间如何更好的协作4、项目的总体框架,模块的测试5、项目中用到的设计模式6、系统的安全性7、除了JSP还用过什么视图显示8、关于Ajax的问题,没接触过,题原创 2010-06-25 19:46:00 · 3391 阅读 · 0 评论 -
java对各种文件的操作详解
java中提供了io类库,可以轻松的用java实现对文件的各种操作。下面就来说一下如何用java来实现这些操作。 新建目录 <% //String URL = request.getRequestURI(); String filePath="C://测试//"; filePath=filePath.toString();//中文转换转载 2009-11-01 14:02:00 · 1379 阅读 · 0 评论 -
Heritrix的多线程ToeThread和ToePool
想要更有效更快速的抓取网页内容,则必须采用多线程。Heritrix中提供了一个标准的线程池ToePool,它用于管理所有的抓取线程。 ToePool和ToeThread都位于org.archive.crawler.framework包中。前面已经说过ToePool的初始化,是在 CrawlController的initialize()方法中完成的。来看一下ToePool以及ToeThread是如何原创 2009-10-27 21:00:00 · 1118 阅读 · 0 评论 -
java常见错误以及可能原因
0、 需要标识符 a) 不在函数内 1、 非法表达式开始 b) 可能:丢失括号 . 2. no data found a) 可能:setInt(1,100)中,没有100这个值 3. 找不到符号 a) 可能:没导入包 4. 指定了无效URL a) 可能:数据库名或IP错误,即连接出错 5. 类路径没有找到 a)转载 2009-07-31 19:44:00 · 1784 阅读 · 0 评论 -
java正则表达式:group()详解
import java.util.*;import java.util.regex.Matcher;import java.util.regex.Pattern; public class Fenzhu ...{ public static void ma原创 2009-07-30 18:52:00 · 10961 阅读 · 0 评论 -
JAVA 10大常见异常
NO.1 java.lang.NullPointerExceptio 这个异常大家肯定都经常遇到,异常的解释是 "程序遇上了空指针",简单地说就是调用了未经初始化的对象或者是不存在的对象,这个错误经常出现在创建图片,调用数组这些操作中,比如图片未经初始化,或者图片创建时的路径错误等等。对数组操作中出现空指针,很多情况下是一些刚开始学习编程的朋友常犯的错误,即把数组的初始化和转载 2009-07-21 14:45:00 · 822 阅读 · 0 评论 -
JFileChooser的使用
其实JFileChooser基本使用方法还是很简单的,下面写两个示例看了就明白了,如果还要增加一些功能,我们还可以添加过滤器,只显示过滤后的文件。还可以再保存的时候,如果保存的是目录里已经存在的文件,那么对话框不会关闭,并且弹出一个JOptionPane提示用户是否保存文件。 打开文件对话框:import java.io.File;import javax.swing.JFileChoos转载 2009-05-11 23:11:00 · 1457 阅读 · 0 评论 -
java集合类
Vector的方法都是同步的(Synchronized),是线程安全的(thread-safe),而ArrayList的方法不是,由于线程的同步必然要影响性能,因此,ArrayList的性能比Vector好。 当Vector或ArrayList中的元素超过它的初始大小时,Vector会将它的容量翻倍,而ArrayList只增加50%的大小,这样,ArrayList就有利于节约内存空间。 Hasht转载 2009-05-07 21:21:00 · 1333 阅读 · 0 评论 -
java文件操作【列出指定目录下的文件】
package book.io;import java.io.File;import java.io.FilenameFilter;/*** File类的list方法返回该目录下的所有文件(包括目录)的文件名,文件名不含路径信息* File类的listFiles方法返回目录下的所有文件(包括目录)的File对象* FilenameFilter是文件名过滤器接口类,所有自定义的文件名过滤器必转载 2009-04-20 20:32:00 · 7220 阅读 · 2 评论 -
JAVA工厂模式详解
工厂模式定义:提供创建对象的接口.为何使用?工厂模式是我们最常用的模式了,著名的Jive论坛 ,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见。为什么工厂模式是如此常用?因为工厂模式就相当于创建实例对象的new,我们经常要根据类Class生成实例对象,如A a=new A() 工厂模式也是用来创建实例对象的,所以以后new时就要多个心眼,是否可以考虑实用工厂模式,虽然这样转载 2009-03-17 23:52:00 · 3130 阅读 · 3 评论 -
Java栈与堆
----对这两个概念的不明好久,终于找到一篇好文,拿来共享 1. 栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。 2. 栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。另外,栈数据可以共享,详见第3点。堆的优势是可以动态地分配内存转载 2009-02-24 00:00:00 · 675 阅读 · 0 评论 -
Java中的static介绍
static修饰的成员变量:static修饰的成员变量也叫类变量或全局变量,在类被加载时static修饰的成员变量被初始化,与类关联,只要类存在,static变量就存在。一个static变量单独划分一块存储空间,不与具体的对象绑定在一起,该存储空间被类的各个对象所共享。也就是说当声明一个对象时,并不产生static变量的拷贝,而是该类所有的实例对象共用同一个static变量。stati转载 2009-08-11 14:24:00 · 854 阅读 · 0 评论 -
利用Java反射机制完成XML到对象的解析
对于一些小批量的数据,如果采用数据库来存取的话,未免有点大题小作,使用XML文件是个不错的方法,尤其是在一些Web应用中,经常需要缓存一部分数据,如果将这些数据形成XML文件,解析后放入一个Hashtable,那就能大大加快访问的速度。由于工作的需要,写了一个解析工具,将XML解析成相应的对象列表。以下是源代码,希望对大家有所帮助,更希望大家帮我来改进这个工具。pa转载 2009-08-13 14:48:00 · 1131 阅读 · 0 评论 -
java读取xml配置文件
使用DOM解析XML文档时,需要读入整个XML文档,然后在内存中创建DOM树,生成DOM树上的每个节点对象。只有在整个DOM树创建完毕后,我们才能做其他的操作,即使我们只需要修改根元素节点的第二个子节点,仍然需要在进行这个小小的修改之间分析整个文档,在内存中构建文档树。当XML文档比较大时,构建DOM树将花费大量的时间和内存。 一种替代的技术就是使用SAX,SAX允许你在读取文转载 2009-08-13 18:19:00 · 1890 阅读 · 0 评论 -
Hash算法大全
Hash算法有很多很多种类。具体的可以参考之前我写的Hash算法的一些分析。本处给大家提供一个集合了很多使用的Hash算法的类,应该可以满足不少人的需要的: Java代码 /** * Hash算法大全 * 推荐使用FNV1算法 * @algorithm None * @author Goodzzp 2006-11-20 * @lastEdi转载 2009-10-25 11:05:00 · 2441 阅读 · 1 评论 -
java中Vector,ArrayList,List使用剖析
线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构。这些类均在java.util包中。本文试图通过简单的描述,向读者阐述各个类的作用以及如何正确使用这些类。 Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └Set Map ├Hashtable ├HashMap原创 2009-06-23 20:31:00 · 862 阅读 · 0 评论 -
使用 dom4j 创建 修改 XML
dom4j 是一种解析 XML 文档的开放源代码 XML 框架。本文介绍如何使用包含在 dom4j 中的解析器创建并修改 XML 文档。 dom4j API 包含一个解析 XML 文档的工具。本文中将使用这个解析器创建一个示例 XML 文档。清单 1 显示了这个示例 XML 文档,catalog.xml。 清单 1. 示例 XML 文档(catalog.xml)转载 2009-08-14 12:38:00 · 1154 阅读 · 0 评论 -
Serializable java序列化介绍
Bean Serializable Interface的接口让BEAN可以串行化,将其变成一个可保存为以后使用的二进制流。当一个BEAN被系列化到磁盘上或者其他任何地方,其状态被保存起来,其中的属性值也不会改变。在BEAN的规范中,JSP并没有要求BEAN实现Serializable接口。但是,如果您希望自己控制您所创建的组件的serialization进程,或者您想serialize转载 2009-08-16 15:45:00 · 1355 阅读 · 0 评论 -
dom4j读写xml文件
首先我们给出一段示例程序:import java.io.File;import java.io.FileWriter;import java.util.Iterator;import org.dom4j.Document;import org.dom4j.DocumentHelper;import转载 2009-08-16 13:29:00 · 783 阅读 · 0 评论 -
dom4j操作xml大全
dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。dom4j是一个非常非常优秀的Java XMLAPI,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件,可以在SourceForge上找到它。在IBMdeveloperWorks上面可以找到一篇文章,对主流的Java XMLAPI进行的性能、功能和易用性的评测,dom4j无论在那个转载 2009-08-14 11:04:00 · 1143 阅读 · 1 评论 -
Java中四种XML解析技术
在平时工作中,难免会遇到把 XML 作为数据存储格式。面对目前种类繁多的解决方案,哪个最适合我们呢?在这篇文章中,我对这四种主流方案做一个不完全评测,仅仅针对遍历 XML 这块来测试,因为遍历 XML 是工作中使用最多的(至少我认为)。 预 备 测试环境: AMD 毒龙1.4G OC 1.5G、256M DDR333、Windows2000 Server S转载 2009-08-13 21:49:00 · 726 阅读 · 0 评论