自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(71)
  • 收藏
  • 关注

转载 常用Java开源项目

开发工具:Eclipse、NetBeans、IntelliJ IDEA(它分免费和收费两个版本)    Eclipse版本控制插件:Subclipse、EGit    Web框架:Spring MVC、Struts2    ORM框架:Hibernate、MyBatis(iBATIS3.0之后改名)    Web服务器:Tomcat、Jetty、Resin、JBoss、Gl

2014-02-21 21:29:46 526

原创 nanopb分析和使用说明

经过资料收集,nanopb、protobuf-c、upb、pdb等均是采用Google的Protocol Buffers格式进行消息编解码的C语言库,根据项目的业务需求,我们决定采用nanopb进行数据数据的序列化。之所以选择nanopb原因是其提供的编解码接口是通用的,如下面的编解码接口:bool pb_encode(pb_ostream_t *stream, const pb_fi

2014-02-14 23:28:59 12444 1

原创 数据快递员-Sqoop

    Hadoop目前来讲,多数还是应用于处理线下数据,其处理的数据来源大多还是传统的关系型数据库,在这种应用场景下,Hadoop平台类似于一个数据处理工厂,输入是原材料(原始数据),而输出是生产的产品(分析或挖掘后的数据)。由谁来运输原材料和产品呢,我们可以自建车队,自定义物流系统,但是有这么一家优质的快递公司-Sqoop提供了物流服务,而且是免费的(开源),怎能不用之?所以,这篇文章主要介绍...

2011-12-22 18:25:20 206

原创 Java的fork-join 框架

线程主要用来表示异步,而不是并发。 

2011-11-25 13:36:08 128

原创 如何对付网络爬虫 - JavaEye和网络爬虫斗争之路

由于搜索引擎的泛滥,网络爬虫如今已经成为全球互联网的一大公害。除了专门做搜索的Google,Yahoo,微软,百度以外,几乎每个大型门户网站都有自己的搜索引擎,搜狐,腾讯,网易。再加上十分流氓的社区搜索奇虎等等,国内大大小小叫得出来名字得就几十家,还有各种不知名的几千几万家,另外还有国外各种奇奇怪怪的搜索引擎。只要你做的网站是内容丰富的网站,就避免不了被几千几万个爬虫每天爬来爬去。 大的搜...

2011-09-25 23:05:56 111

原创 java.util.concurrent介绍

 java.util.concurrent 包含许多线程安全、测试良好、高性能的并发构建块。不客气地说,创建 java.util.concurrent 的目的就是要实现 Collection 框架对数据结构所执行的并发操作。通过提供一组可靠的、高性能并发构建块,开发人员可以提高并发类的线程安全、可伸缩性、性能、可读性和可靠性。如果一些类名看起来相似,可能是因为 java.util.concur...

2011-09-19 23:10:51 74

原创 JAVA继承后的初始化顺序

JAVA继承后的初始化顺序是一个考点,其初始化顺序如下所示:(1)将父类的静态变量初始化(2)将子类的静态变量初始化(3)将父类的属性初始化(4)执行父类的构造方法(5)将子类的属性初始化(6)执行子类的构造方法 ...

2011-09-14 10:45:50 83

原创 笔试题(8)

宏和inline的区别?1. inline函数和宏都是在程序出现的地方展开,不是通过函数调用实现的。2. 宏展开的时间和inline函数不同,inline函数是在编译期间完成展开,宏是在预编译间展开,如果从宏观上看,可以认为是在编译期间展开。3. inline函数可以在编译期间要对参数类型进行检测,宏不进行检测4. inline可以不展开,宏一定要展开。因为inline指示对编译器...

2011-09-14 00:42:00 134

原创 红黑树简介

一、红黑树介绍    红黑树由Rudolf Bayer于1972年发明,当时被称为平衡二叉B树(symmetric binary B-trees),1978年被Leonidas J. Guibas 和 Robert Sedgewick改成一个比较摩登的名字:红黑树。 二、红黑树与AVL树比较    红黑树AVL树类似,都是在进行插入和删除操作时通过特定操作保持二叉查找树的平衡,从而...

2011-09-08 15:35:19 138

原创 笔试套题(1)

(1)什么事UML,分为哪两类?    答:统一建模语言(UML是 Unified Modeling Language的缩写)是用来对软件密集系统进行可视化建模的一种语言。UML为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。    统一建模语言 (UML)是非专利的第三代建模和规约语言。 UML是在开发阶段,说明,可视化,构建和书写一个面向对象软件密集系统的制品的开放...

2011-09-04 19:43:41 161

原创 JAVA笔试题套题(2)

1. 输出1234567*(2^987654321)的后10位数    答案是(1234567*(2^987654321))%(10^10).关键是怎么算出这个数利用取模操作。取模满足分配率:(a*b)%c=((a%c)*(b%c))%c可将2^987654321分为2^m*2^m*...*2^n(m>=n).2. Java中ArrayList中插入一个元素的平均复杂度是多少? ...

2011-09-03 15:31:48 119

原创 位图法

位图法定义      所谓bitmap,就是用每一位来存放某种状态,适用于大规模数据,但数据状态又不是很多的情况。通常是用来判断某个数据存不存在的。     例如,要判断一千万个人的状态,每个人只有两种状态:男人,女人,可以用0,1表示。那么就可以开一个int数组,一个int有32个位,就可以表示32个人。操作的时候可以使用位操作。 位图法应用  一、给40亿个不重复的unsign...

2011-09-01 17:23:25 150

原创 触发器的作用

触发器 触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由个事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。 触发器可以从 DBA_TRIGGERS ,USER_TRIGGERS 数据字典中查到。 触发器可以查询其他表,而且可以包含复杂的 SQL 语句。它...

2011-09-01 17:02:48 451

原创 找出单链表的中间元素

算法思想:使用两个指针first和second,只是first每次走一步,second每次走两步,这样当second达到链表尾部时,first刚好在链表的中间。static Link GetMiddleOne(Link head) { Link first = head; Link second = head; while (first != null && ...

2011-08-30 00:02:14 256

原创 找出单链表的倒数第n个元素

    这道题目有两种算法,但无论哪种算法,都要考虑单链表少于n个元素的情况。这里假设要寻找倒数第4个元素。    第1种算法,建立两个指针,第一个先走4步,然后第2个指针也开始走,两个指针步伐(前进速度)一致。static Link GetLast4thOne(Link head) { Link first = head; Link second = head; for (...

2011-08-29 16:33:54 528

原创 单链表反转

这道题目有两种算法,既然是要反转,那么肯定是要破坏原有的数据结构的: 算法:我们需要额外的两个变量来存储当前节点curr的下一个节点next、再下一个节点nextnext:public static Link ReverseLink1(Link head) { Link curr = head.Next; Link next = null; Link nextnext =...

2011-08-29 16:24:44 97

原创 线程阻塞

线程的阻塞   为了解决对共享存储区的访问冲突,Java 引入了同步机制,现在让我们来考察多个线程对共享资源的访问,显然同步机制已经不够了,因为在任意时刻所要求的资源不一定已经准备好了被访问,反过来,同一时刻准备好了的资源也可能不止一个。为了解决这种情况下的访问控制问题,Java 引入了对阻塞机制的支持。  阻塞指的是暂停一个线程的执行以等待某个条件发生(如某资源就绪),学过操作系统的...

2011-08-28 01:57:31 82

原创 死 锁

    所谓死锁: 是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。 由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程在无外力协助下,永远分配不到必需的资源而无法继续运行,这就产生了一种特殊现象死锁。 (1)产生死锁的必要条件    ...

2011-08-26 17:06:33 155

原创 笔试题(7)

题目:用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连。 答案:如下所示: import java.util.Set;import java.util.TreeSet;/** * 让字符串的所有位置进行互换 * @author jeffe...

2011-08-25 15:13:15 107

原创 笔试题(6)

题目:Fibonacci数列的递归和非递归解法。 解答: 如下所示: /** * @author jefferent@tom.com * * Time: 2011-8-25 下午01:52:10 */public class Test4 { public static void main(String[] args) { Test...

2011-08-25 14:22:09 169

原创 笔试题(5)

题目: 把一个数组里的数组全部列出,比如1和2列出来为1,2,12,21,。 解答: 如下所示 import java.util.Arrays;import java.util.LinkedList;import java.util.List;/** * @author jefferent@tom.com * * Time: 2011-...

2011-08-25 13:43:42 86

原创 笔试题(4)

题目:金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)->(一千零一拾一元整)输出。public class RenMingBi { /** * @param args add by zxx ,Nov 29, 2008 */ private static final char[] data = new char[] { '零', '壹', '贰', '叁'...

2011-08-20 22:46:17 97

原创 设计模式(12)——代理模式

1. 定义    代理模式:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 代理模式一般涉及到三个角色: 抽象角色:声明真实对象和代理对象的共同接口; 代理角色:代理对象角色内部含有对真实对象的引用,从而可以操作真实对象,同时代理对象提供与真实对象相同的接口以便在任何时刻都能代替...

2011-08-15 15:18:06 74

原创 LinkServer

    LinkServer:简单的说就是跨服务器之间的数据交互。情景如下:服务器A,IP:192.168.1.10,服务器B,IP:192.168.2.10。现在要使在服务器A上使用服务器B上面的数据库服务,LinkServer就是这个桥梁。废话不多说,SQL命令如下(当然你可以可视化工具:Microsoft SQL Server Management Studio):连接到服务器A,在服务...

2011-08-12 15:20:35 511

原创 SQL SELECT DISTINCT 语句

SQL SELECT DISTINCT 语句在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。关键词 DISTINCT 用于返回唯一不同的值。语法:SELECT DISTINCT 列名称 FROM 表名称使用 DISTINCT 关键词如果要从 "Company" 列中选取所有的值,我们需要使用 SELECT 语句:...

2011-08-12 14:05:58 70

原创 SQL Union和SQL Union All用法

SQL UNION 操作符 UNION 操作符用于合并两个或多个 SELECT 语句的结果集。 请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。 SQL UNION 语法SELECT column_name(s) FROM table_name1UNIONSELECT column_na...

2011-08-12 13:59:34 56

原创 设计模式(11)——状态模式

1. 定义    状态模式:允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。    要点: (1)策略模式和状态模式是双胞胎,它们有相同的类图,但是它们的意图不同。策略模式是围绕可以互换的算法来成功创建业务的,然而状态模式是通过改变对象内部的状态来帮助对象控制自己的行为. (2)Context将与状态相关的操作委托给当前的Concrete State对象处理。 ...

2011-08-12 12:25:26 60

原创 设计模式(10)——组合模式

1. 定义    组合模式:将对象组织到树结构中,可以用来描述整体与部分的关系。组合模式可以使客户端将单纯元素与复合元素同等看待。     要点:     (1) 组合模式以不遵守单一责任原则换取透明性,让Client将组合和叶节点一视同仁。     (2) 在实现组合模式时,有很多设计上的折衷。要根据需求平衡透明性和安全性。     (3) 有时候系统需要遍历一个树枝构件...

2011-08-11 12:33:58 149

原创 设计模式(9)——迭代器模式

1. 定义    迭代器模式:提供一种方法访问一个容器(container)对象中各个元素,而又不需暴露该对象的内部细节。 2. 类图及描述    迭代器模式由以下角色组成:    1) 迭代器角色(Iterator):迭代器角色负责定义访问和遍历元素的接口。    2) 具体迭代器角色(Concrete Iterator):具体迭代器角色要实现迭代器接口,并要记录遍历...

2011-08-11 11:38:22 85

原创 java笔试题套题(1)

数据库:(1)举例说明Dynamic SQL的原理及应用?      答:嵌入式SQL语句为编程提供了一定的灵活性,使用户可以在程序运行过程中根据实际需要输入WHERE子句或HAVING子句中某些变量的值。这些SQL语句的共同特点是,语句中主变量的个数与数据类型在预编译时都是确定的,只有主变量的值是程序运行过程中动态输入的,我们称这类嵌入式SQL语句为静态SQL语句。静态SQL语句提供的编程灵...

2011-08-10 19:09:27 238

原创 设计模式(8)——模板方法模式

1. 定义    模板方法模式-在一个方法中定义了一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。2. 类图及描述图 模板方法模式类图3. 应用场景及优缺点    模板方法模式中的方法:     模板方法:定义在AbstractClass中,形成算法的骨架     基本方法:     1....

2011-08-10 15:45:21 79

原创 设计模式(7)——适配器模式和外观模式

1. 定义    假设已有一个软件系统,你希望它能和一个新的厂商类库搭配使用,但是这个新厂商所设计出来的接口,不同于旧厂商的接口。如果你不想改变现有的代码,也不能改变厂商的代码,那么你该如何解决这个问题。方法其实很简单,就是写一个类,将新厂商的的接口转成你所期望的接口。如图: 图 适配器模式    适配器模式:将一个类的接口转换成客户希望的另外一个接口。Adapter 模式使得...

2011-08-08 19:18:01 87

原创 设计模式(6)——命令模式

1. 定义    有时候我们需要对方法进行封装,通过对这些封装的方法进行调用,我们可以很好的处理一些事情。比如,记录日志,或者重复使用这些封装实现撤销功能。    命令模式:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。2. 类图及描述3. 应用场景及优缺点(1)队列请求    想象有一个工作队列;你在...

2011-08-05 16:53:14 64

原创 设计模式(5)——单例模式

1. 定义    有一些对象其实我们只需要一个,比方说:线程池(threadpool)、缓存(cache)、对话框、处理偏好设置和注册表(registry)的对象、日志对象,充当打印机、显卡等设备的驱动程序的对象。事实上,这类对象只能有一个实例,如果制造出多个实例,就会导致许多问题产生,例如:程序的行为异常、资源使用过量,或者是不一致的结果。因此,我们设计这种类时必须确保只有一个实例,单件模式...

2011-08-05 11:36:52 68

原创 设计模式(4)——工厂模式和抽象工厂模式

1. 定义    工厂方法模式定义了一个创建对象对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。    抽象工厂模式提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。2. 类图及描述 工厂方法模式类图   抽象工厂模式类图  3. 应用场景及优缺点    工厂模式与抽象工厂的区别:工厂方法模...

2011-08-02 15:53:53 73

原创 排 序

1. 排序的分类    在介绍有关排序的算法之前,先来介绍与排序相关的基本概念。本节主要介绍排序的基本概念及相关概念。排序:把一个无序的元素序列按照元素的关键字递增或递减排列为有序的序列。稳定排序和不稳定排序:在排列过程中,如果存在两个关键字相等即ki=kj(1≤i≤n,1≤j≤n,i≠j),在排序前对应的元素Ei在Ej之前。内排序和外排序:根据排序过程中,所利用的内存储器和外存...

2011-07-31 21:17:01 131

原创 设计模式(3)——装饰者模式

1. 定义    The Decorator Pattern attaches additional responsibilities to an object dynamically. Decorators provide a flexible alternative to subclassing for extending functionality. (装饰者模式可以动态地给一个对象...

2011-07-31 17:16:35 68

原创 设计模式(2)——观察者模式

1. 定义    The Observer Pattern defines a one-to-many dependency between objects so that when one object changes state, all of its dependents are notified and updated automatically. (观察者模式定义了对象间的一种一对多...

2011-07-31 12:39:17 63

原创 设计模式(1)——策略模式

1. 定义    The Strategy Pattern defines a family of algorithms,encapsulates each one,and makes them interchangeable. Strategy lets the algorithm vary independently from clients that use it.(策略模式定义了一...

2011-07-29 15:48:25 59

原创 笔试题(3)

题目:输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。    例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4和11。 解题思路:    如果我们不考虑时间复杂度,最简单想法的莫过去先在数组中固定一个数字,再依次判...

2011-07-27 16:09:45 73

空空如也

空空如也

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

TA关注的人

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