- 博客(57)
- 资源 (58)
- 收藏
- 关注
转载 *.pro、*.pri、*.prf、*.prl文件说明
转摘地址:http://blog.csdn.net/dbzhang800/article/details/6348432尽管每次和cmake对比起来,我们总是说 qmake 简单、功能少。但是qmake仍然是一个非常复杂的东西,我想大多人应该和我一样吧:不是太清楚CONFIG等变量到底如何起作用的用过的qmake内置变量和函数不超过20个看Qt Creator源码或
2014-11-14 21:39:45
1230
转载 常见hash算法
散列表,它是基于快速存取的角度设计的,也是一种典型的“空间换时间”的做法。顾名思义,该数据结构可以理解为一个线性表,但是其中的元素不是紧密排列的,而是可能存在空隙。散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列
2014-09-27 16:44:09
3051
转载 大型网站架构的演化
前言一个成熟的大型网站(如淘宝、京东等)的系统架构并不是开始设计就具备完整的高性能、高可用、安全等特性,它总是随着用户量的增加,业务功能的扩展逐渐演变完善的,在这个过程中,开发模式、技术架构、设计思想也发生了很大的变化,就连技术人员也从几个人发展到一个部门甚至一条产品线。所以成熟的系统架构是随业务扩展而完善出来的,并不是一蹴而就;不同业务特征的系统,会有各自的侧重点,例如淘宝,要解决海量的
2014-09-27 10:40:23
877
转载 拔一拔Redis和Memcached
转载地址:http://gnucto.blog.51cto.com/3391516/998509Redis与Memcached的区别传统MySQL+ Memcached架构遇到的问题 实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量的不断
2014-09-27 10:36:22
847
转载 Linux之Mount内核代码分析
本质上,Ext3 mount的过程实际上是inode被替代的过程。例如,/dev/sdb块设备被mount到/mnt/alan目录。那么mount这个过程所需要解决的问题就是将/mnt/alan的dentry目录项所指向的inode屏蔽掉,然后重新定位到/dev/sdb所表示的inode索引节点。在没有分析阅读linux vfs mount代码的时候,我的想法是修改dentry所指向的inod
2014-09-25 22:37:28
1155
转载 do{...}while(0)的意义和用法
linux内核和其他一些开源的代码中,经常会遇到这样的代码:do{ ...}while(0)这样的代码一看就不是一个循环,do..while表面上在这里一点意义都没有,那么为什么要这么用呢?实际上,do{...}while(0)的作用远大于美化你的代码。查了些资料,总结起来这样写主要有以下几点好处:1、辅助定义复杂的宏,避免引用的时候出错
2014-09-21 11:18:14
807
转载 为什么计算机和一些电子产品的时间选择在1970.1.1
现在计算机和一些电子设备时间的计算和显示是以距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量为标准的,如1970-1-10 20:47 偏移量为2724441632毫秒,出现类似字样说明时间被初始化了。小知识:格林威治标准时间GMT许多人都知道两地时间表简称为GMT或UTC,而世界时区表则通称为World Time,那么
2014-09-10 23:08:42
1137
转载 C语言volatile
一.前言1.编译器优化介绍:由于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问。另外在现代CPU中指令的执行并不一定严格按照顺序执行,没有相关性的指令可以乱序执行,以充分利用CPU的指令流水线,提高执行速度。以上是硬件级别的优化。再看软件一级的优化:一种是在编写代码时由程序员优化,另一种是由编译器进行优化。编译器优化常用的
2014-06-04 22:45:43
708
转载 Sqlplus查看Oracle版本
(1)用客户端连接到数据库,执行select * from v$instance 查看version项(2)select * from product_component_version(3)或查询V$VERSION查看组件级信息
2014-05-31 10:42:32
10351
转载 Linux grep使用实例
1.搜索和寻找文件 假设你已经在你的电脑上安装了一个全新的Ubuntu,然后你打算卸载Python。你浏览网页寻找教程,但是你发现存在两个不同版本的Python在使用,而你不知道你的Ubuntu安装器到底在你的系统中安装了哪个版本的Python,也不知道它安装了哪些模块。解决这个烦恼只需简单的运行以下命令: $ sudo dpkg -l | grep -i p
2014-04-11 23:46:58
602
转载 GCC编译器选项
转载自http://blogold.chinaunix.net/u3/94700/showart.php?id=2340792gcc 提供了大量的警告选项,对代码中可能存在的问题提出警 告,通常可以使用-Wall来开启以下警告: -Waddress -Warray-bounds (only with -O2) -Wc++0x-compat -
2014-04-06 15:14:21
1691
转载 深入理解Java内存模型——总结
处理器内存模型顺序一致性内存模型是一个理论参考模型,JMM和处理器内存模型在设计时通常会把顺序一致性内存模型作为参照。JMM和处理器内存模型在设计时会对顺序一致性模型做一些放松,因为如果完全按照顺序一致性模型来实现处理器和JMM,那么很多的处理器和编译器优化都要被禁止,这对执行性能将会有很大的影响。根据对不同类型读/写操作组合的执行顺序的放松,可以把常见处理器的内存模型划分为下面几
2014-03-31 21:55:47
707
转载 深入理解Java内存模型(五)——锁
锁的释放-获取建立的happens before 关系锁是java并发编程中最重要的同步机制。锁除了让临界区互斥执行外,还可以让释放锁的线程向获取同一个锁的线程发送消息。下面是锁释放-获取的示例代码:class MonitorExample { int a = 0; public synchronized void writer() { //1
2014-03-31 21:27:39
806
转载 深入理解Java内存模型(四)——volatile
volatile的特性当我们声明共享变量为volatile后,对这个变量的读/写将会很特别。理解volatile特性的一个好方法是:把对volatile变量的单个读/写,看成是使用同一个监视器锁对这些单个读/写操作做了同步。下面我们通过具体的示例来说明,请看下面的示例代码:class VolatileFeaturesExample { volatile long vl = 0L
2014-03-31 21:05:14
723
转载 深入理解Java内存模型(三)——顺序一致性
数据竞争与顺序一致性保证当程序未正确同步时,就会存在数据竞争。java内存模型规范对数据竞争的定义如下:在一个线程中写一个变量,在另一个线程读同一个变量,而且写和读没有通过同步来排序。当代码中包含数据竞争时,程序的执行往往产生违反直觉的结果(前一章的示例正是如此)。如果一个多线程程序能正确同步,这个程序将是一个没有数据竞争的程序。JMM对正确同步的多线程
2014-03-30 23:38:58
910
转载 深入理解Java内存模型(二)——重排序
数据依赖性如果两个操作访问同一个变量,且这两个操作中有一个为写操作,此时这两个操作之间就存在数据依赖性。数据依赖分下列三种类型:名称代码示例说明写后读a = 1;b = a;写一个变量之后,再读这个位置。写后写a = 1;a = 2;写一个变量之后,再写这个变量。读后写a = b;b = 1;读一个变量之后
2014-03-30 23:22:01
796
转载 深入理解Java内存模型(一)——基础
并发编程模型的分类在并发编程中,我们需要处理两个关键问题:线程之间如何通信及线程之间如何同步(这里的线程是指并发执行的活动实体)。通信是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写-读内存中的公共状态来隐式进行通信。在消息传递的并发模型里,线程之间没有公共状态,线程之
2014-03-30 23:16:24
745
转载 Java 线程/内存模型的缺陷和增强
Java 线程/内存模型的缺陷和增强转载自UML软件工程组织本文是由JR主持写作的《J2SE进阶》一书的部分章节整理而成,《J2SE进阶》正在写作、完善阶段。您阅读后,有任何建议、批评,请和我联系,或在这儿留言。《J2SE进阶》写作项目组感谢您阅读本文。Java在语言层次上实现了对线程的支持。它提供了Thread/Runnab
2014-03-30 23:05:57
1060
转载 7个示例科普CPU Cache
CPU cache一直是理解计算机体系架构的重要知识点,也是并发编程设计中的技术难点,而且相关参考资料如同过江之鲫,浩瀚繁星,阅之如临深渊,味同嚼蜡,三言两语难以入门。正好网上有人推荐了微软大牛Igor Ostrovsky一篇博文《漫游处理器缓存效应》,文章不仅仅用7个最简单的源码示例就将CPU cache的原理娓娓道来,还附加图表量化分析做数学上的佐证,个人感觉这种案例教学的切入方式绝对是俺的菜
2014-03-28 23:45:54
830
转载 前端导出excel
web导出excel文件的几种方法 KimmKingkimmking@163.com2009年9月4日10:19:09 总的来说,两种方法:服务器端生成和浏览器端生成。 服务器端生成就是:根据用户请求,获取相应的数据,使用poi/jxl, jacob/jawin+excel,或是用数据拼html的table或是cvs纯文本的数据格式等
2014-03-28 19:08:02
14852
原创 快速排序中的区间划分
快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。该方法的基本思想是:1.先从数列中取出一个数作为基准数。2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。3.再对左右区间重复第二步,直到各区间只有一个数。算法的思路很清晰,但是如果在区间划分过程中边界值没有处理好,也是很容易出现bug的。下面给出两种比较清晰的思维来指导区间划分代码的编
2014-01-04 16:08:31
3663
原创 C++ DLL导出类
在公司使用C++ 做开发,公司的大拿搭了一个C++的跨平台开发框架。在C++开发领域我还是个新手,有很多知识要学,比如Dll库的开发。 参考了很多这方面的资料,对DLL有一个基本全面的了解。有一个问题让我有点困惑,普通的导入导出C++类的方式都是使用_declspec(dllexport) /_declspec(dllimport)来导入导出类,但是在公司的开发中我们没有导入导出,而是定义
2013-11-02 11:22:44
13747
1
原创 Java Service Wrapper使用中的问题
今天才知道有这个工具Java Service Wrapper可以将Java程序封装成Windows后台服务。首先来学习一下使用。这是在网上找的一个使用文档,做了一点说明:具体的使用步骤:1. 将下载的Java Service Wrapper包解压到本地,目录为{WRAPPER_HOME};在环境变量中添加WRAPPER_HOME,变量值为解压后wrapper包的路径2. 服务应
2013-05-16 23:30:31
8754
1
原创 JNI快速入门
JNI快速入门JNI为Java Native Interface 即Java本地接口,使用此种机制可以实现Java和C/C++互相调用.本文对该机制进行快速入门,并记录了我在整个过程中遇到的问题及解决方法。Java调用C++代码Java调用C++代码本质上是对C++生成的动态库进行调用而不是直接对C/C++代码进行调用。第一步:设计Java端接口;public
2012-12-15 22:51:25
3183
1
原创 Android通过ksoap向webserice传递复杂类型数据
Android客户端调用服务端的方法时需要提供方法需要的参数,这个参数可能是一个简单类型,如字符串或者int值,也可能是服务端定义的一个复杂数据类型。同样的,服务端返回的可能是一个简单数据值,或者是一个复杂数据对象,这里讲一下我的实现方法。部署了一个webservice:DiaryService.下面这张图是该服务的wsdl头部描述: //创建请求,参数分别为Web服务访
2012-05-09 20:08:56
6939
7
原创 Android通过ksoap调用webservice遇到的问题及解决之道全纪录
java.lang.NoClassDefFoundError: org.ksoap2.serialization.SoapObject尝试了这篇所讲的方法http://blog.csdn.net/wuxianglong/article/details/6298654仍然没有解决。解决方式:在工程目录中新建一个libs包,将jar包复制到libs包中,然后倒入libs中的包。OK!!
2012-05-08 09:35:14
3463
5
原创 Android开发过程中遇到的问题及解决之道全纪录
操作系统 Windows7 32bitsEclipse 3.7.0(Indigo)今天开始学习Android开发,学习过程中将通过博客记录遇到的问题及其解决之道。安装ADT时遭遇“requires 'org.eclipse.wst.sse.core 0.0.0'”问题试了很多办法,但都没有成功,这里就直奔主题,经验证,下面的解决方法应该是正确的解决之道。
2012-04-27 00:00:49
3297
1
原创 JCF之equals()与hashCode()关系详解
上一篇分析了equals()与==的区别,这一篇,我们将一窥equals()与hashcode()的关系。API对于quals()的定义在上篇中已经解释过,这里再现一下:/* equals 比较非空对象引用 自反性,x.equals(x)返回true 对称性:x.equals(y)与y.equals(x)结果相同 传递性:如果x.equals(y)返回true,y.equa
2012-04-25 00:38:38
1014
原创 多态在Java 和C++编程语言中的实现比较
原文链接:http://www.ibm.com/developerworks/cn/java/j-lo-polymorph/众所周知,多态是面向对象编程语言的重要特性,它允许基类的指针或引用指向派生类的对象,而在具体访问时实现方法的动态绑定。C++ 和 Java 作为当前最为流行的两种面向对象编程语言,其内部对于多态的支持到底是如何实现的呢,本文对此做了全面的介绍。注意到在本文中,
2012-04-24 00:05:25
1036
原创 JCF之equals与==分析
学习了Hash容器之后,让我们来深入分析一下Java中的equals与==操作。==操作对于基本数据类型变量比较的是两个变量的值,对于引用型变量比较的是两个变量所指向的堆中内容的地址,即栈中的内容。对于equals,先来看看Object中的equals方法定义:/*equals 比较非空对象引用自反性,x.equals(x)返回true对称性:x.equals(y)与
2012-04-23 14:49:05
786
原创 JCF之HashMap剖析
HashMapHashMap继承了模板类AbstractMap。其内部数据结构域Hashtable相同: /** * The table, resized as necessary. Length MUST Always be a power of two. * 长度必须是2的幂。原因后文会提高。 */ transient Entry[] tab
2012-04-21 00:32:53
2429
原创 JCF之Hashtable剖析
HashtableHashtable与HashMap的UML关系图: Hashtable的应用非常广泛,HashMap
2012-04-18 23:40:59
1289
原创 JCF之ArrayList与Vector剖析
Collection接口是JCF的基础接口,定义了容器类的一些基本操作。Collection接口常用操作:int size()boolean isEmpty()判断集合中元素的多少boolean contains(Object element)boolean containsAll(Collection c)判断集合中
2012-04-15 20:58:26
1192
原创 JCF之迭代器
迭代器概述迭代器提供一种方法顺序访问一个聚合对象中的各个元素,而又不会暴露该对象的内部实现。JCF中的容器和算法是分开的,使二者联系起来的就是迭代器了。下面这段代码演示了迭代器的使用:public class TestIterator { public static void main(String[] args) { List list = new ArrayList(
2012-04-15 15:16:51
1181
原创 JCF之概述
1.1、什么是容器框架那么有了容器的概念,什么是容器框架呢?容器框架是为表示和操作容器而规定的一种统一的标准的体系结构。任何容器框架都包含三大块内容:对外的接口、接口的实现和对容器运算的算法。接口:即表示容器的抽象数据类型。接口提供了让我们对容器中所表示的内容进行单独操作的可能。实现:也就是容器框架中接口的具体实现。实际它们就是那些可复用的数据结构。算法:在一个实现了某个容器框架中
2012-04-15 14:44:58
8104
1
转载 Java泛型初探
泛型是Java SE 5.0中引入的一项特征,自从这项语言特征出现多年来,我相信,几乎所有的Java程序员不仅听说过,而且使用过它。关于Java泛型的教程,免费的,不免费的,有很多。我遇到的最好的教材有:The Java TutorialJava Generics and Collections, by Maurice Naftalin and Philip Wadler
2012-04-15 14:42:03
1091
原创 StringBuffer、StringBuilder与String剖析
1 StringBuffer与StringBuilderStringBuffer与StringBuilder都是final类,不能被继承。上图是二者的UML图,可以看出,它们都继承了抽象类AbstractBuilder。AbstractBuilder定义了StringBuffer与StringBuilder的基本操作。这是append方法实现代码: public Abs
2012-04-14 23:26:19
1478
转载 单例模式剖析
单例模式应该是设计模式中最简单易用的,但是看到下面这篇文章才知道自己考虑问题的局限性,故转载并学习之!概要 单例模式是最简单的设计模式之一,但是对于Java的开发者来说,它却有很多缺陷。在本月的专栏中,David Geary探讨了单例模式以及在面对多线程(multithreading)、类装载器(classloaders)和序列化(serialization)时如何处理这些缺陷
2012-04-05 13:28:10
810
原创 C++ 之cin与cout常见问题详解
经常要使用到cin和cout,花了点时间,把常见的问题整理了一下,供记性不好时查阅。在程序中包含iostream文件将自动创建cin对象和cou对象,即标准输入流和标准输出流。关于cout :操作符的默认含义是按位左移操作符,但ostream类重新定义了操作符,将其重载为输出方法。支持C++的所有的基本类型。对于每一种数据类型,C++都提供了operator的定义。例如
2012-03-31 00:16:52
8021
1
Nehe教程(英文版和部分中文版以及教程代码)
2011-10-10
组合数学全排列算法
2011-10-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人