- 博客(29)
- 收藏
- 关注
原创 类中构造函数、析构函数与赋值函数的重写
类中构造函数、析构函数与赋值函数的重写class String{public:String(const char *str = NULL); // 普通构造函数String(const String &other); // 拷贝构造函数~String(void); // 析构函数String & operate=(const String &other); // 赋值函
2017-02-15 11:32:58 1487
原创 二分法查找
二分法查找:java代码如下public class Bisearch { public static int bisearch(int[] data, int find){ int low = 0; int mid = 0; int upper = 0; if (null == data) {
2017-02-14 14:29:14 269
转载 用O(1)的时间复杂度删除单链表中的某个节点
用O(1)的时间复杂度删除单链表中的某个节点给定链表的头指针和一个结点指针,在O(1)时间删除该结点。链表结点的定义如下:struct ListNode{ int m_nKey; ListNode* m_pNext;};函数的声明如下:void DeleteNode(ListNode* pListHead, L
2017-02-13 16:26:55 787
原创 从文件中读取数据,排序之后输出到另一个文件中
文件中有一组数据,要求排序后输出到另一个文件中去主要有两个知识点: 排序、文件操作C++/C代码如下:[cpp] view plain copy#include #include #include using namespace std; void Order(vectorint> &data)//
2017-02-12 00:04:52 6896
转载 进程之间的同步机制
多进程的系统中避免不了进程间的相互关系。本讲将介绍进程间的两种主要关系——同步与互斥,然后着重讲解解决进程同步的几种机制。 进程互斥是进程之间发生的一种间接性作用,一般是程序不希望的。通常的情况是两个或两个以上的进程需要同时访问某个共享变量。我们一般将发生能够问共享变量的程序段称为临界区。两个进程不能同时进入临界区,否则就会导致数据的不一致,产生与时间有关的错误。解决互斥问题应该满
2017-02-11 17:49:53 5249
转载 C语言面试题大汇总之华为面试题
该面试题大全可以很好地提高C++/C程序员的技术综合实力1、局部变量能否和全局变量重名? 答:能,局部会屏蔽全局。要用全局变量,需要使用"::" ;局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那
2017-02-11 16:55:24 4728
原创 C++/C中mutalbe与volatile的详解
1、mutalbe的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词。在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量(mutable只能由于修饰类的非静态数据成员),将永远处于可变的状态,即使在一个const函数中。mutable 只能用于类的非静态和非常量数据成员。我们知道,假如类的成员函数不会改变
2017-02-10 15:57:42 522
原创 C++中virtual关键字的用法
关于virtual关键字的用法总结如下,有错误或者总结不到位的情况请能帮本人指出,非常感谢!Virtual是C++ OO机制中很重要的一个关键字。只要是学过C++的人都知道在类Base中加了Virtual关键字的函数就是虚拟函数。基类的函数调用如果有virtual则根据多态性调用派生类的,如果没有virtual则是正常的静态函数调用,还是调用基类的。1、虚函数的应用看下面的
2017-02-10 10:54:20 32831
转载 指针与引用的区别
★ 相同点: 1. 都是地址的概念; 指针指向一块内存,它的内容是所指内存的地址;引用是某块内存的别名。 ★ 区别: 1. 指针是一个实体,而引用仅是个别名; 2. 引用使用时无需解引用(*),指针需要解引用; 3. 引用只能在定义时被初始化一次,之后不可变;指针可变; 引用“从一而终” ^_^
2017-02-09 23:25:43 293
原创 两个学习指针的例子
下面的结果是多少?int a=5; int *example1(int b){a+=b; return &a;} int *example2(int b){int c=5; b+=c; return &b;} void main(){int *a1=example1(10); int *b1=exa
2017-02-09 23:05:41 375
原创 C++中的explicit关键字用法
c++中的explicit关键字用来修饰类的构造函数,被修饰的类的构造函数不能进行隐式类型的转换,既然有"显式"那么必然就有"隐式",那么什么是显示而什么又是隐式的呢?如果c++类的构造函数有一个参数,那么在编译的时候就会有一个缺省的转换操作:将该构造函数对应数据类型的数据转换为该类对象,如下面所示: class MyClass{public: MyClas
2017-02-09 22:44:26 313
转载 extern关键字讲解
基本解释 extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。 另外,extern也可用来进行链接指定。2 问题:extern 变量 在一个源文件里定义了一个数组:char a[6]; 在另外一个文件里用下列语句进行了声明:extern char *a; 请问,这样可以吗? 答案
2017-02-09 22:31:32 245
原创 观察者模式Observer
初学java的观察者模式,今天总结了下,希望指正。 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。 这个主题对象在状态上发生变化时,会通知所有观察者对象,让它们能够自动更新自己。 所谓观察者模式,举个例子现在许多购房者都密切观察者房价的变化,当房价变化时,所有购房者都能观察到,以上的购房者属于观察者,这便是观察者模式。 J
2017-02-09 18:42:20 170
转载 android数据存储_SharedPreferences的简单使用
SharedPreferences的写数据简单使用步骤如下:第一步:获取SharedPreferences对象第二步:获取SharedPreferences.Editor对象第三步:通过此Editor对象来写入数据第四步:通过此Editor对象来提交数据写入文件。SharedPreferences的读数据简单使用步骤如下:第一步:获取
2017-02-08 23:27:54 532
转载 71道经典Android面试题,涵盖了所有android知识点,值得学习和思考
1. 下列哪些语句关于内存回收的说明是正确的? (b ) A、 程序员必须创建一个线程来释放内存 B、内存回收程序负责释放无用内存 C、内存回收程序允许程序员直接释放内存 D、内存回收程序可以在指定的时间释放内存对象 2. 下面异常是属于Runtime Exception 的是(abcd)(多选) A、
2017-02-08 23:10:11 434
转载 Android 如何退出整个应用程序?
转载文章:http://blog.csdn.net/sunnyfans/article/details/7688092Android 怎么退出整个应用程序?我们在写android应用程序时,经常会遇到想退出当前Acitivity,或者直接退出应用程序.我之前的一般操作是按返回键,或者直接按home键直接返回,其实这两种操作都没有关闭当前应用程序,没有释放系统资源。有时跳转的ac
2017-02-08 23:08:17 428
原创 互斥锁mutex的使用方法
在线程实际运行过程中,我们经常需要多个线程保持同步。这时可以用互斥锁来完成任务;互斥锁的使用过程中,主要有pthread_mutex_init,pthread_mutex_destory,pthread_mutex_lock,pthread_mutex_unlock这几个函数以完成锁的初始化,锁的销毁,上锁和释放锁操作。一,锁的创建 锁可以被动态或静态创建,可以用宏PTHRE
2017-02-08 14:56:18 18508
原创 Service 的生命周期;两种启动方法和区别
1:startService Service的生命周期:onCreate() --> onStart() -> onDestroy()停止服务:service.stopService()2:bindServiceService的生命周期 onCreate() --> onBind() --> onUnBind() --> onDestroy()停止服务:UnbindS
2017-02-07 23:39:30 5387
转载 Intent介绍及Intent在Activity中的使用方法
1.Intent的实现过程 在Android中,Intent不仅可用于应用程序之间的交互,也可用于应用程序内部的Activity/Service之间的交互。 Intent负责对应用中一次操作进行描述,描述内容包括动作以及动作所涉及的数据,Android中的Intent机制则根据此描述,找到对应的组件,将Intent传递给该被调用组件,完成对组件的一次调用。 这便是In
2017-02-07 20:18:16 593
原创 Intent传递数据时,可以传递哪些类型数据
Intent传递数据时,下列的数据类型哪些可以被传递(abcd)(多选) A、Serializable B、charsequence C、Parcelable D、Bundle除了上面的还能传递基本数据类型(byte/boolean/char/short/int/float/long/double)、String/StringBuffer/StringBuil
2017-02-07 19:29:56 7593
原创 Android中使用软引用和弱引用避免OOM的方法
个人总结如下:4种类型的引用 由高到低依次为:强引用>软引用>弱引用>虚引用(1)、强引用如:Object object=new Object(),object就是一个强引用了。当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会被回收。(2)、软引用 只有内存不足(OOM)时,软引用才被回收,常用于缓存;(3)
2017-02-07 18:01:15 554
原创 Json的优缺点
转载自:http://blog.csdn.net/liaomin416100569/article/details/5480825XML——这种用于表示客户端与服务器间数据交换有效负载的格式,几乎已经成了Web services的同义词。然而,由于Ajax和REST技术的出现影响了应用程序架构,这迫使人们开始寻求`XML的替代品,如:JavaScript Object Notation
2017-02-07 14:19:46 4382
原创 C++/C中定义与声明的区别
在C++/C中,定义与声明是不一样的,主要区别在于是否分配了内存。定义:编译器创建一个对象,为该对象分配一块内存,并为该内存起一个名字,这个名字就叫变量名。例如:int a;//未初始化int b = 0;//初始化了声明 :告诉编译器一块内存已经和一个名字匹配起来了,但是并没有分配内存。例如:extern int a
2017-02-07 14:06:37 238
原创 gcc的使用
gcc命令用于生成C语言的库g++用于生成c++的库 使用g++ --help查看帮助 g++ class\First.cpp -static -g -o First编译 First.cpp 生产一个 名字为First.exe的文件 生成.o文件g++ -O0 -g3 -Wall -c -fmessage-length=
2017-02-07 14:00:46 325
转载 Android中的5种数据存储方式
Android中的5种数据存储方式Android中的5种数据存储方式数据存储在开发中是使用最频繁的,在这里主要介绍Android平台中实现数据存储的5种方式,分别是:1 使用SharedPreferences存储数据; 2 文件存储数据;3 SQLite数据库存储数据;4 使用ContentProvider存储数据;5 网络存储数据;
2017-02-07 11:57:46 490
翻译 HTTP Specification_1.1 译文
http1.0/1.1The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, hypermediainformation systems. HTTP has been in use by the World-Wide Web global
2017-02-07 09:56:57 375
转载 Java内存泄露原因详解
一、Java内存回收机制 不论哪种语言的内存分配方式,都需要返回所分配内存的真实地址,也就是返回一个指针到内存块的首地址。Java中对象是采用new或者反射的方法创建的,这些对象的创建都是在堆(Heap)中分配的,所有对象的回收都是由Java虚拟机通过垃圾回收机制完成的。GC为了能够正确释放对象,会监控每个对象的运行状况,对他们的申请、引用、被引用、赋值等状况进行监控,Java会使用有向图的方
2017-02-06 23:06:04 220
原创 tcp为什么需要3次握手和3次握手的过程
网络上关于tcp的3次握手相关的文章很多,再次不再重复,个人总结下:tcp“三次握手”的目的是: 为了防止已经失效的请求报文段突然又传送到了服务器端,因而产生错误。tcp的3次握手过程:(1)、客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;(2)、服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己
2017-02-05 19:20:47 500
原创 tcp的滑动窗口
今天阅读了TCP中滑动窗口部分的内容,总结如下:1、滑动窗口的意义: 因特网中有数以万计的TCP连接,它们需要共享带宽,缓存等网络资源。 TCP希望能最大效率的利用网络资源, 并将资源公平的分配到每条TCP连接上,还要尽量保证不让网络超负荷。滑动窗口机制有效的解决了这些问题。2、滑动窗口的作用: 滑动窗口机制是TCP用来控制发送数据包速
2017-02-05 18:18:13 1911
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人