飘飞的海

 

2012年10月26日

char *p和char q[]采用"abcdef"初始化的不同

摘要: 1 #include <stdio.h> 2 int main() 3 { 4 char *p="abcdef"; //p在栈中,只是一个指针没有申请内存,“abcdef”在常量数据区 5 p[2]='W'; 6 printf(p); 7 getchar(); 8 return 0; 9 } 10 //这个程序编译通过,但是程序运行会出错11 //p指向的是一块常量数据区,不能修改其值12 //另一个: 13 #include <stdio.h> 14 int main() 15 { 16 char s[]="abcdef& 阅读全文

posted @ 2012-10-26 14:10 飘飞的海 阅读(354) 评论(0) 推荐(0) 编辑

2012年10月8日

rpm用法

摘要: 一、概念RPM是RedHat Package Manager的缩写。RedHat、Fedora、CentOS上都适用。而Debian和以它为基础的Ubuntu使用apt-get命令管理软件包。二、常用命令组合-ivh:安装显示安装进度--install--verbose--hash-Uvh:升级软件包--Update;-qpl:列出RPM软件包内的文件信息[Query Package list];-qpi:列出RPM软件包的描述信息[Query Package install package(s)];-qf:查找指定文件属于哪个RPM软件包[Query File];-Va:校验所有的RPM软件 阅读全文

posted @ 2012-10-08 17:19 飘飞的海 阅读(157) 评论(0) 推荐(0) 编辑

2012年10月1日

(x&y)+((x^y)>>1)

摘要: 很不错的思路,虽然不算高效,但如果在汇编中的话,这种方法可以不产生高位溢出。大概思路应该是这样:(x&y)+((x^y)>>1),把x和y里对应的每一位(指二进制位)都分成三类,每一类分别计算平均值,最后汇总。1、是x,y对应位都是1,用x&y计算其平均值;2、是x,y中对应位有且只有一位是1,用(x^y)相当于计算机这些位的和,>>1相当于除2;3、是x,y中对应位均为0,无须计算。 阅读全文

posted @ 2012-10-01 16:55 飘飞的海 阅读(884) 评论(0) 推荐(0) 编辑

2012年9月29日

Static的作用Java

摘要: static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象。用public修饰的static成员变量和成员方法本质是全局变量和全局方法,当声明它类的对象市,不生成static变量的副本,而是类的所有实例共享同一个static变量。static变量前可以 阅读全文

posted @ 2012-09-29 16:51 飘飞的海 阅读(197) 评论(0) 推荐(0) 编辑

2012年9月27日

求最长重复子串

摘要: 一、问题描述给定一个字符串,求出其最长重复子串例如:abcdabcd ,最长重复子串是 abcd最长重复子串可以重叠例如:abcdabcda ,这时最长重复子串是 abcda ,中间的 a 是被重叠的。二、分析1、直观的解法首先检测长度为 n - 1 的字符串情况,如果不存在重复则检测 n - 2, 一直递减下去,直到 1 。这种方法的时间复杂度是 O(N * N * N),其中包括三部分,长度纬度、根据长度检测的字符串数目、字符串检测。2、使用后缀数组后缀数组:例如对于字符串String str="banana"的后缀数组是a[0]="anana",a 阅读全文

posted @ 2012-09-27 17:25 飘飞的海 阅读(459) 评论(1) 推荐(0) 编辑

数状数组

摘要: 一、概述树状数组(binary indexed tree),能够高效地获取数组中连续n个数的和。概括说,树状数组通常用于解决以下问题:数组A中的元素可能不断地被修改,怎样才能快速地获取连续几个数的和?二、树状数组基本操作普通数组(共n个元素)的元素修改和连续元素求和的复杂度分别为O(1)和O(n)。树状数组通过将线性结构数组转换成伪树状结构(线性结构只能逐个扫描元素,而树状结构可以实现跳跃式扫描),使得修改和求和复杂度均为O(lgn),大大提高了整体效率。给定序列(数列)A,我们设一个数组C满足C[i] = A[i–2^k+ 1] + … + A[i] //其中,k为i在二进制下末尾0的个数, 阅读全文

posted @ 2012-09-27 11:26 飘飞的海 阅读(224) 评论(0) 推荐(0) 编辑

2012年9月26日

重定向1>&2和2>&1

摘要: 一、文件描述符要明白这两个输出的含义,首先要明白数字的含义。在 shell 程式中,最常使用的 FD (file descriptor) 大概有三个, 分别是: 0: Standard Input (STDIN) 1: Standard Output (STDOUT) 2: Standard Error Output (STDERR) 在标准情况下, 这些FD分别跟如下设备关联: stdin(0): keyboard 键盘输入,并返回在前端 stdout(1): monitor 正确返回值 输出到前端 stderr(2): monitor 错误返回值 输出到前端 二、例子当前目录只有一个文件 阅读全文

posted @ 2012-09-26 14:52 飘飞的海 阅读(211) 评论(0) 推荐(0) 编辑

2012年9月25日

Class类理解

摘要: 一、使用原因Java程序在运行时,Java运行时系统一直对所有的对象进行所谓的运行时类型标识。这项信息纪录了每个对象所属的类。虚拟机通常使用运行时类型信息选准正确方法去执行,用来保存这些类型信息的类是Class类。Class类封装一个对象和接口运行时的状态,当装载类时,Class类型的对象自动创建。二、Class的特点1、Class 没有公共构造方法。Class 对象是在加载类时由 Java 虚拟机以及通过调用类加载器中的 defineClass 方法自动构造的,因此不能显式地声明一个Class对象。2、虚拟机为每种类型管理一个独一无二的Class对象。也就是说,每个类(型)都有一个Class 阅读全文

posted @ 2012-09-25 11:48 飘飞的海 阅读(241) 评论(0) 推荐(0) 编辑

2012年9月24日

反射机制

摘要: 一、定义JAVA反射机制是在运行状态中:1)对于任意一个类,都能够知道这个类的所有属性和方法;2)对于任意一个对象,都能够调用它的任意一个方法。这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。二、提供的功能:1)在运行时判断任意一个对象所属的类;2)在运行时构造任意一个类的对象;3)在运行时判断任意一个类所具有的成员变量和方法;4)在运行时调用任意一个对象的方法;5)生成动态代理。三、使用的原因1、扩展未知的应用。比如你写了一个程序,这个程序定义了一些接口,只要实现了这些接口的dll都可以作为插件来插入到这个程序中。那么怎么实现呢?就可以通过反射来实现。就是把dll加 阅读全文

posted @ 2012-09-24 17:51 飘飞的海 阅读(153) 评论(0) 推荐(0) 编辑

Java对象初始化顺序

摘要: 一、无继承情况静态变量、初始化块→非静态变量、初始化块→构造函数示例:Base类class Base{ public static String baseStaticStr="静态变量"; { System.out.println("Base.非静态初始化块()"); } static{ System.out.println("Base."+baseStaticStr); System.out.println("Base.静态初始化块()"); } public Base() { // TODO Aut... 阅读全文

posted @ 2012-09-24 16:08 飘飞的海 阅读(160) 评论(0) 推荐(0) 编辑

导航