`
guaishou
  • 浏览: 168920 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

重新发布本人所有博客文章中涉及的代码与工具(大部分是C++和Java)

阅读更多

    为了更方便地管理博文中涉及的各种代码与工具资源,现在把这些资源迁移到 Google Code 中,有兴趣者可前往下载。


C++

1、《高性能 Windows Socket 服务端与客户端组件(源代码及测试用例下载)

    《基于 IOCP 的通用异步 Windows Socket TCP 高性能服务端组件的设计与实现

    《通用异步 Windows Socket TCP 客户端组件的设计与实现

  摘要:编写 Windows Socket TCP 客户端其实并不困难,Windows 提供了6种 I/O 通信模型供大家选择。但本座看过很多客户端程序都把 Socket 通信和业务逻辑混在一起,剪不断理还乱。每个程序都 Copy / Parse 类似的代码再进行修改,实在有点情何以堪。因此本座利用一些闲暇时光写了一个基于 IOCP 的通用异步 Windows Socket TCP 高性能服务端组件和一个通用异步 Windows Socket TCP 客户端组件供各位看官参详参详,希望能激发下大家的灵感。

  资源下载地址:http://ldcsaa.googlecode.com/files/socket_server_and_client.zip

 

2、《Windows C++ 应用程序通用日志组件(组件及测试程序下载)

  摘要:编写一个通用的日志组件应该着重考虑三个方面:功能、可用性和性能。下面,本座详细说明在设计日志组件时对这些方面问题的考虑:

    • 功能:本日志组件的目的是满足大多数应用程序记录日志的需求 —— 把日志输出到文件或发送到应用程序中,并不提供一些复杂但不常用的功能
    • 可用性:本日志组件着重考虑了可用性,尽量让使用者用起来觉得简便、舒心
    • 性能:性能是组件是否值得使用的硬指标,本组件从设计到编码的过程都尽量考虑到性能优化

  资源下载地址:http://ldcsaa.googlecode.com/files/VC_Logger.zip

 

3、《如何养成良好的 C++ 编程习惯(一)—— 内存管理

  摘要:说起 C/C++ 的内存管理似乎令人望而生畏,满屏的 new / delete / malloc / free,OutPut 窗口无尽的 Memory Leak 警告,程序诡异的 0X00000004 指针异常,仿佛回到那一年我们一起哭过的日子,你 Hold 得住吗?其实,现实并没有你想的那么糟糕。只要你付出一点点,花一点点心思,没错!就一点点而已 —— 用 C++ 类封装内存访问,就会解决你大部分的烦恼,让你受益终身。以 Windows 程序为例,主要有以下几种内存管理方式:

    • 虚拟内存(Virtual Memory)
    • 默认堆私有堆(Process Heap & Private Heap)
    • 内存映射文件(File Mapping)
    • 进程堆栈(Heap,其实就是用 malloc() 或 默认的 new 操作符在 Process Heap 里一小块一小块地割肉 ^_^)
    • (Stack,内存由调用者或被调用者自动管理)

  资源下载地址:http://ldcsaa.googlecode.com/files/socket_server_and_client.zip (源代码在 Common/Src 目录中)

 

4、《实现 Win32 程序的消息映射宏(类似 MFC )

  摘要:对于消息映射宏,不用多说了,用过 MFC 的人都很清楚。但目前有不少程序由于各种原因并没有使用 MFC,所以本帖讨论一下如何在 Win32 程序中实现类似MFC的消息映射宏。其实 Windows 的头文件 “WindowsX.h”(注意:不是“Windows.h”) 中提供了一些有用的宏来帮助我们实现消息映射。本座是也基于这个头文件实现消息映射。

  资源下载地址:http://ldcsaa.googlecode.com/files/socket_server_and_client.zip (源代码在 Common/Src/Win32Helper.h 文件中)

 

5、《用宏实现 C++ Singleton 模式

  摘要:Singleton 设计模式应用非常广泛,实现起来也很简单,无非是私有化若干个构造函数,“operator =” 操作符,以及提供一个静态的创建和销毁方法。但是对每个类都写这些雷同的代码是本座不能容忍的,因此,本座使用宏把整个 Singleton 模式封装起来,无论是类的定义还是类的使用的极其简单。

  资源下载地址:http://ldcsaa.googlecode.com/files/socket_server_and_client.zip (源代码在 Common/Src/Singleton.h 文件中)

 

6、《C++ 封装私有堆(Private Heap)

  摘要:Private Heap 是 Windows 提供的一种内存内存机制,对于那些需要频繁分配和释放动态内存的应用程序来说,Private Heap 是提高应用程序性能的一大法宝,使用它能降低 new / malloc 的调用排队竞争以及内存空洞。

  资源下载地址:http://ldcsaa.googlecode.com/files/socket_server_and_client.zip (源代码在 Common/Src/PrivateHeap.h 文件中)

 

7、《基于 crt debug 实现的 Windows 程序内存泄漏检测工具

  摘要:Windows 程序内存泄漏检测是一项十分重要的工作,基于 GUI 的应用程序通常在调试结束时也有内存泄漏报告,但这个报告的信息不全面,不能定位到产生泄漏的具体行号。其实自己实现一个内存泄漏检测工具是一件非常简单的事情,但看过网上写的很多例子,普遍存在两种问题:

    • 要么考虑不周全,一种环境下能用,而在另外一种环境下却不能很好工作,或者漏洞报告的输出方式不合理。
    • 要么过于保守,例如:完全没有必要在 _malloc_dbg() 和 _free_dbg() 的调用前后用 CriticalSection 进行保护(跟踪一下多线程环境下 new 和 malloc 的代码就会明白)。

  资源下载地址:http://ldcsaa.googlecode.com/files/socket_server_and_client.zip (源代码在 Common/Src/debug/win32_crtdbg.h 文件中)


Java

1、《Portal-Basic Java Web 应用开发框架 v2.6.2 发布(源码、示例及文档)

  摘要:Portal-Basic Web 应用开发框架(简称 Portal-Basic)是一套功能完备的高性能 Web 应用开发框架,内置可扩展的 MVC Web 基础架构和 DAO 访问接口(已内置 Hibernate、MyBatis 和 JDBC 支持),集成 Action拦截、Form Bean / Dao Bean / Spring Bean 装配、国际化、文件上传下载和缓存等基础 Web 应用组件,提供高效灵活的纯 Jsp/Servlet API 编程模型,完美整合 Spring,非常容易学习和使用。

  资源下载地址:http://code.google.com/p/portal-basic/downloads/list

 

2、《用 Java 实现的日志切割清理工具(源代码下载)

  摘要:对于服务器的日常维护来说,日志清理是非常重要的事情,如果残留日志过多则严重浪费磁盘空间同时影响服务的性能。如果用手工方式进行清理,会花费太多时间,并且很多时候难以满足实际要求。例如:如何在每个星期六凌晨3点把超过2G大的日志文件进行切割,保留最新的100M日志记录?网上没有发现能满足本座要求的日志切割工具,因此花了一些闲暇时间自己写了一个。由于要在多个平台上使用,为了方便采用 Java 实现。本工具命名为 LogCutter,主要有以下特点:

    • 支持 Linux、Mac 和 Windows 等所有常见操作系统平台
    • 支持命令行交互式运行
    • 支持后台非交互式运行(Linux/MAC 下使用 daemon 进程实现,Windows 用系统 Service 实现)
    • 支持两种日志清理方式(删除日志文件或切割日志文件)
    • 支持对 GB18030、UTF-8、UTF-16LE、UTF-16BE 等常用日志文件类型进行切割(不会发生切掉半个字符的情况)
    • 高度可配置(程序执行周期、要删除的日志文件过期时间、要切割的日志文件阀值和保留大小等均可配置

  资源下载地址:http://ldcsaa.googlecode.com/files/LogCutter.zip

 

3、《通用 Java 文件上传和下载组件的设计与实现

  摘要:文件上传和下载是 Web 应用中的一个常见功能,相信各位或多或少都曾写过这方面相关的代码。但本座看过不少人在实现上传或下载功能时总是不知不觉间与程序的业务逻辑纠缠在一起,因此,当其他地方要用到这些功能时则无可避免地 Copy / Pase,然后再进行修改。这样丑陋不堪的做法导致非常容易出错不说,更大的问题是严重浪费时间不断做重复类似的工作,这是本座绝不能容忍的。哎,人生苦短啊,浪费时间在这些重复工作身上实在是不值得,何不把这些时间省出来打几盘罗马或者踢一场球?为此,本座利用一些闲暇之时光编写了一个通用的文件上传和文件下载组件,实现方法纯粹是基于 JSP,没有太高的技术难度,总之老少咸宜 ^_^。现把设计的思路和实现的方法向各位娓娓道来,希望能起到抛砖引玉的效果,激发大家的创造性思维。

  资源下载地址:http://code.google.com/p/portal-basic/downloads/list (作为 Portal-Basic 第一部分,代码在 com.bruce.util.http 包中)

 

4、《深度剖析:Java POJO Bean 对象与 Web Form 表单的自动装配

  摘要:时下很多 Web 框架 都实现了 Form 表单域与 Java 对象属性的自动装配功能,该功能确实非常有用,试想如果没这功能则势必到处冲积着 request.getParameter() 系列方法与类型转换方法的调用。重复代码量大,容易出错,同时又不美观,影响市容。现在的问题是,这些框架通过什么方法实现自动装配的?如果不用这些框架我们自己如何去实现呢?尤其对于那些纯 JSP/Servlet 应用,要是拥有自动装配功能该多好啊!本座深知各位之期盼,决定把自动装配的原理和实现方法娓娓道来。

  资源下载地址:http://code.google.com/p/portal-basic/downloads/list (作为 Portal-Basic 第一部分,代码在 com.bruce.util 包中)

 

5、《Linux 安装 MySQL / MySQL 主从备份

  资源下载地址:http://ldcsaa.googlecode.com/files/services.zip

分享到:
评论

相关推荐

    C++代码转java工具

    C++到Java的转换可能涉及Java Native Interface (JNI),这是Java平台的一部分,允许Java代码和其他语言写的代码进行交互。 至于压缩包内的文件“C++ to Java Converter.exe”很可能就是这个转换工具的执行程序,...

    C++转换JAVA工具

    这个过程可能涉及到一些挑战,比如C++的模板、指针和运算符重载在Java中的映射,以及Java特有的垃圾回收机制与C++手动内存管理的差异。工具需要确保转换后的代码不仅语法正确,而且能保持原有的功能和性能。 安装...

    Java转C++代码工具 J2C

    3. **遗留系统集成**:在已经有大量C++代码库的项目中,将Java部分转换为C++可以方便地整合和维护。 4. **跨平台兼容性**:虽然Java有很好的跨平台性,但在某些特定环境下,C++可能是更好的选择。 然而,转换过程...

    C++转Java工具

    标题中的"C++转Java工具"指的是一个程序,它能够帮助开发者将C++编写的代码转换为Java语言。这种工具在跨平台开发或者需要利用Java特性,但已有大量C++代码库的情况下尤其有用。JNI(Java Native Interface)是Java...

    CPlus_to_Java_Converter;C++转java工具

    本文将围绕“CPlus_to_Java_Converter”这一工具,探讨如何将C++代码转换为Java代码,并分析这一过程中涉及的关键技术和挑战。 首先,我们要明确C++到Java的转换并非简单的语法替换,因为两者的语言特性差异显著。...

    在Qt平台C++和Java代码的交互

    总结来说,Qt平台上的C++与Java代码交互涉及到JNI接口的使用,包括C++函数的声明、Java方法的调用、动态库的加载以及在Qt项目中的整合。熟练掌握这些技巧,将有助于开发跨语言的复杂应用程序。在实践中,应不断学习...

    JAVA 转C++工具

    JAVA代码转C++代码的工具,可以按照目录进行转换,虽然不是全部都转换的很好,但还是不错的

    JAVA转换C++的工具和代码3.0

    很多时候,在JAVA中有不错的...因为在java 和cpp确实区别还是很大的,所以,不可能全部100%转换。至少我的工具还没有,但是它可以帮你作不少了工作了。 欢迎大家修改源码。如有什么问题,请与我联系。 hzpldx@163.com

    C++ 与 Java 混合编程示例源代码

    C++和Java是主流的两种编程语言,但是现在整个网上对实现这两种语言混合编程的资料少之又少,却又说之不全,并且有时多种问题现在也含糊不清,对正在学习或使用这两种语言的朋友造成很大的困扰。本人的这篇拙作,...

    面向对象编程C++和Java比较教程 中英文完整版 pdf

    Java的语法与C++类似,但它更加强调安全性、可移植性和自动内存管理。Java使用垃圾回收机制来自动释放不再使用的对象,避免了C++中的内存泄漏问题。Java也支持接口,这使得实现多继承成为可能,而C++只支持单继承。 ...

    C++ 调用javaWebService接口代码

    本主题聚焦于如何在C++中调用Java WebService接口,这涉及到两种编程语言的互操作性以及Web服务技术的理解。让我们深入探讨这个过程。 首先,我们需要理解什么是Java WebService。WebService是一种基于标准的、平台...

    C++调用java jar包测试代码

    综上,这个压缩包文件的使用涉及到了Java的开发流程、jar包的打包、C++与Java的交互、JNI技术的运用以及跨平台调用的调试和环境配置等多个知识点。学习和掌握这些内容对于进行多语言混合编程和系统集成具有很高的...

    《C++ for Java Programmers》高清完整英文PDF版

    这部分涉及到Java与C++内存模型的差异,C++中的指针概念、内存堆管理、new与delete操作符、野指针、双重删除、返回指针的函数以及箭头(->)操作符的使用。 知识点六:标准模板库(STL)。书中强调了STL的重点内容...

    C++调用Java接口

    JNI是Java平台标准的一部分,它允许Java代码和其他语言写的代码进行交互。下面,我们将深入讲解这个过程,并结合实际例子“CInvokJava”来阐述。 1. **JNI简介** JNI是一种框架,它为Java应用程序提供了与本地代码...

    去掉代码注释的工具java \ c\c++、php等

    JRemoval是一个开源的Java源代码处理工具,它可以快速地从Java源代码中删除单行和多行注释,同时保留代码的原始结构。通过简单的命令行参数配置,你可以轻松地处理整个项目或者单个Java文件。 2. **C/C++去注释工具...

    java转c++软件(代码级别)

    J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。

    Qt for Android 用JNI来使C++和Java互调(目前最新版全网只有这个可用)

    "Qt for Android 用JNI来使C++和Java互调"的主题揭示了如何利用JNI(Java Native Interface)技术在Qt与Android原生系统之间建立桥梁,实现两者的交互。以下将详细介绍这一过程。 首先,Qt for Android是Qt项目的一...

    c++转C#工具

    标题中的"C++转C#工具"指的是一个软件应用程序,它能帮助程序员将源代码从C++语言转换为C#语言。这种工具通常用于在已经拥有大量C++代码库的情况下,想要利用C#语言的优势,或者将项目迁移到.NET框架的情况。 C++是...

    JAVA转换C++的工具和代码

    很多时候,在JAVA中有不错的...因为在java 和cpp确实区别还是很大的,所以,不可能全部100%转换。至少我的工具还没有,但是它可以帮你作不少了工作了。 欢迎大家修改源码。如有什么问题,请与我联系。 hzpldx@163.com

Global site tag (gtag.js) - Google Analytics