自定义博客皮肤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)
  • 资源 (1)
  • 收藏
  • 关注

转载 delete p 和delete []p的区别

两者的区别主要有:1,对于char这样的基础数据类型,delete和delete[]是等价的。2,对于class A这样带析构函数的类型,delete和delete[]是不同的。参见http://blog.csdn.net/wwwsq/article/details/5310912 http://hi.baidu.com/lancewoo/item/0ebfe1e74c21

2012-08-16 09:07:13 1473

原创 选择排序 学习

<!--@font-face {font-family:"Cambria Math"}@font-face {font-family:"Microsoft YaHei"}@font-face {font-family:Tahoma}@font-face {font-family:"Microsoft YaHei"}p.MsoNormal, li.MsoNorma

2012-05-12 15:02:51 536

原创 交换排序:快速排序 学习

<!--@font-face {font-family:"Cambria Math"}@font-face {font-family:"Microsoft YaHei"}@font-face {font-family:Tahoma}@font-face {font-family:"Microsoft YaHei"}p.MsoNormal, li.MsoNorma

2012-05-12 14:59:32 415

原创 交换排序:冒泡排序 学习

<!--@font-face {font-family:"Cambria Math"}@font-face {font-family:"Microsoft YaHei"}@font-face {font-family:Tahoma}@font-face {font-family:"Microsoft YaHei"}p.MsoNormal, li.MsoNorma

2012-05-12 14:53:43 442

原创 插入排序 二分插入排序 学习

<!--@font-face {font-family:"Cambria Math"}@font-face {font-family:"Microsoft YaHei"}@font-face {font-family:Tahoma}@font-face {font-family:"Microsoft YaHei"}p.MsoNormal, li.MsoNorma

2012-05-12 14:49:27 800

原创 Java访问权限

Java访问权限Java中的访问权限有public,private,protected和默认的包访问权限,如果类中的属性方法没有显示的指明访问权限,则具有包访问权限,我喜欢称它为packeged权限,很多人也称它为friendly访问权限,而packaged和friendly这两个关键字在实际中都是不存在的。访问权限的等级最大到最小依次是:public>protected>包访问权限(无关

2012-05-09 09:22:14 2181

转载 JAVA 垃圾回收机制的讨论

java内存泄漏http://blog.csdn.net/yirentianran/article/details/2537985http://blog.csdn.net/elimago/article/details/1946380http://blog.csdn.net/bage1988320/article/details/6718509 Java的一个重要优点就是通过垃

2012-05-09 08:14:54 585

转载 JAVA 类加载的原理

Java类加载原理解析http://www.blogjava.net/zhuxing/archive/2008/08/08/220841.html JVM三种预定义类型类加载器我们首先看一下JVM预定义的三种类型类加载器,当一个 JVM启动的时候,Java 缺省开始使用如下三种类型类装入器: 启动(Bootstrap)类加载器:引导类装入器是用本地代码实现的类装入器,它

2012-05-09 08:14:05 415

转载 《透视Java》 学习心得(二)

混淆——一种知识产权的保护措施混淆是将字节码变换成人不易读懂的格式,达到使逆向工程复杂的目的。由于java字节码是标准化的,而且很好归档。混淆程序加载java类文件,分析其格式然后根据所支持的特性进行变换。虽然新文件具有不同的内部结构,但其行为恰恰与原始文件一致。混淆的手段:(1)    去除调试信息:调试信息对运行的类是没用的,但调试程序用它将字节码与源代码结合起来。这样方便了重

2012-05-09 08:11:55 801

原创 透视java 学习反编译

进行反编译的原因:(1)恢复意外丢失的源代码。(2)了解一种特性或窍门的实现。(3)排除不具有良好文档说明的应用程序或库文件的bug。(4)修复不存在的源代码的第三方代码中的紧急bug。(5)学习保护自己的代码免于被破译。必备工具——反编译器反编译器有JAD、JCODE、Mocha,个人推荐使用JAD,因为它免费。虽然操作起来可能没有一些具有可视化界面UI的的反编译器那么简单,但他毕竟

2012-05-07 09:22:51 1026

原创 window 多线程学习

进程与线程进程:(1)是系统中正在运行的一个应用程序。(2)资源的分配单位。一个32位的windows程序并不执行什么指令,但他占据着4GB的地址空间,地址空间内有代码、数据、资源等等。(3)单个进程可能包含几个线程,一个32为windows进程一定有一个主线程。如果没有执行的线程,进程就没有存在的必要,系统将自动清除进程及地址空间,线程:(1)进程中执行运行的最小单位,是一项任务

2012-05-03 10:51:14 3360

原创 VS2005 内存泄露的快速寻找方法

内存泄露的快速寻找方法http://blog.csdn.net/ly402609921/article/details/5705663 看看代码:// MemoryLeak.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #ifdef _DEBUG#define DEBUG_CLIENTBLOCK ne

2012-05-01 14:55:21 1957

原创 句柄类 windows核心对象

首先,你要明白Windows对象和C++对象的区别。C++对象(即MFC类CWnd)实际上并没有把整个Windows对象都包装在其中,它只是有一个窗口句柄。(在MSDN上查看CWnd类的成员变量,确实只有一个HWND hWnd,成员函数有Attach()和Dettach()、Create()等)。这个窗口句柄如果指向一个实际存在的窗口对象,那么这个C++对象就是有效的,否则这个MFC对象是

2012-05-01 14:47:05 977

原创 同步与异步 阻塞与非阻塞 WinSock编程

首先,先推荐两个人写的博客,里面有他们对于《同步与异步 阻塞与非阻塞》的理解,最近被这两个概念搞的头疼,一直也没有什么头绪。http://blog.csdn.net/historyasamirror/article/details/4270633http://www.cppblog.com/converse/archive/2009/05/13/82879.html 个人理解,同步

2012-05-01 14:29:50 2964

转载 JAVA 你不知道的秘密 覆写,重载,隐藏,遮蔽,遮掩

覆写(override)一个实例方法可以覆写(override)在其超类中可访问到的具有相同签名的所有实例方法,从而使能了动态分派(dynamic dispatch);换句话说,VM 将基于实例的运行期类型来选择要调用的覆写方法。覆写是面向对象编程技术的基础,并且是唯一没有被普遍劝阻的名字重用形式:class Base {public void f() { }}class Derived

2012-04-17 16:43:27 1068

原创 Java 类的初始化的顺序

《JAVA解惑》的解惑40中提到JAVA中的实例变量的初始化操作优先与构造器的程序体而运行。这一点与C++有天大的区别。我们大家都知道,对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序依次是(静态变量、静态初始化块)>(变量、初始化块)>构造器。继承体系中一般的顺序为:父类的(静态变量、静态初始化块)>子类的(静态变量、静态初始化块)>父类的(变量、初始化块)>父类

2012-04-17 14:32:46 411

转载 Java 反射机制

http://blog.csdn.net/justinavril/article/details/2873664这篇博客中有比较简单的讲解,很适合初学者。package wuxuzhao;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;public cl

2012-04-17 09:07:02 326

转载 有关字符集的解释

常用字符集ASCII:        American Standard Code for Information Interchange,美国信息交换标准码。       目前计算机中用得最广泛的字符集及其编码,由美国国家标准局(ANSI)制定。 它已被国际标准化组织(ISO)定为国际标准,称为ISO 646标准。 ASCII字符集由控制字符和图形字符组成。 在计算机的存储单元中

2012-04-16 15:35:59 576

原创 《Effective Java》学习心得

public class e1 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub double i1=2.0; double i2=1.1; //小数相减的精度问题 System.out.print

2012-04-11 16:47:02 472

原创 一个函数函数指向自身的指针

#include using namespace std;//法一:有害的写法// typedef void (*VoidFuncPtr)();// typedef VoidFuncPtr(*FuncPtr)();// VoidFuncPtr f()// {// return (VoidFuncPtr)f;// }// void main()// {/

2012-04-09 12:16:03 639

转载 《More Effective C++》学习心得(八) 要求(或禁止)对象产生于heap中

一。要求对象必须产生于heap中#include #include using namespace std; class Print{public: void submitJob() { cout<<this<<":Print::submitJob()\n"; } void reset() { cout<<this<<":Print::

2012-04-08 15:37:41 529 1

转载 《More Effective C++》学习心得(七) 构造函数私有化

一.只允许一个对象的生成每当产生一个对象,就会有一个构造函数被调用,如果“阻止某个class产出对象”,最简单的办法就是将其constructors 声明为private:#include using namespace std; 将构造函数私有化可以"阻止某个class对象的生成"法一:建立fried函数可以允许生成唯一的一个class对象class Pri

2012-04-08 15:00:28 724

原创 全局变量,静态变量,局部变量的理解

1、静态全局变量    在全局变量前面加上static,该变量就成了一个静态全局变量。静态全局变量有如下特点:    1)、变量存储在全局数据区;    2)、变量会被自动初始化为0;    3)、静态全局变量在整个编译单元(整个文件)内都是可见的,而在文件之外是不可见的。// file1.cpp #include using namespace s

2012-04-07 20:39:25 528

原创 c++ 类在内存中的大小(含虚函数,虚基类)

在类中,如果什么都没有,则类占用1个字节,一旦类中有其他的占用空间成员,则这1个字节就不在计算之内,如一个类只有一个int则占用4字节而不是5字节。如果只有成员函数,则还是只占用1个字节,因为类函数不占用空间虚函数因为存在一个虚函数表,需要4个字节,数据成员对象如果为指针则为4字节,注意有字节对齐,如果为13字节,则进位到16字节空间。一.虚函数在内存中的结构#include

2012-04-07 15:51:08 1920

原创 C++内存对齐

一、为什么会有内存对齐?字,双字,和四字在自然边界上不需要在内存中对齐。(对字,双字,和四字来说,自然边界分别是偶数地址,可以被4整除的地址,和可以被8整除的地址。)无论如何,为了提高程序的性能,数据结构(尤其是栈)应该尽可能地在自然边界上对齐。原因在于,为了访问未对齐的内存,处理器需要作两次内存访问;然而,对齐的内存访问仅需要一次访问。一个字或双字操作数跨越了4字节边界,或者一个四字

2012-04-07 14:08:33 642

原创 指针常量和常量指针的区别

告诉你一个小秘诀:指针常量与常量指针如何区别, =》把其*读作指针,把其const读作常量 类似格式* const 则是指针常量=》指向常量 类似格式const * 则是常量指针=》常量指向1. 指向常量的指针char ch[5] = “lisi”;我们先定义了一个字符数组,它有五个元素,我们用一个常量的字符串对它进行了赋值,要注意的是,这种赋值形式只能在数组定义的同时进行

2012-04-06 16:11:34 488

转载 《More Effective C++》学习心得(六) auto_ptr的用法

#includeusing namespace std;class ALA{public: virtual void processAdoption()=0;protected:private:};class Puppy:public ALA{public: virtual void processAdoption() { }prot

2012-04-06 14:58:58 491

转载 《More Effective C++》学习心得(六)各种new和delete操作符

new operator 和operator new 的区别string *ps=new string("Memory Management");delete ps;相当于void *rawMemory=operator new(sizeof(string));string *ps=new(rawMemory) string("Memory Management");ps-

2012-04-06 11:30:59 365

转载 《More Effective C++》学习心得(五) 前置和后置自增运算符

#include using namespace std; class sample{public: sample(int i=0,int j=0) { x=i;y=j; } void print() { cout<<"x="<<x<<";y="<<y<<endl; } sample & operator++() { ++x;++

2012-04-06 10:28:04 1203

转载 《More Effective C++》学习心得(四) 关于类中类型转换

#include using namespace std; // example1:单参数构造函数可将内建类型转换为自建的类类型class A{public: A(double i=0.0){d=i;} void print() { cout<<"d="<<d<<endl; } ~A(){cout<<d<<"析构"<<endl;}protecte

2012-04-06 08:46:14 384

转载 《More Effective C++》学习心得(三) 不要以多态性处理类的对象数组

#include using namespace std; class Base{public: operator int() const { return i1; }protected:private: int i1;};class Derived:public Base{public: operator int() const

2012-04-06 08:25:47 485

原创 部分赋值和异型赋值

#include using namespace std;class Animal{public: Animal(int i=1) { i1=i; } virtual Animal& operator=(const Animal &rhs) { i1=rhs.i1; return *this; } void did() {

2012-04-05 19:58:54 425

原创 cout输出顺序

#include using namespace std; int a=0;int fun1( ) { cout << "f1"<<endl;; a++; return a; }int fun2( ) { cout << "f2"<<endl;; a++; return a; }int main() { int i

2012-04-05 19:49:25 915

转载 《More Effective C++》学习心得(二)

指针和引用:这是一个很基础的问题;这里就不多说了。但要记住:1)当你知道你需要指向某个东西,而且绝不会改变指向其他东西,或是当你实现一个操作符而其语法需求无法由pointers达成,你就应该选择reference。任何其他时候,请采用pointers。   2)reference不允许变量为null,所以pointers和reference的另一个重要差异:pointers可以被重新赋

2012-04-05 15:25:43 429

转载 《More Effective C++》学习心得(一)

首先,由于c++的编译器的不同,不保证所有的程序都能得到满意的结果。本人是使用的是VS2005。记得大学刚开始学C++用的是VC6.0,C++98年的标准。有够老的。该吸收心得知识了。 先介绍新C++标准的两个新增的特性。1)支持bool。2)新增种转型操作符。#include using namespace std;class Widget{public: vir

2012-04-05 15:10:29 344

Reversing:逆向工程揭密 书中源码

《Reversing:逆向工程揭密》描述的是在逆向与反逆向之间展开的一场旷日持久的拉锯战。作者Eldad Eilam以一个解说人的身份为我们详尽地评述了双方使用的每一招每一式的优点与不足。   书中包含的主要内容有:操作系统的逆向工程;NET平台上的逆向工程;逆向未公开的文件格式和网络协议;逆向工程的合法性问题;拷贝保护和数字版权管理技术的逆向工程;防止别人对你的代码实施逆向工程的各种技术;恶意程序的逆向工程;反编译器的基本原理以及它对逆向过程的影响。   本书适合软件逆向工程的从业人员以及软件开发者们阅读。

2012-02-14

空空如也

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

TA关注的人

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