自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Christophe2008的专栏

向软件工程师出发

  • 博客(30)
  • 资源 (3)
  • 收藏
  • 关注

转载 20个常用的经典JAVA代码片段

1. 字符串有整型的相互转换String a = String.valueOf(2);   //integer to numeric stringint i = Integer.parseInt(a); //numeric string to an int2. 向文件末尾添加内容BufferedWriter out = null;try {out =

2013-06-25 17:47:50 7705

原创 使用Java StAX API(XML Stream Process API)写的XMLParser

最近我使用Java StAX API(XML Stream Process API)写的XMLParser。具体说明以后补充。代码如下:public class XmlParser implements IParser { private XMLEventReader reader; private BufferedReader bufferedReader; private st

2012-09-28 16:00:12 1398

转载 使用Socket进行对类linux系统的连接和发送命令

最近在做一个项目需要用java实现用ssh,telnet连接linux然后发送命令。很多种连接方式底层都是使用Socket方式连接的。简单言之,Socket是一个包含了IP address + port number的应用程序接口API,是网络上互连的两个机器上的进程间的通信(communication)的端点。最近在看TCP/IP 协议时对,Socket是建立在传输层上的应用程序的接口。传输层定

2012-08-20 16:07:14 5155

原创 对开发技术的一点思考

最近,看了《锤子和钉子》那篇文章后,我对在开发系统时应该选择什么技术什么编程语言开始有了一些思考。我们平常的思路是我们比较熟悉某种编程语言和技术的时候就会不假思考地偏向于使用那种语言和技术,反而没有仔细考虑过在此种应用情景中采用何种技术更加有利和可扩展。打个比方说,你有一堆大小不一的钉子,你可以选择一把“通用”的大锤子,虽然可以应付大多数情况,但是用起来费劲,需要花很多精力。你也可以根据钉子的不同

2012-08-01 21:48:38 850

转载 锤子和钉子

编者按:各行各业都有自己的工具,这些“工具”不仅仅是机械实物,更是处理问题的方式和思维的方法。也许是因为太熟悉自己的“工具”,我们总会用这把“黄金大锤”去敲击生活中遇到的一切“钉子”。以至于很多时候,明明有简单有效的解决方法,我们却视而不见,非要用自己的“锤子”将问题复杂化。 作者:刘未鹏 (一)有这么一句古老的箴言:如果你手里有一把锤子,所有东西看上去都像钉子。

2012-07-31 16:23:04 2134

转载 百度2012实习生招聘笔试题目(java 方向)

1.给一个单词a,如果通过交换单词中字母的顺序可以得到另外的单词b,那么b是a的兄弟单词,比如单词army和mary互为兄弟单词。现在要给出一种解决方案,对于用户输入的单词,根据给定的字典找出输入单词有那些兄弟单词。请具体说明数据结构和查询流程,要求时间和空间效率尽可能地高。2.线程进程的区别和联系?什么是线程安全?3.c和c++如何动态分配释放内存?区别?4.爬虫URL,两个单链表-

2012-05-07 00:07:44 2278

转载 如何有效率地使用时间

在网上看到李开复先生对于如何有效率地利用时间的回答,觉得受益匪浅,对我很有用,所以把他的回答转载到我的博客上,勉励自己。人的一生两个最大的财富是:你的才华和你的时间。才华越来越多,但是时间越来越少,我们的一生可以说是用时间来换取才华。如果一天天过去了,我们的时间少了,而才华没有增加,那就是虚度了时光。所以,我们必须节省时间,有效率地使用时间。如何有效率地利用时间呢?我有下面几个建议:

2012-02-24 20:34:03 1125

转载 HBase机制介绍

一、简介history started by chad walters and jim2006.11 G release paper on BigTable2007.2 inital HBase prototype created as Hadoop contrib2007.10 First useable Hbase2008.1 Hadoop be

2012-01-18 15:52:11 4348

转载 hadoop作业调优参数整理及原理

1 Map side tuning参数1.1 MapTask运行内部原理当map task开始运算,并产生中间数据时,其产生的中间结果并非直接就简单的写入磁盘。这中间的过程比较复杂,并且利用到了内存buffer来进行已经产生的部分结果的缓存,并在内存buffer中进行一些预排序来优化整个map的性能。如上图所示,每一个map都会对应存在一个内存buffer(MapOutpu

2012-01-12 16:59:56 918

原创 HBase的基本概念和我遇到的问题解决方法

最近在学习Hadoop和HBase,现在总结一下HBase的一些基本概念,理解好后使用和开发更容易。HBase是一个分布式的、面向列的数据存储系统。它在HDFS基础上提供随机读写的功能。HBase有如下特性,没有真正的索引,自动分区,线性扩展和对于新结点的自动处理,普通商用硬件支持,容错,批处理。1、HBase逻辑结构行,列,列族和单元格(cell)。行是由许多列组成,那些列按列族分组。列

2012-01-08 11:13:50 2948 1

原创 Hadoop学习笔记一:MapReduce的工作机制

最近开始学习Hadoop和Hbase的相关内容,把自己在看的《Hadoop:The Definitive Guide》里的内容总结一下,有助于理解,也就是温故而知新了。首先是了解Hadoop中的MapReduce工作机制。MapReduce作业的运行过程如图6-1所示。包含4个独立的实体:(1)Client:提交MapReduce作业,(2)JobTracker:协调作业的运行。(3)TaskTr

2011-12-25 22:22:19 6904

转载 Java读取工程里的文件

我们会经常遇到这样的问题,工程里有一个文件,Java程序要读取这个文件,不采用绝对路径的方法,而使用相对路径来读取文件。以后迁移到其他机器上就不会出现读取文件失败的问题了。以下就介绍java如何读取相对路径的文件。1.java project环境,使用java.io用相对路径读取文件的例子: *目录结构:  DecisionTree            |___src

2011-12-16 17:26:30 29294

转载 书写是为了更好的思考

思考当然离不开大脑,但是你有没有想过让你的文字帮你一起思考?在未鹏看来,书写可以帮助我们更好地进行思考。他在文中提到了五点书写对于思维的好处,其中有自己读书时的摘录,同时也不乏自身的诸多感悟。文章不长,但是启发性很强,与广大读者共勉。我经常在走路和睡前总结所学

2011-07-05 15:41:10 705

转载 MySQL触发器

       最近我想在一个表插入或删除数据时同时更新另外一个表,我考虑是使用触发器还是存储过程。在网上查阅了一些资料。触发器与存储过程的主要区别是触发器是数据库相应某个事件后主动调用的,而存储过程是由程序员被动调用的。有一个形象的比喻,触发器是地雷,存储过程是手榴弹。下面是从网上搜到的触发器的基本知识。     在触发器中你可以使用在函数中使用的语句。特别举个例子:         

2011-06-21 19:42:00 2379

原创 回溯法

<br /> 算24点问题<br />问题描述:给定4个正整数,用算术运算符 +, -, *, / 将这4个正整数连接起来,是最终的得数恰为24点。<br />    数据输入:由文件input.txt给出输入数据,第一行有4个正整数。<br />    结果输出:将计算24的算术表达式输出到文件output.txt。如果有多个满足要求的表达式,只要输出一组,每一步算式用分号隔开。如果无法得到24则输出“No Solution!”。<br />    输入文件示例:1 2 3 7<br />    输出文件

2011-05-27 21:30:00 2402

转载 图的常用算法的Java实现

<br />/** * <p>Title: 图的遍历、最小生成树、最短路径</p> * * * <p>Description: * * 采用邻接矩阵做为图存储结构,有权无向图,不相连的值为 -1 * * 图的遍历中深度遍历采用递归方法,广度遍历使用辅助队列 * * 最小生成树采用克鲁斯卡尔(Kruskal)算法,使用一数组记录节点的连通情况 * * 图的最短路径采用迪杰斯特拉(Dijkstra)算法,使用队列记录依次途经的路径 *

2011-05-14 21:18:00 9677

转载 Ubuntu下MySQL的常用命令

<br />三种安装方式:<br />  1. 从网上安装 sudo apt-get install mysql-server。装完已经自动配置好环境变量,可以直接使用mysql的命令。<br />    注:建议将/etc/apt/source.list中的cn改成us,美国的服务器比中国的快很多。<br />  2. 安装离线包,以mysql-5.0.45-linux-i686-icc-glibc23.tar.gz为例。<br />  3. 二进制包安装:安装完成已经自动配置好环境变量,可以直接使用my

2011-05-12 20:02:00 1106

原创 贪心算法

<br />数列极差问题<br />问题描述:在黑板上写了N个正整数组成的一个数列,进行如下操作:每次擦去其中的两个数a和b,然后在数列中加入一个数a×b+1,如此下去直至黑板上剩下一个数,在所有按这种操作方式最后得到的数中,最大的为max,最小的为min,则该数列的极差定义为M=max-min。<br />    算法设计:对于给定的数列,计算极差M。<br />分析:用贪心算法来做,首先来看怎样来求最大值与最小值,设有三数x<y<z,按题目算法来做结果有下面三种:num1=(x*y+1)*z+1=xyz

2011-04-21 15:15:00 2861

原创 动态规划

<br />独立任务最优调度问题<br />问题描述:<br />用2台处理机A和B处理n个作业。设第i个作业交给机器A处理时所需要的时间是a[i],若由机器B来处理,则所需要的时间是b[i]。现在要求每个作业只能由一台机器处理,每台机器都不能同时处理两个作业。设计一个动态规划算法,使得这两台机器处理完这n个作业的时间最短(从任何一台机器开工到最后一台机器停工的总的时间)。研究一个实例:n=6, a = {2, 5, 7, 10, 5, 2}, b = {3, 8, 4, 11, 3, 4}。<br />编

2011-04-21 15:13:00 1794

原创 递归与分治策略——集合划分问题,众数问题

集合划分问题n个元素的集合{1,2,.,n }可以划分为若干个非空子集。例如,当n=4 时,集合{1,2,3,4}可以划分为15个不同的非空子集如下:{1},{2},{3},{4}}, {{1,2},{3},{4}},{{1,3},{2},{4}}, {{1,4},{2},{3}},{{2,3},{1},{4}}, {{2,4},{1},{3}},{{3,4},{1},{2}}, {{1,2},{3,4}},{{1,3},{2,4}}, {{1,4},{2,3}},{{1,2,3},{4}}, {{1,2,

2011-04-21 15:05:00 7791 1

原创 Solr的配置及从数据库建立索引

1、Solr简介   Solr是一个基于Lucene的Java搜索引擎服务器。Solr提供了层面搜索、命中醒目显示并且支持多种输出格式(包括XML/XSLT和JSON格式)。它易于安装和配置,而且附带了一个基于HTTP的管理界面。Solr已经在众多大型的网站中使用,较为成熟和稳定。Solr包装并扩展了Lucene,所以Solr的基本上沿用了Lucene的相关术语。更重要的是,Solr创建的索引与Lucene搜索引擎库完全兼容。通过对Solr进行

2011-04-02 20:24:00 19085 2

原创 Struts2 发邮件找回密码

       今天项目里有这样的要求:用户注册的时候 要填写邮箱。忘记密码 的时候,发送指定的邮箱,在邮件中一个有效时间为一个小时的链接,点击这个链接,可以更改密码。在网上搜索到一些资料,将思路整理如下。      首先建一张表ab,存放用户名、URL信息和创建URL时间。邮件发送的URL一定是唯一的。可以通过发送时间和用户ID组合起来MD5 32位或64位加密来生成唯一ID。(用UUID生成也可,保证唯一性就OK。)      假设生成的URL地址是http://www.test.com/forgotPa

2011-03-19 22:39:00 3278 5

转载 Java调用外部程序命令

<br />Java调用外部程序命令主要用到两个类: <br /><br />java.lang.Runtime <br />每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。可以通过 getRuntime 方法获取当前运行时。应用程序不能创建自己的 Runtime 类实例。 <br /><br />java.lang.Process <br />ProcessBuilder.start() 和 Runtime.exec 方法创建一个本机进程,并返回 Proces

2011-02-21 22:44:00 2990

转载 Java 调用Shell脚本

<br />       最近我的项目要我在WebService里用Java调用Linux下的Shell 脚本,在网上找了一些资料,以供学习。<br />地址:http://brian.pontarelli.com/2005/11/11/java-runtime-exec-can-hang/      Java Runtime exec can hang<br />November 11, 2005 on 4:40 pm | In Java | <br />The next version of Savan

2010-11-30 22:03:00 10276 1

转载 成就Google的Page Rank技术

<br />       在google的搜索结果中,PR值越高的网页排在越前面。<br />        网页权重的算法有很多种,为何我唯独选择了page rank来讨论,不仅因为它是Google搜索引擎采用的搜索结果排名算法之核心,且它把整个互联网当做一个整体来对待且最终依靠经典的数学模型精准地得到web上网页的权重。<br />虽然今天的搜索引擎的排名系统远远要比这个算法复杂。域名数据,内容质量,用户数据,建站时间等都可能被考虑进去,但是page rank算法仍然是核心的技术之一,使得Google名

2010-11-22 16:24:00 1126

转载 使用myEclipse,tomcat 和Axis发布webService

一.准备工作:1.         安装axis。去官方网站http://ws.apache.org/axis/下载axis包,然后解压到任何一个目录。本例使用的是axis-bin-1_4.tar.gz ,解压到E:/axis-bin-1_4/axis-1_4。2.         开发环境准备。本例使用MyEclipse6.0 ,java j2ee 1.4库,web server用tomcat6。二.创建web工程:1. MyEclipse中新建web工程,名称为testAxis。工程目录为:D:/Jav

2010-11-11 20:49:00 3712 1

原创 Java MD5 加密

<br />      今天项目中用户的密码要用MD5加密。在网上找了MD5加密的Java代码,如下所示。/** * MD5 加密 */ private String getMD5Str(String str) { MessageDigest messageDigest = null; try { messageDigest = MessageDigest.getInst

2010-11-07 15:39:00 784

原创 用Axis开发基于Java的Web服务

<br />    本文介绍了一个比较简单实用的基于Java的SOAP引擎——Apache组织推出的Axis——的安装、配置和应用开发方法,希望对有兴趣做基于Java的Web Services应用开发的朋友有所帮助。 <br />  Axis简介<br />  Axis是Apache组织推出的SOAP引擎,Axis项目是Apache组织著名的SOAP项目的后继项目,目前最新版本是采用Java开发的1.4版本,C++的版本正在开发之中。<br />  Axis的安装<br />  应用Axis开发Web Se

2010-11-06 22:45:00 731

转载 Linux 安装MySQL

<br />一、引言<br />  想使用Linux已经很长时间了,由于没有硬性任务一直也没有系统学习,近日由于工作需要必须使用Linux下的MySQL。本以为有Windows下使用SQL Server的经验,觉得在Linux下安装MySql应该是易如反掌的事,可在真正安装和使用MySQL时走了很多弯路,遇见很多问题,毕竟Linux 和Windows本身就有很大区别。为了让和我一样的初学者在学习的过程中少走弯路,尽快入门,写了此文,希望对您有所帮助。本文的Linux环境是 Red Hat 9.0,MySQL

2010-10-25 20:47:00 596

原创 用合并排序算法解决逆序数问题

     这段时间本人开始学习《算法导论》这本书,并且将书中的某点问题的解决写入自己的博客中,当成对自己的勉励。     分治法(divide-and-conquer)。为了解决一个给定的问题,算法要一次或多次地递归调用其自身来解决相关的子问题。通常采用分治策略:1、分解:将原问题划分成一系列子问题;2、解决:递归地解各子问题。若子问题足够小,则直接求解;3、合并:将子问题的结果合并成原问题的解。     逆序对问题:设A[1..n]是一个包含n个不同数的数组。如果在iA[j],则(i,j)就称为A中的一个

2010-10-18 22:54:00 2250

laravel5源码分析

laravel5源码详细分析,包括ORM、容器、队列等源码详解

2018-03-19

Jena API文档

学习完Jena后要开发程序就需要用到Jena API文档,它是chm格式,更容易查找。

2009-05-05

图论基本算法

数据结构中的图论基本算法

2008-05-25

空空如也

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

TA关注的人

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