自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (37)
  • 收藏
  • 关注

原创 递归实现二分查找

package com.talong;/** * 递归实现二分查找 * 时间复杂度:O(lgN) * 空间复杂度:O(lnN)(函数递归栈的空间) */public class BinarySearchRecursion { /** * @param array 查找数组 * @param num 查找值 * @return 找到的数组索引,没...

2019-01-12 22:46:58 336

原创 迭代法实现二分查找

package com.talong;/** * 迭代法实现二分查找 * 时间复杂度:O(lgN) * 空间复杂度:O(1) */public class BinarySearchIterate { /** * @param array 查找数组 * @param num 查找值 * @return 找到的数组索引,没有找到返回-1 ...

2019-01-12 22:19:29 1050

原创 生产者消费者测试

package test.thread;import java.util.LinkedList;public class ProducerConsumerTest { public static void main(String[] args) {  ClsQueue queue=new ClsQueue();  Producer p=new Producer(queu

2015-04-05 19:45:03 618

原创 线程死锁测试_加锁次序导致死锁

package test.thread;public class DeadLockTest extends Thread{    private Object o;    public void setO(Object o){     this.o=o;    }    public void run(){  synchronized(this){   Sy

2015-04-02 21:31:14 597

原创 两个线程每隔一秒钟交替打印5个数

package test.thread;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;public class ExecutorTest { private static int i=0; private static final int PRINT_COUNT

2015-03-31 21:12:12 2378

原创 Comparable与Comparator的差异

1.从功能上看,Comparable接口需要对象本身具备比较的特性;而Comparator则不需要,希望两个对象进行什么样的排序,就实现什么样的Comparator,这在不希望修改已有类的情况下非常有用2.从设计上看,Comparable接口属于强耦合接口,Comparator数据低耦合接口。使用Comparable接口来进行排序属于继承方式,也就是面向对象中的is-a关系,最好在设计

2015-03-09 21:33:05 554

原创 面向对象方法开发的特点

面向对象方法开发的特点:1.以对象为中心,而不是以过程为中心。这并不是说面向对象中就没用过程,而是以类或者对象来作为观察整个系统的出发点。在编码时当然也需要三大程序设计结构。2.面向对象方法的第一大特性是封装,类将自己的数据和方法封装起来,可以给他们提供不同的权限来供外部访问,这样和面向过程相比而言,进行了很大程度上的隔离。不像面向过程中的一个数据结构,想保证不被别人修改很难。 待

2014-02-23 21:33:14 6724 1

原创 面向过程方法学开发软件的特点

面向过程方法学开发软件的特点:1.程序=数据结构(模型)+算法(解决问题所需的一系列逻辑步骤)2.数据结构作为模型,是对数据的封装3.将程序分解为一系列相互之间独立(独立性强弱由开发者决定)的子程序(函数或过程),主程序按逻辑步骤调用各个子程序4.以过程为中心,而非以事物为中心(面向对象方法学的关注点),严重依赖条件分支结构(if...else...或者switch...case)

2014-02-22 22:53:55 3290

原创 unix常用脚本

1.查询进程编号:ps -exf | grep 进程名 | awk '{print $2}' |  xargs echo2.杀死进程:kill -9 进程pid,或者ps -exf | grep 进程名 | awk '{print $2}' |  xargs kill -93.查询服务器滚动日志:tail -f 日志名.log4.查询服务器最新日志:tail -n 200 日志名.lo

2013-04-10 21:13:22 1436

原创 子集树与排列树

1.当所给问题是从n个元素的集合S中找出S满足某种性质的子集时,相应的解空间称为子集树。例如:n个物品的0-1背包问题所相应的解空间是一棵子集树,这类子集树通常有2^n个叶结点,其结点总数为(2^(n+1))-1。遍历子集树的算法通常需奥秘加(2^n)计算时间。回溯法搜索子集树的算法一般可以描述如下:void backtrack(int t) {if (t > n)  output(x

2013-04-09 21:52:44 7992 2

原创 约瑟夫环问题

约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。 解法1:利用数组存放n个人,数组下标等于他的编号,然后模拟报数过程,报到m时输出该位置的人的编号,              然后将该位置的值清

2013-04-09 20:43:40 856

原创 经典数值交换算法

1.借助中间量交换 int x = 10;int y = 20;int temp = x;x = y;y = temp;2.数值相加减交换 int x = 10;int y = 20;x = x + y;y = x - y;x = x - y;3.异或运算交换 int x = 10;int y = 20;x =

2013-01-09 16:25:55 778

原创 经典安全数组实现

final class DataSources {        private int size;    private DataSource[] data = new DataSource[4];        final int size(){        return size;    }    final DataSource get(int idx

2013-01-09 09:28:48 1087

原创 经典Hash实现(采用拉链法处理冲突)

class StorePageMap {    /**     * The table, resized as necessary. Length MUST Always be a power of two.     */    private Entry[] table;    /**     * The number of key-value mappi

2013-01-06 16:06:08 2218

原创 软件项目管理经验

1.文档包括图例是个好东西,因为领导喜欢它,不干实事的人喜欢他,但很少有开发人员会喜欢它,尤其是在经历了长时间的项目维护之后,很少有人会去进行全局的文档更新,也很少有人敢去相信的文档的可靠性,所以把代码写的清晰、简练是最好的文档。即使你非常想写文档,那就不要啰里啰嗦,只是将关键的东西写在里面。对于图例一定要简化,很多开发人员花几天写的大文档,画的非常复杂的图例,不知道写完之后是否会有人看。当然有些

2012-12-04 14:16:57 844

原创 程序员需要艰难忍受的事

1.在你接受其他同事的软件后,发现其代码写的异常混乱,但是你不得不接手,而且还总需要去阅读他的代码,去维护,有时候为了简单,为了不进行较大的改动,你不敢对软件去进行大的重构,所以你也就干脆采用和原来作者一样垃圾的编码风格,很可能最终软件就这样结束生命周期 2.软件开发是异常复杂的事情,需要业务人员,测试人员和开发人员的通力合作才能把软件做好,尤其是当前快速迭代开发的大环境下更是这样,所以开

2012-12-04 14:13:36 872 2

原创 软件测试注意事项

1.如果一个数据库表是有联合字段做主键,那么在测试的时候务必保证包含联合主键中字段的记录都存在,以保证测试完整。2.单元测试务必针对每个方法构建自动化测试案例,以保证每次修改方法后,方法基本可行3.尽量不要过分依赖测试人员,因为绝大多数测试人员都是黑盒测试人员,只能对项目进行功能测试,他们不太可能深入到你程序的每个分支,每个逻辑组合中去分析代码4.代码中有if else语句,一定要保证

2012-12-03 16:33:42 943

原创 java编码规范

1.一个包中类的数量不要过多,否则应该建立新的包,类的名字应该与包的名字保持某种意义上的一致2.一个类不应该太长,否则不利于其他人阅读,我的经验是保持两编辑器屏幕的代码行数,六个方法以内3.一个方法不应该太长,30行以内为妙,不要超过50行,最多不要超过一编辑器屏幕,否则别人在读你的代码时会感觉到畏惧,让别人一看就懂的代码,有利于后期的维护成本与同事之间的交流4.如果可以的话,一个方法

2012-11-26 11:17:25 819

原创 java源码中的不变模式

public static class SimpleImmutableEntry        implements Map.Entry, Serializable    {        public Object getKey()        {            return key;        }        public Object ge

2012-11-23 15:52:41 526

原创 奇偶判断

package agrisom;/** * 奇偶判断 */public class EvenOddValidate {    /**     * 位运算     */    public static boolean isEvenNum1(int num){        if((num & 1) == 1){            return false

2012-10-26 11:34:15 543

原创 枚举_01背包

package agrisom;/** * 枚举法解01背包问题 */public class BackPack01Enumeration {    public int [] weights; //背包重量数组    public int [] values;  //背包价值数组        public BackPack01Enumeration(int []

2012-10-26 11:00:45 869

原创 十进制数到二进制数据的转换

package agrisom;/** * 十进制数到二进制数据的转换 */public class BinaryTransform {    public static int [] transform(int n){        int length=(int) (Math.log10(n)/Math.log10(2)+1);        int [] bi

2012-10-26 10:04:12 583

原创 贪心_01背包

package agrisom;import java.text.DecimalFormat;import java.text.NumberFormat;/** * 贪心算法求背包问题 *//** * 物品类 */class Good{    public int weight;     //重量    public int value;

2012-10-25 15:07:57 954

原创 递归_迷宫

package agrisom;import java.util.EmptyStackException;import java.util.Stack;/** * 递归_迷宫 *//** * 位置类 */class Position{    public int row;    public int col;    public Posi

2012-10-24 17:37:48 1394

原创 同时求数列的最大值与最小值

package agrisom;/** * 同时求最大值与最小值 */public class FindMaxAndMin {    public void findMaxAndMin(int [] array){        int length=array.length;        int max,min;        if(length==0){

2012-10-24 16:38:36 2461

原创 分治_数列最大值

package agrisom;/** * 分治法求数列最大值 */public class FindMax {    public int devideAndConquer(int array[]) {        int length = array.length;        int first;        int second;        i

2012-10-23 15:12:18 581

原创 行为模式_过滤器

package designpatten;/** * action组 */interface Action{    public void execute(Context context);}class ActionImpl1 implements Action{    @Override    public void execute(Context con

2012-10-22 16:27:37 448

原创 深度优先与广度优先遍历文件

package agrisom;import java.io.File;import java.io.IOException;import java.util.Stack;import java.util.Queue;import java.util.LinkedList;public class ListFile {    public static vo

2012-10-22 15:05:41 1101

原创 创建型模式_创建者

package designpatten;/** * 创建者模式 */abstract class IComputerBuider{    /**     * 模拟复杂对象     */    public String mainBoard;    public String audioCard;    public String showCard;

2012-10-22 09:05:28 466

原创 创建型模式_工厂方法

package designpatten;/** * 产品层次 */interface IProduct{    public void use();}class MobilePhone implements IProduct{    @Override    public void use() {        System.out.println("移动

2012-10-19 14:32:11 740

原创 O(1)时间复杂度删除链表元素

package lineartable;/** * 链表节点类 */class Node{    public String value;    public Node next;    public Node(String value){        this.value=value;        this.next=null;    }}/*

2012-10-19 14:15:03 2711

原创 创建型模式_简单工厂

package designpatten;/** * 产品接口必须稳定,否则整个产品结构都会发生修改 */interface IProduct{    public void use();}class Telephone implements IProduct{    @Override    public void use() {        Sys

2012-10-18 16:18:41 498

原创 动态规划_k阶裴波那契序列

package agrisom;/* 问题:已知k阶裴波那契序列的定义为f0=0, f1=0, ..., fk-2=0, fk-1=1;fn=fn-1+fn-2+...+fn-k, n=k,k+1,...举例说明:(1)k=2时,即2阶裴波那契序列定义为:f0=0, f1=1;f2=f1+f0,f3=f2+f1,f4=f3+f2,.....(

2012-10-18 15:44:29 1425

原创 创建型模式_单例

/** * 单例模式 */public class SingleInstance {    private String name;    private static SingleInstance si=null;    private static Object syncObj=new Object();    /**     * 私有化构造函数,外界不能用ne

2012-10-18 13:38:18 446

原创 动态规划_最长递增子序列

package test;import java.util.Random;/* 给定数列A1,A2,...An,求最长递增子序列: 在求以Ai为末元素的最长递增子序列时,找到所有在Ai前面且小于Ai的元素Aj,即j 那么对所有Aj,都有一个以Aj为末元素的最长递增子序列的长度S(j),把其中最大的S(j)选出来,那么S(i)就等于最大的S(j)加上1, 即以Ai为末元素的最

2012-10-12 16:29:07 1541

算法导论中文版

算法导论中文版

2012-11-28

asm4-guide

asm4-guide java字节码操作工具文档

2012-11-28

数据结构(C语言版)

数据结构(C语言版)

2012-11-28

编码查看工具

编码查看工具

2012-11-16

VC.FeiQ源码

VC.FeiQ源码 VC.FeiQ源码 VC.FeiQ源码

2012-11-16

bho插件开发

bho插件开发

2012-11-16

GoogleJsApi编程

GoogleJsApi编程

2012-11-16

openmp手册

openmp手册

2012-11-16

AndroidJava游戏编程

AndroidJava游戏编程

2012-11-16

hadoop教程

hadoop教程

2012-11-16

oracle教程

oracle教程

2012-11-16

linux C语言编程

linux编程

2012-11-16

rcp发布.pdf

rcp发布

2012-11-14

javacc-tutorial

javacc-tutorial入门手册

2012-11-14

window文件系统索引引擎

用java写的windows下的文件搜索程序,底层索引存储采用bst(二叉排序树),构造索引时采用深度递归算法(偏慢),只支持对文件的索引,不支持对文件夹的索引,采用jnotify监听文件的新建,修改,删除和重命名,同时自动更新索引文件,运行时请将次dll放到path目录下,可根据自己的需要进行定制,如更换索引结构,支持文件夹等,还可以采用ntfs文件系统的特性,改进构建索引的效率

2012-11-12

java常用操作算法

java常用操作算法 java常用操作算法

2012-11-05

Spring源码分析

Spring源码分析

2012-11-02

多图详解Spring框架的设计理念与设计模式

多图详解Spring框架的设计理念与设计模式

2012-11-02

jetty-6.1.26源码

jetty-6.1.26源代码

2012-10-30

VM虚拟机VMware6.0中文绿色

VM虚拟机VMware6.0中文绿色 免安装破解版

2012-10-30

PLSQL Developer

PLSQL Developer是一个访问oracle的sql程序,需要预装oracle客户端软件

2012-10-30

SecureCRT访问器

SecureCRT是几个可以远程登录类unix系统ssh软件

2012-10-30

Smart Sniff

Smart Sniff是几个进行局域网网络监控的程序

2012-10-30

Spring2.5-中文参考手册

Spring2.5-中文参考手册

2012-10-30

Linux命令电子书

Linux命令

2012-10-30

ibatis-sqlmap2

ibatis-sqlmap2

2012-10-30

ibatis开发指南

ibatis开发指南

2012-10-30

JDK_API_1_5

JDK_API_1_5电子书

2012-10-30

J2EE API电子书

J2EE API电子书

2012-10-30

WINDOWS核心编程

WINDOWS核心编程

2012-10-29

VC++_Win32_API_编程简介及游戏开发

VC++_Win32_API_编程简介及游戏开发

2012-10-29

struts2源代码分析

struts2源代码分析(个人觉得非常经典)

2012-10-29

eclipse插件开发

eclipse插件开发

2012-07-19

空空如也

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

TA关注的人

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