01 2014 档案
摘要:一、const的作用 const是C语言的一种关键字,起受保护,防止以外的变动的作用!可以修饰变量,参数,返回值,甚至函数体。const可以提高程序的健壮性,你只管用到你想用的任何地方。(一)const修饰参数。const只能修饰输入参数。1、如果输入参数是指针型的,用const修饰可以防止指针被意外修改。 2、如果参数采用值传递的方式,无需const,因为函数自动产生临时变量复制该参数。 3、非内部数据类型的参数,需要临时对象复制参数,而临时对象的构造,析构,复制较为费时,因此建议采用前加const的引用方式传递非内部数据类型。而内部数据类型无需引用传递。(二)const修饰函数返回值。 .
阅读全文
摘要:下面我做了几个实验:1、多个线程(pthread),使用同一个句柄(一次sqlite3_open,同一个数据库文件),在多个线程中同时使用此句柄,这些线程中有的是进行select操作的,有的是进行update操作的,使用的都是sqlite3_exec函数;结果是没有发现database is locked错误;程序源码(mutitrhead.c):[cpp]view plaincopy#include#include#include#include#include"main.h"#ifdef_WIN32#include#definesleep(x)Sleep((x)*100
阅读全文
摘要:错误提示:nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadexnafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadexlibcd.lib(crt0.obj) : error LNK2001: unresolved external symbol _mainDebug/Hello.exe : fatal error LNK1120: 3 unresolved extern
阅读全文
摘要:一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事。3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域(.data),未初始化的全局变量和未初始化的静态变量在相邻的另一块区域(.bss)。 - 程序结束后由系统释放。4、文字常量区 —常量字符串就是放在这里的(.rodata)。 程序结束后由系统释
阅读全文
摘要:在C语言的学习中,对内存管理这部分的知识掌握尤其重要!之前对C中的malloc()和free()两个函数的了解甚少,只知道大概该怎么用——就是malloc然后free就一切OK了。当然现在对这两个函数的体会也不见得多,不过对于本文章第三部分的内容倒是有了转折性的认识,所以写下这篇文章作为一个对知识的总结。这篇文章之所以命名中有个“浅谈”的字眼,也就是这个意思了!希望对大家有一点帮助! 如果不扯得太远的话(比如说操作系统中虚拟内存和物理内存如何运做如何管理之类的知识等),我感觉这篇文章应该是比较全面地谈了一下malloc()和free().这篇文章由浅入深(不见得有多深)分三个部分介绍主要内容。
阅读全文
摘要:内部类是指在一个外部类的内部再定义一个类。类名不需要和文件夹相同。*内部类可以是静态static的,也可用public,default,protected和private修饰。(而外部顶级类即类名和文件名相同的只能使用public和default)。注意:内部类是一个编译时的概念,一旦编译成功,就会成为完全不同的两类。对于一个名为outer的外部类和其内部定义的名为inner的内部类。编译完成后出现outer.class和outer$inner.class两类。所以内部类的成员变量/方法名可以和外部类的相同。1. 成员内部类 成员内部类,就是作为外部类的成员,可以直接使用外部类的所有成员和方.
阅读全文
摘要:串行、并行、并发、CMS、G1、年轻代(Young Gen)、新生代(New Gen)、旧生代(Old Gen)、持久代(Perm Gen)、伊甸区(Eden)、年老区(Tenured)、幸存区(Survivor Spaces)、安全点(Safepoints)以及数百种JVM启动参数。当你试图调整垃圾回收器使你的Java应用程序获得需要的吞吐量和延迟时,这些会难倒你吗?如果回答是,你也不必担心,这样的人还有很多。文档中对垃圾收集的描述感觉就像飞机操作手册一样复杂,每个旋钮和转盘足够详尽细致,但就是搞不清如何飞起来。本文将试图解释在为特定工作负载选择和调整垃圾收集算法时需要了解的权衡点。本文将重
阅读全文
摘要:jsp页面: 测试文件上传 SpringMVC框架中的对应的Controller方法:@RequestMapping("/save")public voidsave(MultipartFile upload,String p,HttpServletRequest request) throws IOException { if(upload!=null){ String realPath = request.getSession().getServletContext().getRealPath("/WEB-INF/upload");//先获取项目的发布
阅读全文
摘要:我们先看两段代码:[java]view plaincopypublicclassTest2{publicstaticvoidmain(String[]args){f1(null);f2();}publicstaticvoidf1(Strings){System.out.println("执行哪个方法?我是String");}publicstaticvoidf1(Objecto){System.out.println("执行哪个方法?我是Object");}publicstaticvoidf2(){System.out.println("执行哪个
阅读全文
摘要:本文我们分析XBMC中视频播放器(dvdplayer)中的解复用器部分。由于解复用器种类很多,不可能一一分析,因此以ffmpeg解复用器为例进行分析。XBMC解复用器部分文件目录如下图所示:在这里我们看一下解复用器中的FFMPEG解复用器。对应DVDDemuxFFmpeg.h和DVDDemuxFFmpeg.cpp之前的分析类文章在解复用器这方面已经做过详细的分析了。在此就不多叙述了,代码很清晰。重点的地方已经标上了注释。DVDDemuxFFmpeg.h源代码如下所示:[cpp]view plaincopy/**雷霄骅*leixiaohua1020@126.com*中国传媒大学/数字电视技术**
阅读全文
摘要:类加载过程 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载七个阶段。它们开始的顺序如下图所示: 其中类加载的过程包括了加载、验证、准备、解析、初始化五个阶段。在这五个阶段中,加载、验证、准备和初始化这四个阶段发生的顺序是确定的,而解析阶段则不一定,它在某些情况下可以在初始化阶段之后开始,这是为了支持Java语言的运行时绑定(也成为动态绑定或晚期绑定)。另外注意这里的几个阶段是按顺序开始,而不是按顺序进行或完成,因为这些阶段通常都是互相交叉地混合进行的,通常在一个阶段执行的过程中调用或激活另一个阶段。 这里简要说明下Java中..
阅读全文
摘要:今天偶尔发现java的输出流的线程安全问题先看代码吧[java]view plaincopyprint?importjava.io.File;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.OutputStream;importjava.util.Random;importjava.util.concurrent.TimeUnit;publicclassTestFileWrite{publicstaticvoidmain(String[]args)throwsException{//TODOA
阅读全文
摘要:importjava.util.ArrayList;importjava.util.HashMap;importjava.util.List;importjava.util.Map;importjava.util.concurrent.Callable;importjava.util.concurrent.Executors;importjava.util.concurrent.Future;importjava.util.concurrent.ThreadPoolExecutor;importmtp.lr.test.base.Base;publicclassJavaThreadPool{pr
阅读全文
摘要:1 说明 要演示本文的例子,你必须下载Lu32脚本系统。本文的例子需要lu32.dll、lu32.lib、C格式的头文件lu32.h,相信你会找到并正确使用这几个文件。 用C/C++编译器创建一个控制台应用程序,复制本文的例子代码直接编译运行即可。2 关于运算符重载 在本教程系列的开始,介绍了Lu脚本的基本数据结构(详细参考Lu编程指南),即:[cpp]view plaincopystructLuData{//Lu基本数据结构。luIFORx;//luIFOR被定义为64位整数__int64,用于存放数据。对于动态数据类型,对象指针约定保存在x的前4个字节中。luIFORy;//存放数据。lu
阅读全文
摘要:利用HDFS java API增删改查操作在做这个实验的时候需要特别注意下面三个问题:1、hdfs安全模式需要关闭命令:./hadoop dfsadmin -safemode leave2、工程中依赖的版本必须和集群的一致,否则也会报 version不一致错误3、hadoop集群用户权限的问题,以及各个目录的作用目前为什么会有这三个问题的原因待查!!!未验证目前使用hadoop的版本(release-0.20.0)是否支持webhdfs,反正我是怎么都连接不上啊!!!从这上面看,0.20.0可能是不支持的https://jira.springsource.org/browse/IMPALA-1
阅读全文
摘要:异常处理机制:异常就是程序执行中发生的不合理情况,异常发生时程序执行自动终止。Java语言提供了异常处理机制,通过该机制处理异常可以在一定程度上完善程序的合理性、正确性。Java异常处理机制是通过异常类来实现,在Java中,Throwable类是所有错误和异常的超类,它有两个子类Error类和Exception类,其中Exception类及其子类用来捕获和处理程序执行过程中的异常。异常类型:检查异常:可以被编译器分析的异常为检查异常;非检查异常:编译器不检查非检查异常;常见异常类:1、NullPointException NullPointException类异常是由于调用null对象的方法或
阅读全文
摘要:单例模式(Singleton)是“四人组”(GoF)设计模式中的一种,归类于创建型模式。从定义上来看,它似乎是非常简单的设计模式,但是当去实现它时,却又带来了很多实现方面的担忧。单例模式的实现一直是开发者之间的一个富有争议的话题。在这里,我们将了解单例设计模式的原则,用不同的方式来实现单例模式以及一些使用上的最佳实践。单例模式单例模式限制了类的实例,并确保在Java虚拟机中有且仅有一个类的实例对象的存在。这个单例类必须提供一个全局的访问点来获得这个类的实例。单例模式一般用于日志类(logging),驱动程序对象,缓存以及线程池(thread pool)中。单例设计模式也用于其它的设计模式中,如
阅读全文

浙公网安备 33010602011771号