- 博客(60)
- 收藏
- 关注
原创 在Linux中编译Tomcat Native
环境:Ubuntu 14.04TSL,JDK1.8.0_20,Tomcat 8.0.14第一步 安装APR 从“http://apr.apache.org”下载“APR”和“APR-util”这两个源码包。 将下载的源码包解压缩。 进入“APR”源码包文件夹,执行:./configuremakesudo make install
2014-10-26 02:40:42
2687
原创 Cygwin,给Windows多一点机会
第一部分 简介 Cygwin是Windows上的一个Linux虚拟环境,通过在Win32上模拟Linux API构建而成。其最大的用途是:在Windows上使用部分“For Linux Only”的软件;在Windows上编译为Linux系统编写的C/C++源码;第二部分 安装 从地址“https://cygwin.com/install.htm
2014-10-26 02:36:27
4262
原创 JS中,子类调用超类函数
概述 JS虽然并不直接具备面向对象的特性,但仍可以通过prototype来模拟面向对象的继承和多态等特性。和大多数面向对象语言(例如C++,Java等)相比,JS来实现面向对象仍稍显繁琐和抽象,需要对JS的prototype模型有深入的理解。 在开发过程中,有时候会遇到这样一个问题:如果在子类中“覆盖”了超类的某个方法,但仍需要在子类方法中调用一次超类方法,这时候应该怎么做?如果是Ja
2014-07-06 23:39:51
6285
原创 Java中动态加载jar文件和class文件
概述 诸如tomcat这样的服务器,在启动的时候会加载应用程序中lib目录下的jar文件以及classes目录下的class文件,另外像spring这类框架,也可以根据指定的路径扫描并加载指定的类文件,这个技术可以实现一个容器,容纳各类不同的子应用。 Java类由于需要加载和编译字节码,动态加载class文件较为麻烦,不像C加载动态链接库只要一个文件名就可以搞定,但JDK仍提供了一整套
2014-06-17 17:57:15
40375
1
原创 关于WNDCLASSEX结构体中cbWndExtra成员的作用
概述 有人问WNDCLASSEX结构体中cbWndExtra成员到底是做什么用的,在网上也查了一些资料,但说的都不太正确,MSDN上说的也较为含糊,但这个cbWndExtra成员的作用确实是较为重要,首先Windows默认的对话框类会用到它(即窗体类为#32770的对话框),几乎所有的Windows标准控件也会用到它,可以说cbWndExtra类给予了Windows窗体一个可扩展的途径,使得
2014-03-02 19:36:57
5799
2
原创 一个显示进度条的WTL状态栏类
引言 好久没用WTL写代码了,WTL已经更新到8.1版本,但依旧没有提供对VS2013的支持,网上有相关更改想到模板的方法,但向导界面和VS2013的风格严重不搭,丑的一逼……好在WTL代码结构很简单,用不用向导都无所谓,不用也罢。 自从C++0x/11发表以来,ATL/WTL的威力逐渐展现出来,ATL/WTL和STL的配搭是那么的自然和顺当,不像MFC,带齐了所有的东西,但总显得和C
2014-02-14 14:54:53
4005
原创 返回值和右值引用的传递问题
最后发现,最朴素的写法反而是执行效率最高的写法(“第一个函数”),这种写法充分的利用了编译器在构造对象时进行的优化以及move赋值运算带来的优势,避免了对象在传递过程中产生的临时对象以及引发的构造和析构;这也体现了move赋值运算存在的必要性。 无论如何,都不能在函数内部返回临时变量的指针或引用,无论该引用是左值引用还是右值引用。C++11也从来没有认为变量的控制权被转移后析构就不再发生了。所以要在函数内部产生一个对象并返回,正确的做法是:1)将对象建立在堆内存上并返回地址;2)返回局部对象,并通过co
2014-01-10 01:21:37
8823
原创 一个简单的内存泄漏检测C工具
这个内存泄漏检测工具很简单,只能检测同一个模块,同一个线程中发送的内存泄漏,对于在编写代码过程中的代码调试有一定的帮助。如果要在集成测试或功能测试中检测内存泄漏,还需借助专门的工具。1. 先取向malloc,free和calloc这几个标识符的定义:注意这一步非常重要,否则后面的malloc、free和calloc函数会和我们稍后在头文件中定义的宏冲突// 取消malloc, call
2013-12-09 01:43:45
5642
原创 非递归,不用栈实现二叉树中序遍历
最近总有人问这个问题:“如何不用栈,也不用递归来实现二叉树的中序遍历”。这个问题的实现就是迭代器问题,无论是Java还是C++,利用迭代器遍历树节点(Java中是TreeMap类,C++中是map类)都使用了中序遍历,且无法使用递归和栈,算法效率近似为O(1),不可能每个节点只访问一次。 纯C实现的办法很简单,先定义类型。 // 定义用于比较的函数指针类型 typedef int
2013-12-01 18:03:01
10574
原创 一个用于对于诸如 abc${p1}${p2}def 这样字符串进行处理的Java类
用于对于诸如 abc${p1}${p2}def 这样字符串进行处理的Java类,使用一个Map来进行参数值设置。package com.softparty.fw.common;import java.util.HashMap;import java.util.Map;/** * 从字符串中分析参数的类 */public class ParametersUtils { //
2012-12-15 13:29:22
1036
原创 具备全程事务控制的JDBC连接管理器
Hibernate事务具备全局管理能力,配合Spring框架就可以在BO层完成DAO操作和事务控制。当然,传统的JDBC是不具备这个能力的,所以要自己开发一个连接管理器框架,来管理线程范围内的数据库连接和事务控制。package edu.softparty.base.dbunit;import java.sql.Connection;import java.sql.ResultSet
2012-12-08 14:28:40
1820
原创 用于表现层的DateValue类
JDK自带的Date类用起来很不方便,Calendar类又不不符合VO的概念,所以我用的办法就是将java.util.Date转为一个DateValue类,以方便表现层使用,一直以来自我感觉灰常好用。package edu.softparty.mvc.model.common;import java.util.Calendar;import java.util.Date;import
2012-12-08 12:19:20
1280
转载 为什么C语言屹立不倒?
有些语言诞生几十年了依然是世界上最流行的语言,比如C语言。有些语言虽然号称新兴的语言却很少有人使用。在编程语言这个领域里似乎不符合长江后浪推前浪这个规律。这恐怕不止语言本身的因素,里面的缘由值得研究者好好去探索一番。 近年来,谷歌一直致力于开发出自己的编程语言以取代当今世上最常用的C、C++和JavaScript。在系统语言方向,谷歌的Go语言能够为用户在数据中心内建立大型软件提供更多的
2012-06-14 09:47:30
964
转载 页面前端的水有多深?再议页面开发
文章转自伯乐在线,作者Lemon但凡从事互联网的人基本都会写几行html,用过Word的人用Dreamweaver也能做出规整的页面,所以大部分人会很自然地认为“页面的开发没什么技术含量,很简单”。不仅有这种普遍的认知,对从业者来说也有很多疑惑:做页面前端实现,没问题;兼容性,小case;图片集成,一直都在用……还能有什么问题?瓶颈啊、天花板啊、转型啊、出路啊就在从业者中广泛讨
2012-05-19 10:21:46
1507
原创 Groovy基本语法(3)
5、Groovy中的循环 可以说,Groovy把Java循环结构折腾的面目全非,似乎主流脚本语音能用到的循环方式Groovy都给加了进去,实际上不同的循环语法和功能差异很小,这类玩意儿多了意义并不明显,例如我就比较喜欢for循环而不太爱用while循环,但并不是说while循环没有用处,虽然for循环完全可以涵盖while循环的所有功能。 Groovy的开发者目标很明确
2011-12-23 01:26:16
17260
原创 Groovy基本语法(2)
4、静态import 我是最早在.net framework 3.5上使用类似import static这种语法的,用起来相当方便的说,但JDK一直没有引入这玩意儿,按道理说加上这么个小功能是很容易实现的。不过Groovy倒是带来来功能更强大的import static语法,用起来也很方便:package plswg.edu.groovy.basic// 将Intege
2011-12-22 02:24:13
11901
原创 Groovy基本语法(1)
2、Starting Groovy 相比于一个传统的Java类,一个包含main方法的Groovy类可以如下书写:代码1:具有main函数的Groovy类package plswg.edu.groovy.basic// 利用class关键字创建一个groovy类class G01_HelloWorldClass { // 静态的main方法作为程序入口 s
2011-12-22 01:41:48
18834
原创 配置Groovy开发运行环境
前言: 虽然一直在做C和C++,但只要涉及到能用Java或者.net开发的部分,还是很愿意用这两者进行开发的。虽然相比于C/C++,Java或.net的灵活性小了一些,但后者开发的效率真的是相当高,而且写起来也不会像C/C++那样让人郁闷。 这两年C#的发展可谓是精彩,Microsoft真不愧是最牛X的拿来主义公司,C#结合了多种语言的优点,写代码相当流畅,特别是C#描
2011-12-21 16:58:23
21914
转载 多线程程序设计的8个规则
<br /> <br />在Intel,并行化技术主要有四个步骤:分析,设计与实现,调试以及性能调优。这些步骤用来对一段串行代码进行并行化。尽管这四个步骤中的第一、三、四步都已经有了很多相关文档,但是关于怎样进行设计与实现的却不多。<br />并行编程更像是一门艺术,而不是一门科学。这里将会给出八条设计多线程程序的简单规则,你可以把他们一一放进你的多线程程序设计百宝箱中。通过参考这些规则,你能写出高质量、高效率的多线程程序。我努力试着将这些规则按照(半)时间顺序组织起来,但是它们之间并没有硬性的先后顺序。就
2010-12-05 14:20:00
13827
2
转载 在VC中使用XP样式
<br /><br />涉及到风格问题,当用Visual Studio 2005/2008创建MFC程序时,如果选择Unicode编码方式则程序自动具有XP控件风格;如果没有选择或选择多字符集编码方式,则需要如下操作:<br />将下面的内容保存到一个文件名为***.manifest的文件中,放到res目录下,***可以使用你的程序的名称或者任意。<br /><?xmlversion="1.0" encoding="UTF-8"standalone="yes"?><br /><assemblyx
2010-11-20 00:04:00
1268
原创 flex与数据库交互
首先要求大家到数据库建立一个数据库,在我这例子中数据库名为userDb,建立一个表userInfo,里面设置两个字段一个为id,一个为name。创建以下java代码在src目录下User.javapackage org.rjb.java;public class User { private String name; public String getName(
2010-05-20 08:49:00
2039
原创 C#语言 第四部分 图形界面编程(六) 分组容器和卡片容器(2)
2 卡片式容器卡片容器(TabControl)是这样一种容器:它本身包含多个容器(类似于Panel类型的面板容器),但同时只能显示其中的一个,并隐藏其余的容器。卡片容器的用途很广泛,目前流行的浏览器都使用卡片式方式在一个浏览器内可以同时打开多个页面,例如: 图1 卡片式浏览的Firefox浏览器卡片式容器解决了一个这样的问题:当我们需要在同一个窗体内放置为数众多的控件时,如
2010-04-30 04:08:00
6698
原创 C#语言 第四部分 图形界面编程(六) 分组容器和卡片容器(1)
——本节介绍了如何使用分组容器(GroupBox)以及一个分组RadioButton的实例1 分组容器GroupBox容器使用起来就和一个基本的Panel容器一样,它不具备布局管理功能,仅仅是一个可以容纳其它控件的容器。GroupBox的主要特点就是:该容器具有一个外观优雅的边框,并且可以具备标题文本。所以该容器的主要作用就是:将符合某一类功能特点的控件分组,使整个窗体看上去整齐一些。
2010-04-29 18:13:00
5530
1
原创 C#语言 第四部分 图形界面编程(五) 布局容器类(4)
6 分隔容器类分隔容器(SplitContainer)由分隔线和两个面板容器组成,可以通过分隔线将容器所在区域分为两个部分(左右或上下),每个部分里面有一个面板容器(Panel容器类),可以放置其它控件。通过鼠标拖动分隔线,可以改变容器两个区域的尺寸。分隔线可以通过SplitterWidth 属性控制,例如:// 设定分隔线宽度为2单位this.splitPane.Splitt
2010-04-28 04:30:00
9440
原创 C#语言 第四部分 图形界面编程(五) 布局容器类(3)
5 表格布局无论使用锚定布局还是流式布局,都无法达到复杂布局的效果,很多时候我们不得不使用绝对布局,忍受绝对布局带来的麻烦(要么容器尺寸一变化,界面就变得一团糟;要么在容器的Resize事件中写复杂的布局代码)。其实.net Framework中还具备一种很高级的布局方式——表格布局。表格布局顾名思义,就是将容器分为n行m列的二维表,这样一个二维元组就可以表示表格的一个单元格,例如(0,0
2010-04-27 03:50:00
14577
原创 C#语言 第四部分 图形界面编程(五) 布局容器类(2)
3 布局中的空白区域在.net Framework中,每个控件和其所处的容器以及容器内控件之间,都存在一个可以调整的空白区域,这个空白区域纯粹是为了布局的美观性而存在的。容器和容器内控件之间的空白称为容器的Padding属性,容器内控件之间的空白称为控件的Margin属性。看一下示意图: 图1 Padding和Margin示意图很容易理解,蓝色箭头表示的四个空白位置为窗体容
2010-04-26 04:00:00
10352
转载 实用的JavaScript测试及效验工具
来源:web-developer.youkuaiyun.com/?p=239JavaScript 是一款强大的广泛运用于现代Web站点及应用的脚本语言。作为一个技艺精湛的 Web 开发者,掌握JavaScript可以增强用户的使用体验,提供交互及富客户端等功能。尽管JavaScript 的语法非常简单,但对于写程序而言仍然是困难重重,就是因为它的运行环境:基于Web浏览器。以下您可以看到收集的8个
2010-04-21 00:23:00
881
原创 C#语言 第四部分 图形界面编程(五) 布局容器类(1)
从ContainerControl类继承的子类作为容器窗体,可以容纳除Form类对象外的其余窗体对象。在所有容器窗体内,最基本的就是顶级容器Form类以及面板容器Panel类。这两者的主要区别为:前者具有Windows标准框架(标题栏,最大化、最小化和关闭按钮,窗体边框,可调整尺寸),并且可以独立存在;后者只是一块区域,并且必须依附在某个容器窗体上,无法独立存在。除了它们的区别外,他们都具有:
2010-04-18 19:23:00
9677
原创 C#语言 第四部分 图形界面编程(四) 尺寸、坐标、边界
这一课很简单,学习几个类即可。1 尺寸:Size类和SizeF类Size类是一个表示尺寸的值类型类,具有两个正常属性:Width和Height,表示宽度和高度;一个静态属性:Empty,表示0尺寸常量(Width属性和Height属性均为0)。SizeF类和Size类似,区别主要是Size类型对象的属性为整数值,SizeF类型对象的属性为单精度浮点类型。看一个简单的例子:
2010-04-17 23:51:00
6284
原创 C#语言 第四部分 图形界面编程(三) 子窗体
我们首先来看一下窗体类的继承关系: 图1 窗体类继承关系图其实微软从一开始开发Windows的时候,就采用了面向对象的方式(在C语言上模拟的面向对象),所以到后来的C++,VB,Delphi,都可以比较容易的使用一门面向对象语言来对Windows窗体这部分代码进行封装。.net也是如此,它在内部依然调用了Win32 SDK中的API函数来生成窗体,启动消息循环。所以.net窗体类是一种
2010-04-17 17:28:00
9244
2
原创 C#基本线程同步
0 概述上一章我们了解了多个线程可以“同时”运行代码(我们称为“异步运行”),这一章我们来研究为什么异步运行的线程需要同步?所谓同步,就是给多个线程规定一个执行的顺序(或称为时序),要求某个线程先执行完一段代码后,另一个线程才能开始执行。第一种情况:多个线程访问同一个变量:一个线程写,其它线程读:这种情况不存在同步问题,因为只有一个线程在改变内存中的变量,内存中的变量在任意时刻
2010-04-12 17:52:00
13522
41
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人