- 博客(81)
- 资源 (1)
- 收藏
- 关注
原创 golang-设计模式-单例模式-学习笔记
【1】基本理论 定义:单例设计模式(Singleton Design Pattern)理解起来非常简单。一个类只允许创建一个对象(或者实例),那这个类就是一个单例类,这种设计模式就叫作单例设计模式,简称单例模式。常见的使用场景:全局锁,配置信息,唯一递增ID号码生成器等。单例的几种经典实现方式特点:1. 饿汉式优点:饿汉式的实现方式...
2022-04-03 17:35:23 536
原创 golang-设计模式-开闭原则-学习笔记
【1】基本理论 开闭原则的英文全称是 Open Closed Principle,简写为 OCP。即添加一个新的功能应该是,在已有代码基础上扩展代码(新增模块、类、方法等),而非修改已有代码(修改模块、类、方法等)。 【2】功能描述 假设现在有一个API接口监控告警的需求:可以根据接口配置不同的监控维度(Tps,错误数),然后发送告警通知。后续如果要新增新的维度(eg:超时监控),可以平行扩展代码,以较小代价完成代码修改。【3】设计思路 监控告警的主要功能是查询对...
2022-03-26 20:39:42 1034
原创 golang-设计模式-接口隔离原则-学习笔记
【1】基本理论 OOP 中的接口,也可以理解为面向对象编程语言中的接口语法。接口的设计要尽量单一,不要让接口的实现类和调用者,依赖不需要的接口函数。【2】功能描述 假设我们的项目中用到了三个外部系统:Redis、MySQL、Kafka。每个系统都对应一系列配置信息,比如地址、端口、访问超时时间等。为了在内存中存储这些配置信息,供项目中的其他模块来使用,我们分别设计实现了三个 Configuration 类:RedisConfig、MysqlConfig、Ka...
2022-03-19 17:51:34 3001 1
转载 递归和非递归的方法往二叉排序树中插入新的节点
文章来源// 二叉树的建立.cpp : 定义控制台应用程序的入口点。//#include using namespace std;//定义二叉排序树的节点typedef struct Node{ int data; struct Node * lchild;//左孩子 struct Node * rchild;//右孩子}Node,* PNode;
2014-09-22 22:11:40 2229
转载 GDB下查看内存命令(x命令)
GDB下查看内存命令(x命令) 可以使用examine命令(简写是x)来查看内存地址中的值。x命令的语法如下所示: x/ n、f、u是可选的参数。 n是一个正整数,表示需要显示的内存单元的个数,也就是说从当前地址向后显示几个内存单元的内容,一个内存单元的大小由后面的u定义。 f 表示显示的格式,参见下面。如果地址所指的是字符串
2014-09-10 09:50:10 1350
转载 static define const inline的产生背景与区别
static define const inlinedefine:定义预编译时处理的宏; 只进行简单的字符替换,无类型检测typedef:定义类型别名 用于处理复杂类型 例: typedef int A; 则:A a; //定义a为intinline: 内联函数对编译器提出建议,是否进行宏替换,编译器有权拒绝 既为提出申请,不一定会成功 static
2014-09-09 10:21:03 907
转载 最长公共重复不重复子串系列问题
最长公共重复不重复子串系列问题 1.求一个字符串中连续出现的次数最多的子串例如字符串“abababc”,最多连续出现的为ab,连续出现三次。http://blog.csdn.net/ysu108/article/details/7795479分析:后缀数组arr[i= 0àstrlen(s) -1]abababcbababcababcbabcabcb
2014-09-06 18:18:40 1022
原创 时间复杂度为O(n),空间复杂度为O(1)
1.字符串左移,void*pszStringRotate(char *pszString, intnCharsRotate),比如 ABCDEFG,移3 位变 DEFGABC,要求空间复杂度 O(1),时间复杂度 O(n)(分析:分析与解法假设原数组序列为abcd1234,要求变换成的数组序列为1234abcd,即循环右移了4位,比较之后,不难看出,其中有两段的顺序是不变的:1234和
2014-09-02 17:05:51 10673
原创 找零问题
为找零问题 设计一种动态规划算法:给定金额n以及各种面额d1,d2,...,dm的数量无限的硬币,求总金额等于n的硬币的最少个数,或者指出该问题无解。
2014-08-18 22:11:48 5521
原创 算法练习(分治法,分区思想)
GetMaxMin.h#ifndef _GETMAXMIN_H_#define _GETMAXMIN_H////Demo1struct MaxMin{ int min; int max;};MaxMin GetMaxMin(int *arr,int beg,int end){ MaxMin maxmin,maxmin1,maxmin2; int mid; if(be
2014-08-18 20:54:50 980
转载 求数组中逆序对的个数
考虑一下,逆序是说a[i]>a[j],i正序”过程。 一个比较好的思路是利用分治的思想:先求前面一半数组的逆序数,再求后面一半数组的逆序数,然后求前面一半数组比后面一半数组中大的数的个数(也就是逆序数),这三个过程加起来就是整体的逆序数目了。看这个描述,是不是有点像归并排序呢?归并排序的思想就是把前一段排序,后一段排序,然后再整体排序。而且,归并排序的规程中,需要判断前一半数组和
2014-08-18 11:22:00 1176
转载 Windows和Linux动态链接库总结
动态链接库为模块化应用程序提供了一种方式,使得更新和重用程序更加方便。当几个应用程序在同一时间使用相同的函数时,它也帮助减少内存消耗,这是因为虽然每个应用程序有独立的数据拷贝,但是它们的代码是共享的。 (1)动态链接库的概念动态链接库是应用程序的一个模块,这个模块用于导出一些函数和数据供程序中的其他模块使用。应该从以下 3 个方面来理解这个概念:动态链接库是应用程序的一部分
2014-08-12 22:28:27 1827
转载 Linux系统调用和库函数
1. ANSI POSIX 库函数和系统调用 Linux下对文件操作有两种方式:系统调用(system call)和库函数调用(Library functions)。系统调用实际上就是指最底层的一个调用,在linux程序设计里面就是底层调用的意思,面向的是硬件。而库函数调用则面向的是应用开发的,相当于应用程序的api,采用这样的方式有很多种原因,第一:双缓冲技术的实现。第二,可移
2014-08-12 11:17:54 1506
原创 stl sort demo
#ifndef FILENAMESORT_H_#define FILENAMESORT_H_#include #include #include #include using namespace std;const int MAXFILENUM = 100;// 定义一个结构体来表示文件, a 代表文件名, b 代表文件类型(要么 "File" 要么 "Dir" )type
2014-08-11 16:26:20 589
转载 STL中的erase函数跟remove函数有什么区别?
http://hi.baidu.com/tkzlpocleodtxzr/item/3a3a6037fdc8460cceb9fe86STL中的erase函数跟remove函数有什么区别?vector中erase是真正删除了元素, 迭代器访问不到了。 algorithm中的remove只是简单的把要remove的元素移到了容器最后面,然后其余元素前移,迭代器还是可以访问到的。因为algor
2014-08-11 11:09:38 1461
原创 linux select 函数使用Demo
tcp_select.cpp#include #include #include #include #include #include #include #include #include #include const int MYPORT = 1240;const int BACKLOG = 5;const int BUF_SIZE = 1024;using n
2014-07-30 22:32:50 2081 1
原创 C++ 类包含关系Demo 笔记
is-a关系 类包含关系构造函数 复制构造函数 重载赋值操作符 析构函数动态内存空间分配和释放 new delete操作static 数据成员友元函数 重载输入>>和输出<<操作符
2014-07-30 22:07:45 1679
转载 linux下C和shell调用的popen函数
本文介绍popen函数的使用方法和行为机理,并给出实际的例子来辅助说明了popen函数的使用方法。popen函数使用FIFO管道执行外部程序,首先让我们看看popen的函数原型吧:#include FILE *popen(const char *command, const char *type);int pclose(FILE *stream);
2014-07-11 10:30:29 874
原创 IP 地址转换 inet_addr() inet_ntoa() 笔记
inet_addr() inet_ntoa() 及其自实现函数self_inet_ntoa() 和 self_inet_addr()笔记
2014-07-10 11:02:22 6004
转载 从N个整数中找了(n-1)个元素乘积最大的那一组
给定一个长度为N的整数数组,只允许用乘法,不能用除法,计算任意(N-1)个数的组合中乘积最大的一组。
2014-07-06 22:45:27 2180
原创 Android开源项目pulltorefresh分析与简单使用
在Android开发中有时我们需要访问网络实时刷新数据,比如QQ好友在线状态最新信息,QQ空间需要显示更多的好友动态信息,EOE论坛客户端显示更多的文章帖子信息等。android-pulltorefresh开源项目提供一个向下滑动即刷新列表的功能,将该项目稍作修改即可应用到自己的项目中。
2014-07-03 22:15:10 1505
原创 Eoe客户端源码分析---SlidingMenu的使用
Eoe客户端源码分析及代码注释使用滑动菜单SlidingMenu,单击滑动菜单的不同选项,可以通过ViewPager和PagerIndicator显示对应的数据内容。
2014-06-28 17:32:28 2254
原创 Eoe客户端源码分析---ViewPager、 PageAdapter和PageIndicator 的使用
ViewPager、 PageAdapter和PageIndicator 的使用Eoe客户端源码注释[通过ViewPager和PageIndicator显示数据]
2014-06-27 17:12:54 1698
原创 Android APP 缓存技术笔记2
0.强引用和弱引用⑴强引用(StrongReference) 强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足的问题。⑵软引用(SoftReference)如果一个对象只具有软引用,则内存空间足够,垃圾回收器就不
2014-06-23 20:43:48 973
原创 c++ string iterators incompatible
参考内容:http://bingxinye1.blog.163.com/blog/static/168797098201332294321491/
2014-06-17 16:22:22 2922
原创 Android APP 缓存技术笔记1
1.Eoe客户端源码中的缓存技术使用的核心代码及其解析:1.1 主函数分析:package cn.eoe.app.utils;//工具类包RequestCacheUtil.javapublic class RequestCacheUtil {// 公有方法 public static String getRequestContent(Context cont
2014-06-16 11:24:41 793
原创 inflate函数及其使用例子 笔记
例子:1.View view = View.inflate(this, R.layout.splash_animation, null);//splash_animation.xml filesetContentView(view);2.View selectView = getLayoutInflater().inflate(R.layout.list, null
2014-05-13 20:18:20 3770
原创 2-36进制的 两个数相加
2-36进制的 两个数相加 数的长度可以无限制 问题来源:华为编程大赛 二师弟的星际加法输入:N 进制数str1 第一个数字字符串str2 第二个数字字符串输出:str1和str2按照N进制相加的数字字符串结果
2014-05-10 19:45:14 3907
原创 C++ string_demo
string类的使用 以及#include // 使用 string 类时须包含这个文件#include using namespace std;int main(){ string str1; // 输入与输出 cout << "输入字符串 str1" << endl; cin >> str1; getchar();
2014-04-28 20:03:18 746
原创 SDCard文件读写与目录浏览 笔记
1.SD 卡文件的读写 package com.example.sdcardtest; import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStreamReader;
2014-04-22 11:23:48 1615
原创 带头结点的单链表( 冒泡排序 一次遍历求中间结点的值) 链表 就地反转 倒数第k个结点
Source Code:#include using namespace std;typedef struct student{ int num; struct student *next;}node;node *create(){//with head node node *head,*p,*s;//head -->head p-->end s -->m
2014-04-14 22:06:32 1197
原创 Android C/S结构的简易群聊应用 学习笔记2
1.功能分析:服务器端线程类不断读取客户端数据,读到客户端数据后,将该数据向所有客户端发送一次,而客户端包含两条线程:一条将用户输入数据写入Socket对应的输出流中;另一条负责读取Socket对应输入流中的数据(即从服务器发送过来的数据)。
2014-04-08 18:27:06 1030
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人