摘要: C语言short,long 用于限定整数类型,如:short int n;long int m;在此类变量声明中,int可以省略:short n ;long m;引入这两个限定符的目的是为了提供不同长度的整数。在不同的软硬件环境下,int,short,long的长度可能不一样,但可以确定的是16(位)<=short<=int<=long, long>=32(位)signed,unsigned用于限定char或int。分别表示有符号char/int和无符号char/int。long还可以用于限定double(C99标准),其大小也和实现有关C99标准中引进了long lo 阅读全文
posted @ 2012-09-15 16:29 jiuzhongguo 阅读(4952) 评论(0) 推荐(1) 编辑
摘要: 参考文献:http://kb.cnblogs.com/page/95701/海量数据处理方法要点:1.Bloom filter 适用范围:可以用来实现数据字典,进行数据的判重,或者集合求交集。 要点:hash函数对应的值的位数组置1,查找时如果发现所有hash函数对应位都是1说明存在,很明显这个过程并不保证查找的结果是100%正确的。 举例:2.Hashing 适用范围:快速查找,删除的基本数据结构,通常需要总数据量可以放入内存 要点:hash函数选择,针对字符串,整数,排列,具体相应的hash方法 举例:在200w数据中,查找某一条数据,先对元素哈希出一个值来,然后将该值对应的数据下标处存储 阅读全文
posted @ 2012-09-15 14:57 jiuzhongguo 阅读(1890) 评论(0) 推荐(0) 编辑
摘要: volatilevolatile是一个类型修饰符(type specifier)。它是被设计用来修饰被不同线程访问和修改的变量。如果没有volatile,基本上会导致这样的结果:要么无法编写多线程程序,要么编译器失去大量优化的机会。简单地说就是防止编译器对代码进行优化.推荐一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子: 1). 并行设备的硬件寄存器(如:状态寄存器) 2). 一个中断服务子.. 阅读全文
posted @ 2012-09-14 17:57 jiuzhongguo 阅读(207) 评论(0) 推荐(0) 编辑
摘要: http://blog.csdn.net/wangfaqiang/article/details/7244552 阅读全文
posted @ 2012-08-20 15:28 jiuzhongguo 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 要想深入了解Java必须对JDK的组成,本文对JDK6里的目录做了基本的介绍,主要还是讲解了下JDK里的各种可执行程序或工具的用途Java(TM)有两个平台JRE运行平台,包括Java虚拟机,运行类库,java应用程序装载器。JRE不是开发环境,所以不包括编译器,调试器,有需要这些请安装JDK(TM)//说明:环境为WindowsXPSP3下的JDK为1.60版本JAVA_HOME=C:\jdk1.6.0//---------------------------开发文件和目录---------------------------------------jdk1.6.0___________|_ 阅读全文
posted @ 2012-08-19 15:37 jiuzhongguo 阅读(3603) 评论(0) 推荐(1) 编辑
摘要: java5以后, synchronized和wait,notify; 改为了Lock和Condition.await,Condition.signalsemaphore 信号灯工具维护当前访问的线程数;使用例子:能控制访问的最大线程数cyclicbarrier 循环障碍工具表示大家彼此等待,只有同时到达某一状态后,才一起进入下一个工作步骤。类似于任务调度的管理器啊。countDownLatch等待N个任务分别执行完去唤醒他。CountDownLatch如其所写,是一个倒计数的锁存器,当计数减至0时触发特定的事件。利用这种特性,可以让主线程等待子线程的结束。Exchanger 用于交换数据必须两 阅读全文
posted @ 2012-08-14 09:25 jiuzhongguo 阅读(255) 评论(0) 推荐(0) 编辑
摘要: 如果父类有静态成员赋值或者静态初始化块,执行静态成员赋值和静态初始化块如果类有静态成员赋值或者静态初始化块,执行静态成员赋值和静态初始化块将类的成员赋予初值(原始类型的成员的值为规定值,例如int型为0,float型为0.0f,boolean型为false;对象类型的初始值为null)如果构造方法中存在this()调用(可以是其它带参数的this()调用)则执行之,执行完毕后进入第7步继续执行,如果没有this调用则进行下一步。(这个有可能存在递归调用其它的构造方法)执行显式的super()调用(可以是其它带参数的super()调用)或者隐式的super()调用(缺省构造方法),此步骤又进入一 阅读全文
posted @ 2012-08-13 09:47 jiuzhongguo 阅读(8282) 评论(0) 推荐(0) 编辑
摘要: Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能. 相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。在进行基于Hessian的项目开发时,应当注意以下几点: ▲JAVA服务器端必须具备以下几点: ·包含Hessian的jar包 ·设计一个接口,用来给客户端调用 ·实现该接口的功能 ·配置web.xml,配好相应的servlet ·对象必须实现Serializable 接口 ·对于复杂对象可以使用Map的 阅读全文
posted @ 2012-07-30 10:38 jiuzhongguo 阅读(370) 评论(0) 推荐(0) 编辑
摘要: 阻塞指的是暂停一个线程的执行以等待某个条件发生(如某资源就绪)。Java 提供了大量方法来支持阻塞,下面让对它们逐一分析。1. sleep()方法:sleep()允许指定以毫秒为单位的一段时间作为参数,它使得线程在指定的时间内进入阻塞状态,不能得到CPU 时间,指定的时间一过,线程重新进入可执行状态。典型地,sleep() 被用在等待某个资源就绪的情形:测试发现条件不满足后,让线程阻塞一段时间后重新测试,直到条件满足为止。2. suspend()和resume()方法:两个方法配套使用,suspend()使得线程进入阻塞状态,并且不会自动恢复,必须其对应的resume() 被调用,才能使得线程 阅读全文
posted @ 2012-07-19 11:24 jiuzhongguo 阅读(294) 评论(0) 推荐(0) 编辑
摘要: 1.说说你对类加载器的理解?如何来运行一个包中的类?说说对动态类加载器的理解?类加载器是分层地布署的(class loaders are hierachical).在JVM中,类是以这种方式加载进去的,当这个类在一个已运行的类中有引用时,就会由JVM加载进去.说到这里,就会有人问了,那么第一个类是怎么加载进来的呢?第一个类是在自写类的声明的那个static main方法加载进来的.... 一个类加载器会创造一个namespace.所有的JVM中都至少包含一个类加载器,这个加载器就是内置在JVM里的primordial(或 bootstrap)类加载器.下面我来看那些non-primodial类 阅读全文
posted @ 2012-07-18 19:19 jiuzhongguo 阅读(80) 评论(0) 推荐(0) 编辑