自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 函数返回对象的小揭秘

  下面是一段c++代码,你能知道运行的结果吗? #include<iostream>using namespace std;class cpp_obj{public: cpp_obj() { cout<<"ctor\n"; } cpp_obj(const cpp_obj& c) { co...

2011-05-03 20:40:44 154

原创 两个字符串的最短串编辑距离

   假定有两个字符串s1,s2,求出由s1变为s2所需要花费的最小代价。删除一个字符的代价为1,增加一个字符的代价为2,替换一个字符的代价为2。比如由“abc”变为“abe”,你可以删除c,然后添加e,这样代价是3;也可以将c替换成e,这样代价是2,显然2比较小。具体串编辑问题请参阅算法书籍。本代码运用的是动态规划的思路,这里状态转移方程略去,如果需要给出具体的编辑轨迹,那需要用一个二维数组来记...

2011-05-03 17:21:26 280

原创 字符串生成“后缀数组”《编程珠玑》

 #include<iostream>using namespace std;const int N=26;extern int com(const void *a,const void *b);int main(){ char *s="Gejun Com on C Come in"; if(strlen(s)<=26) ...

2011-05-03 16:24:08 199

原创 求数组的最长递增子序列《编程之美》

#include<iostream>using namespace std;int main(){ extern int f(int [],int); int a[8]={1,-2,5,-3,-1,4,6,0}; int m=f(a,8); cout<<"最长递增子序列的长度是"<<m<<endl;...

2011-04-30 17:22:03 149

原创 (转)C语言的移位操作符

 C语言里的左移和右移运算先说左移,左移就是把一个数的所有位都向左移动若干位,在C中用<<运算符.例如:int i = 1;i = i << 2;    //把i里的值左移2位也就是说,1的2进制是000...0001(这里1前面0的个数和int的位数有关,32位机器,gcc里有31个0),左移2位之后变成000... 0100,也就是10进...

2011-04-27 18:41:21 124

原创 (转载)动态规划求最长公共子序列

  通过这篇来加深对动态规划的理解。 动态规划法经常会遇到复杂问题不能简单地分解成几个子问题,而会分解出一系列的子问题。简单地采用把大问题分解成子问题,并综合子问题的解导出大问题的解的方法,问题求解耗时会按问题规模呈幂级数增加。为了节约重复求相同子问题的时间,引入一个数组,不管它们是否对最终解有用,把所有子问题的解存于该数组中,这就是动态规划法所采用的基本方法。  【问题】...

2011-04-21 11:32:41 99

原创 (转载)Linux进程创建,子进程对父进程资源“写时拷贝”的证明

  传统的fork()系统调用直接把所有的资源复制给新创建的进程。这种实现过于简单并且效率低下,因为它拷贝的数据或许可以共享。更糟糕的是,如果新进程打算立即执行一个新的映像,那么所有的拷贝都将前功尽弃。    Linux的fork()使用写时拷贝 (copy- on-write)页实现。写时拷贝是一种可以推迟甚至避免拷贝数据的技术。内核此时并不复制整个进程的地址空间,而是让父子进程共享...

2011-04-17 16:17:51 133

原创 vs2008 error PRJ0003 : 生成 cmd.exe 错误的解决方法

转载:关于VS2008运行CLR—Windows窗体应用程序的时候 error PRJ0003 : 生成 cmd.exe 时出错解决方法: tools=> Options => Projects and Solutions -> VC++ Directories page then place below rows(即添加下面3个项目,可以手动输入): $...

2011-04-15 14:25:26 133

原创 (转)Eclipse插件开发之基础篇(2)下

 4. 解读示例插件的代码  让我们回到插件工程来,看一看插件工程生成的代码。首先看一下plugin.xml的代码。代码2-1 plugin.xml  <?xml version="1.0" encoding="UTF-8"?><?eclipse version="3.4"?><plugin> &amp

2010-12-14 13:11:07 107

原创 (转)Eclipse插件开发之基础篇(2)中

2. 插件的动作  接下来我们看一下插件的动作。manifest编辑器的[概要]页面右侧[启动Eclipse应用(Luanch an Eclipse application)](图2-7)。点击后,会启用一个新的Eclipse实例。这个新的实例被称为[运行时工作台]。运行工作台可以以嵌入当前正在开发的插件的状态启动,以使开发者可以对插件的动作进行确认。图2-7 启动运行时工作台...

2010-12-14 13:07:21 130

原创 (转)Eclipse插件开发之基础篇(2)上

在Eclipse中使用PDE(Plugin Development Environment)进行插件开发。在PDE中为大家准备了几个模板供大家参考。第一步咱们先利用模板制作一个简单的插件作为和PDE的第一次接触。  1.生成插件工程  通过选择[文件]->[新建]->[工程...]启动[新工程(New Project)]向导。在插件开发的时候我们就不能选择通常的java工程...

2010-12-14 13:05:53 123

原创 (转)Eclipse插件开发之基础篇(1)下

4.工作区和资源API  在Eclipse中使用工作区作为开发人员的作业区域。工作区是在Eclipse启动时指定的一个物理文件夹。开发人员在Eclipse上生成工程、创建文件等操作都会在工作区指定的文件夹内生成实际的文件。  工作区内的资源在Eclipse内部使用org.eclipse.core.resources包中定义的虚拟对象进行操作,例如工程是IProject、文件夹是IF...

2010-12-14 13:02:22 160

原创 (转)Eclipse插件开发之基础篇(1)上

名词翻译  有一些名词在翻译的过程中可能会出现歧义,在这里统一一下。  アーキテクチャ=architecture=架构  プラットフォーム=platform=平台  コンポーネント=component=组件  其余的随时补充。 1.Eclipse的架构  Eclipse被作为java的IDE(集成开发环境)被广泛的应用,但是从本质上看Eclipse是一个整合了各...

2010-12-14 12:58:29 127

原创 Java中暂停线程的简单实现

  Java实现线程“暂停”和“继续”的功能。虽然suspend方法和resume方法已经过时,但是感觉实现起来比较方便。当然,前提是程序不是很复杂,不会出现死锁。  下面便是演示代码,可以直接运行看效果。import java.awt.FlowLayout;import java.awt.Font;import java.awt.GridLayout;import jav...

2010-12-10 18:01:42 296

数据库连接池的简单实现

    自己的一个数据库作业的一部分,数据库连接池的简单实现,采取的是单例模式,同时采用了同步锁机制。关于单例模式大家可以参考《java与模式》,条件同步锁可以参考我之前的一些博文介绍。代码如下,忘大家不吝赐教。import java.io.FileInputStream;import java.sql.Connection;import java.sql.DriverManage...

2010-11-19 13:52:08 122

原创 Java同步条件锁的小例子

   由于学习数据库连接池,再次用到了Java的同步条件锁,对它的使用有了一点新的认识。这里先引用《Java 核心编程》的一段介绍:通常,一个线程进入临界区,却发现它必须等待某个条件满足后才能执行。你要使用一个条件对象(condition object)来管理那些已获得了锁却不能开始执行有用的工作的线程。由于历史原因,条件对象常被称为条件变量(condition variable)。   ...

2010-10-24 17:08:16 232

原创 Java数据库连接池实现(转载)

import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.Driver; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; ...

2010-10-24 16:19:33 84

原创 const的用法

 1、什么是const? 常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。(当然,我们可以偷梁换柱进行更新:) 2、为什么引入const? const 推出的初始目的,正是为了取代预编译指令,消除它的缺点,同时继承它的优点。 3、const有什么主要的作用? (1)可以定义const常量,具有不可变性。 例如: const i...

2010-10-22 13:12:33 111

原创 C语言编译过程

 C语言编译过程总结详解(转帖)本来打算把编译部分的内容总结一下,偶然看到一位网友的文章写得很全面,故此稍加整理,以作备忘。       C语言的编译链接过程要把我们编写的一个c程序(源代码)转换成可以在硬件上运行的程序(可执行代码),需要进行编译和链接。编译就是把文本形式源代码翻译为机器语言形式的目标文件的过程。链接是把目标文件、操作系统的启动代码和用到的库文件进行组织形成最终生成可...

2010-10-19 23:57:02 163

原创 JGraph 画出你想要的图形

  最近在学着使用开源的JGraph,为了能添加一个自己的cell,看了一堆帖子。这些帖子有一个特点,千篇一律,你转我的,我转你的,感觉太没意思了吧,始终只能画出锥形。后来还是直接搜索英文的了,搜到了The JGraph Tutorial。其中给了一个很好的例子,我略作了一些修改,功能是添加了一个自己的EllipseCell,画出了椭圆或者圆,这个取决于代码中的GraphConstants.set...

2010-10-09 22:45:33 417

原创 线程池

JDK1.5中的线程池(java.util.concurrent.ThreadPoolExecutor)使用简介 在多线程大师Doug Lea的贡献下,在JDK1.5中加入了许多对并发特性的支持,例如:线程池。 一、简介 线程池类为 java.util.concurrent.ThreadPoolExecutor,常用构造方法为: ThreadPoolExecutor(int corePoolSiz...

2010-09-16 14:24:49 79

原创 转载 Java i=i++问题

i++ ,++i,i=i++的问题   int i=0;      i=i++;      结果i是多少?      这是一个经常被提及的问题,答案一直五花八门。      具体测试一下以说明问题:      代码1:public class Test{    public static void main(String[] args){  ...

2010-09-13 16:59:20 88

原创 Java同步条件锁的使用

  这里并不介绍同步条件锁的具体定义,只对下面代码进行简单描述。本人最近在学有关知识,发现只有自己实际编码才能有深刻的体会,遇到问题才能更好的理解问题。由于i开始为10,所以线程0被阻塞,接着i被赋成100,线程1执行,完成后唤醒线程0(本段代码意图是体现锁条件,不足之处望赐教,实验室网速太卡,格式都没法调)import java.util.Scanner;import j...

2010-08-28 14:43:01 817

原创 Java 群组匹配 pattern

本函数可以进行群组匹配,群组的概念这里不进行详细描述,举个简单的例子,假设你的输入模式为(.*):(.*)([ap])m,输入字符串为11:60am,那么群组输出为(对应着括号内部的内容,这里的括号不是常规的括号,是这里的特殊标记,如果要表达括号得加上转义字符"\\("或“\\)”,注意英文符号和中文符号是不一样的) 1160a import java.util.*...

2010-08-27 16:27:29 296

原创 (转载)Java类加载器

jvm classLoader architecture :a, Bootstrap ClassLoader/启动类加载器主要负责jdk_home/lib目录下的核心 api 或 -Xbootclasspath 选项指定的jar包装入工作. b, Extension ClassLoader/扩展类加载器主要负责jdk_home/lib/ext目录下的jar包或 -Djava.ext.d...

2010-08-23 20:41:55 117

原创 用Java实现自己的事件

昨天刚转载了《实现自己的事件》一文,由于源代码生成了一个窗口,为了简化理解,我就试图修改程序,不让生成窗口,直接在控制台输出时间,结果遇到了麻烦,程序没有显示就终止了。经过仔细分析javax.swing.Timer类,终于找出了原因。Timer的构造函数 public Timer(int delay, ActionListener listener)构造 Timer 时要指定一个延...

2010-08-20 16:31:53 169

原创 实现自己的事件(一)

当程序的某个模块被调用的时刻不确定,就类似于等待某个事件的发生。这时,可以定义自己的事件进行相应的处理。比如,等待用户的一次输入等。Java的事件模型依赖于委托,通过回调方法进行相应的事件处理。在事件源中,会有fireXXXEvent()就是激活相应的事件,其中会遍历事件源的监听器队列,调用相应监听器的事件处理的回调方法。当某个事件发生时,事件源会调用fireXXXEvent()。实现自己的事件时...

2010-08-19 21:54:35 121

原创 (转载)tomcat的host配置

学习jsp也有一个月了,对tomcat的配置算的上还是有点点经验可以和大家分享,下面就来说说对tomcat主机的配置吧:1。在engine下面一个host就对应一个虚拟主机,也就是说一个计算机(对应一个ip)上可以存在多个站点,然后需要在相应的站点下建立自己的web应用,具体配置入下:首先找到:C:\WINDOWS\system32\drivers\etc目录下的host文件,打开它可以看...

2010-08-17 22:02:53 876

原创 Java Timer类的使用介绍(转载)

Java Timer类的使用介绍(转载)所有类型的 Java 应用程序一般都需要计划重复执行的任务。企业应用程序需要计划每日的日志或者晚间批处理过程。一个 J2SE 或者 J2ME 日历应用程序需要根据用户的约定计划闹铃时间。不过,标准的调度类 Timer 和 TimerTask 没有足够的灵活性,无法支持通常需要的计划任务类型。在本文中,Java 开发人员 Tom White 向您展示了如何...

2010-08-08 21:36:33 103

空空如也

空空如也

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

TA关注的人

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