
Java
文章平均质量分 52
W-大泡泡
这个作者很懒,什么都没留下…
展开
-
搜狗微信公众号抓取
由于搜狗的反爬原因,不能直接对搜狗上面检索结果进行抓取,首先应先对操作进行抓包分析: 一、抓包分析: 1、搜狗微信公众号检索界面: 2、抓包获取对应的HTTP Referer: HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器藉此可以获得一些信息用于处理。比如从我主页上链接到一个朋友那里原创 2016-10-08 18:06:16 · 5736 阅读 · 1 评论 -
Lucene系列 - 索引(七) - 对数据库记录建立索引
数据库本就具有检索功能,使用标准的Sql语句很容易从一个表中获取指定的内容。 另一方面,越来越多的应用系统要求文本的模糊查找,各大数据库厂商提供了各种全文检索的索引功能,来支持全文检索,但是效果一般,尤其是在大数据量的情况下,对服务器和系统的设置都要求专业人士来维护。 另一方面企业级检索、本地检索的发展,要求把不同的数据源通过同一的方式检索出来,实现异构信息的整合,把各种非结构化数据、半结构化数原创 2017-04-06 19:08:38 · 3386 阅读 · 0 评论 -
Lucene系列 - 索引(八) - 对索引进行优化与合并
Lucene索引的一个重要特征是支持增量索引。 可以保持原有的索引内容基础上,创建一系列新的子索引。子索引创建完成后,可以自动添加到索引段中,索引段膨胀到一定程度后,又可以自动添加到更大的索引段中。最后可以通过合并和优化生成一个索引文件。可以说lucene的索引建立过程就是一系列的索引合并过程。 首先利用自动合并功能,合并最小的单元;然后利用addIndexes命令可以把指定的索引合并起来。原创 2017-04-06 19:55:37 · 2545 阅读 · 0 评论 -
Lucene系列 - 查询处理(一) - Lucene 信息查询原理
6.1 信息查询原理: 6.1.1 信息查询概述 6.1.2 查询基本流程 6.1.3 查询结果显示 6.1.4 高性能查询搜索引擎需要处理大数据量的文档,所有文档都经过索引过程完成了预处理。 预处理后的文档库使用倒排索引结构,搜索引擎的信息查询采用了索引查询的方法。6.1.1 信息查询概述:在全文检索领域,信息查询的基础方式: - 1、顺序查询原创 2017-04-07 15:00:26 · 467 阅读 · 0 评论 -
Lucene系列 - 查询处理(二) - Lucene 信息查询概述及实例
6.2 Lucene查询概述: 6.2.1 查询操作基础 6.2.2 查询入门实例 6.2.3 查询工具IndexSearcher类 6.2.4 查询封装Query类 6.2.5 查询分析器QueryParser类 6.2.6 查询结果集Hits类6.2.1 查询操作基础:一个有效的搜索查询器需要具备: 检索查询词分析功能、索引文件访原创 2017-04-07 15:04:36 · 362 阅读 · 0 评论 -
Lucene系列 - 多线程下建立索引
package com.gangwu.lucene.demo;import java.io.File;import java.io.IOException;import org.apache.lucene.analysis.standard.StandardAnalyzer;import org.apache.lucene.document.Document;import org.apache原创 2017-04-07 17:26:18 · 1012 阅读 · 0 评论 -
利用POI读取老版本的word和excel以及txt文件的内容
本文记录自己平时用到的,利用POI接口,对老版本的word和excel以及txt文件进行内容读取操作。package com.zte.lucene.tools;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;原创 2017-04-01 15:30:57 · 2040 阅读 · 0 评论 -
Log4j2 + Maven的配置文件示例详解
一、配置Maven:pom.xml <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <log4j2.version>2.6.2</log4j2.version> </properties> <dependency>原创 2017-04-11 15:36:52 · 23861 阅读 · 0 评论 -
Lucene中的近实时搜索SearcherManager
近实时搜索(near-real-time)可以搜索IndexWriter还未commit的内容。Index索引的刷新过程:只有IndexWriter上的commit操作才会导致Ram Directory内存上的数据完全同步到文件。 IndexWriter提供了实时获得reader的API,这个调用将会导致flush操作,生成新的segment,但不会commit (fsync),从而减少了IO。新原创 2017-04-01 18:11:17 · 1920 阅读 · 0 评论 -
Lucene系列 - 索引(一) - 文档索引原理
5.1 文档索引原理: 5.1.1 索引概述: 5.1.2 索引基本结构 5.1.3 倒排索引原理 5.1.4 索引分类 5.1.5 高性能索引5.1.1 索引概述: 索引是一种数组存储和组织结构。主要用于从大量文件中快速的查找到某个指定的信息。 完成信息检索的建立、维护和管理功能软件叫做索引器(文本信息处理系统),通常采用倒排文件索引构造索引系原创 2017-04-06 20:09:33 · 738 阅读 · 0 评论 -
Lucene系列 - 索引(二) - Lucene索引器的索引结构(多文件/复合索引结构)
5.2 Lucene索引器: 5.2.1 Lucene索引介绍 5.2.2 Lucene索引结构 5.2.3 多文件索引结构 5.2.4 复合索引结构5.2.1 Lucene索引介绍: 文档索引 是 Lucene系统的核心功能。 有专门的API用来实现索引的建立和管理功能。可处理多种格式的文档,如磁盘文件、电子邮件地址、网页及数据库记录等。 Lucene原创 2017-04-06 20:14:47 · 3917 阅读 · 0 评论 -
Lucene系列 - 索引(三) - Lucene索引实例
.3 Lucene索引实例: 5.2.1 索引创建代码解析 5.2.2 索引创建器(IndexWriter) 5.2.3 索引管理器(IndexReader) 5.2.4 索引修改器(IndexModifier) 5.2.5 索引分析器(Analyzer)5.2.1 索引创建代码解析索引系统可以采用IndexWriter来创建一个具体的索引,涉及四个原创 2017-04-06 20:17:49 · 610 阅读 · 0 评论 -
Lucene系列 - 索引(四) - Lucene索引操作
5.4 Lucene索引操作: 5.4.1 添加文本文件索引 5.4.2 创建Lucene增量索引 5.4.3 使用索引项删除文档 5.4.4 使用编号删除文档 5.4.5 压缩文档编号 5.4.6 索引文档更新5.4.1 添加文本文件索引:使用IndexWriter来进行。 大致构建步骤: 定义索引文件存储路径 -> 打开待索原创 2017-04-06 20:19:19 · 603 阅读 · 0 评论 -
Lucene系列 - 索引(五) - Lucene索引高级特性:索引优化与同步锁
5.5 Lucene索引高级特性: 5.5.1 选择索引域类型: 5.5.2 索引参数优化: 5.5.3 使用磁盘索引: 5.5.4 使用内存索引: 5.5.5 同步与锁机制:5.5.1 选择索引域类型:1、尽量减少不必要的存储: Store.NO不存储/YES存储/COMPRESS压缩存储原始内容 eg:Field fieldI原创 2017-04-06 20:22:46 · 1094 阅读 · 0 评论 -
spring mvc配置redis缓存
在applicationContext.xml中配置:<bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig"> <property name="maxIdle" value="300" /> <property name="maxActive" value="600" /> <property name="原创 2017-04-19 22:08:17 · 4902 阅读 · 1 评论 -
Luecne基本原理:在Maven项目中简单环境搭建测试
Lucene 是一个高效的基于java的全文索引库。全文检索的索引的创建过程一般有以下几步:如何创建索引:第一步:准备需要索引的原始文档数据集(Document)文件格式有多种。本文以文本用一般的txt、word和excel文档作为示例数据集。第二步:将原文档传给分词组件(Tokenizer)将文档分成一个个单独的词去除标点符号去除停用词(stop word)第三步:将得到的词元(Token原创 2017-04-01 16:18:51 · 1063 阅读 · 0 评论 -
接口和抽象类概念和区别
一、概念接口和抽象类的概念: 抽象类: 在面向对象的领域内,一切都是对象,所有的对象都是通过类来进行描述的,但并不是所有的类都是用来描述对象的。如果一个类没有足够的信息来描述一个具体的对象,需要其他类来支持,那么这样的类就是抽象类。 eg: new Animal(),我们知道这是产生一个动物Animal对象,但是这个Animal对象具体是什么、什么样子,我们并不清楚,它是一个抽象的物体,不原创 2017-01-22 11:26:13 · 773 阅读 · 0 评论 -
Java 多线程之 - 守护线程 java.lang.Thread.isDaemon()方法
在java中有两类线程:用户线程和守护线程(User Thread 和 Daemon Thread)。守护线程:守护线程是运行在后台的一种特殊进程,它独立于控制终端,并且周期性地执行某种任务或着等待处理某些发生的事件。也就是在程序运行的时候在后台提供一种通用服务的线程,就像 垃圾回收线程一样,并且守护线程并不是程序中不可缺少的部分。当所有的非守护线程即用户线程结束,程序也就终止了,同时还会kill掉原创 2017-03-08 20:17:49 · 10309 阅读 · 1 评论 -
Lucene系列 - 索引(六) - 创建本地搜索的索引
整理记录了在Lucene 4版本中的遍历读取本地文件夹数据,并创建索引的过程。package com.gwu.lucene.tools;import java.io.File;import java.io.FileReader;import java.io.IOException;import org.apache.log4j.Logger;import org.apache.lucene.a原创 2017-04-06 16:54:04 · 1762 阅读 · 0 评论 -
java读取文件内容,解析Json格式数据
一、读取txt文件内容(Json格式数据): public static String reader(String filePath) { try { File file = new File(filePath); if (file.isFile() && file.exists()) { Inpu原创 2016-09-29 11:23:27 · 24795 阅读 · 0 评论 -
Java读取Excel文件内容
通过jxl.jar来对Excel数据表进行访问读取,(下载地址)读取Excel文件: private static void readExcel() { try { File file = new File("e://data//data.xls"); Workbook workbook = Workboo原创 2016-10-12 10:05:20 · 583 阅读 · 0 评论 -
executeBatch()批量执行Sql语句
executeBatch()方法:用于成批地执行SQL语句,但不能执行返回值是ResultSet结果集的SQL语句,而是直接执行stmt.executeBatch(); addBatch():向批处理中加入一个更新语句。 clearBatch():清空批处理中的更新语句 public void executeBatch() throws SQLException { C原创 2016-10-14 14:46:07 · 27218 阅读 · 0 评论 -
批量执行Sql语句,MySQL存储过程Java复现
通常,我们在进行数据操作时,通过定义存储过程会带来很大的便捷,但是如果存储过程中间出现错误,并且该过程中执行sql语句众多,排查错误就会变得很困难,会花费很大的时间去查找确认错误的缘由,可以将原定义的存储过程改写为Java代码,这样方便错误的排查。一、MySQL存储过程: 示例:UpdateSeriesDataInfo - - 存储过程参数:Id1 int, Id2 intBEGIN原创 2016-10-13 18:24:02 · 2770 阅读 · 0 评论 -
execute(),executeQuery(),executeUpdate()和executeBatch()的使用与区别
在开发过程中,我们常需要对数据库进行操作,就避免不了执行各种sql语句,就会遇到execute(),executeQuery()和executeUpdate()这个三个执行sql语句的方法,如果使用不当,就会导致我们执行报错,如:update语句需要executeUpdate()方法来执行,如果你选择使用了executeQuery(),系统就会提示错误,执行失败。Statement 接口提供了三种原创 2016-10-14 20:03:45 · 30075 阅读 · 1 评论 -
插入MySQL数据库前去除重复数据的几种方法
若数据不存在插入,存在更新使用duplicate key关键字,如插入数据时发生主键冲突就更新数据使用Ingore关键字使用replace into关键字一、若数据不存在插入,存在更新: private void saveBrand(List<BrandEntity> brandList) { String sql = null; Conn原创 2016-10-15 14:06:07 · 6550 阅读 · 1 评论 -
Java循环中自定义标签
在C语言中,goto语句也被称为无条件转移语句,通常与条件语句配合使用。可用来实现条件转移, 构成循环,跳出循环体等功能。而在Java语言中goto是保留关键字,但是在Java中我们也可以在特定的情况下,通过特殊的手段来实现goto所能达到的功能效果,即:(特定环境:只有在循环体内,比如for、while语句(含do…while语句)等语句中。)(特殊手段:通过自定义标签,结合循环控制关键字brea原创 2016-10-15 11:15:44 · 1150 阅读 · 0 评论 -
"\u00A0"空格替换
替换空格过程中,常会出现空格replace没有效果,打印出来是”?”,如果修改下编辑器的编码,可能就会解决该问题,但就会导致该类与整个项目的编码格式不同,服务器部署时就会出现编译乱码问题; 在eclipse中打开16进制值显示,可以看到我们要替换的空格,它的16进制值为\u00A0 的含义实际上是指不间断的空格,实际上我们常用的空格应该的转义序列应该是”\u0020”。所以这样特殊的空格应这样替换原创 2016-10-26 10:33:08 · 26915 阅读 · 1 评论 -
对字符串进行MD5数字签名加密
给指定字符串通过MD5进行加密,MD5的作用是让大容量信息在用数字签名软件签署私人密钥前被”压缩”成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串)。除了MD5以外,其中比较有名的还有sha-1、RIPEMD以及Haval等。import java.io.UnsupportedEncodingException;import java.security.MessageDig原创 2016-10-26 18:09:12 · 8366 阅读 · 0 评论 -
“事务”理解
一、事务: 事务(Transaction),是指访问并可能更新数据库中各种数据项的一个程序执行单元(Unit),通俗点也就是指针对数据库中形形色色的数据,我们进行一些存取操作。 事务通常是由用户编写的程序执行所引起的,并用形如begin transaction和end transaction语句(或函数调用)来界定。事务由事务开始(begin transaction)和事务结束(end原创 2016-12-01 18:44:30 · 4857 阅读 · 0 评论 -
用soap调用webservice的WSDL服务
调用webservice的wsdl服务,通过soap来调用获取数据 public String getPostResult(String result) throws IOException{ String url = "http://webservice.XXXX.asmx"; HttpClient httpclient = new DefaultHttpCl原创 2016-11-24 16:02:39 · 1894 阅读 · 0 评论 -
Java中对象和引用的理解
偶然想起Java中对象和引用的基本概念,为了加深下对此的理解和认识,特地整理一下相关的知识点,通过具体实例从两者的概念和区别两方面去更形象的认识理解,再去记忆。一、对象和引用的概念: 在Java中万物皆对象,比如我们定义一个简单的动物类:class Animal { String count; String weight; ....}有了这个Animal类之后,我们可以原创 2017-01-10 16:14:46 · 7686 阅读 · 0 评论 -
java中,引用对象时常遇到的问题
在Java中,常常遇到一些问题,如创建对象时,直接 声明一个对象(String data;),new 出一个对象(String data = new String(“a”);) 和 直接“= null”(String data = null;) 或者”String data = “a”; “这三种创建方式各自是什么意思,有什么作用,有什么区别,使用时会产生什么样的后果?为了搞清楚这四个方面的问题,原创 2017-01-10 18:46:58 · 593 阅读 · 0 评论 -
Java多线程:线程安全和非线程安全的集合对象
一、概念:线程安全:就是当多线程访问时,采用了加锁的机制;即当一个线程访问该类的某个数据时,会对这个数据进行保护,其他线程不能对其访问,直到该线程读取完之后,其他线程才可以使用。防止出现数据不一致或者数据被污染的情况。线程不安全:就是不提供数据访问时的数据保护,多个线程能够同时操作某个数据,从而出现数据不一致或者数据污染的情况。对于线程不安全的问题,一般会使用synchronized关键字加锁原创 2017-01-19 12:03:58 · 21944 阅读 · 0 评论 -
Object类实现了哪几种方法
一、Object类实现了哪些方法:Object是所有类的父类,任何类都默认继承Object。Object类实现了9种方法:1、clone方法: protected Object clone() 创建并返回此对象的一个副本。 保护方法,实现对象的浅复制,只有实现了Cloneable接口才可以调用此方法,否则会抛出CloneNotSupportException异常。2、getClass方法: C原创 2017-02-18 18:27:04 · 1533 阅读 · 0 评论 -
Java面向对象的特性和跨平台性
一、Java面向对象的三大特性:Java语言的三大特性为:封装、继承、多态 – 封装: 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构, 同时也保护了数据。对外界而言它的内部细节是隐藏的,暴露给外界的只是它的访问方法。 属性可以用来描述同一类事物的特征,方法可以描述一类事物的操作。封装就是把属于同一类事物的共性(即属性和方法等)原创 2017-02-22 22:06:06 · 4345 阅读 · 0 评论 -
Java多线程方面的问题
不管大大小小的面试,几乎都会问到多线程的问题,自己也吃过很多亏,所以抽时间整理一下关于多线程相关的面试常见的一些问题,做个笔记,方便日后快速查阅。1、什么是多线程及使用多线程有什么优缺点?概念: 多线程是指从软件或者硬件上实现多个线程并发执行的技术,具有多线程能力的计算机有硬件支持而能够在同一时间执行多个线程,进而提升整体处理性能;通俗讲也就是多个线程同时处理我们待处理的任务,从而提高效率。优点:原创 2017-02-22 21:36:04 · 356 阅读 · 0 评论 -
将Excel表格多个Sheet表的数据转换为SQL存储语句
将Excel表格多个Sheet表的数据转换为SQL存储语句 如:将 转换为:import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import j原创 2016-12-01 18:55:43 · 800 阅读 · 0 评论 -
Java将多个数据表导出多个Sheet到Excel文件
将MySQL数据库中的多个表导出到Excel文件,并在一个Excel文件中以多个sheet的形式存储下来。 1、建立Excel文件,并获取数据表数据: private static void process(String[] sqls) { Connection conn = getMySqlConnection(); HSSFWorkbook workboo原创 2016-10-18 16:24:08 · 4392 阅读 · 2 评论 -
获取新榜微信公众号指数信息,并服务器上部署
一、分析: 新榜地址:这里写链接内容 接口发现: http://www.newrank.cn/xdnphb/data/weixinuser/searchWeixinDataByCondition 请求方式:post表单数据: - filter: - hasDeal:false - keyName:汽车 - order:NRI - nonce:8f44b75a9 - xy原创 2016-09-28 11:21:03 · 6859 阅读 · 2 评论