接口的用途无需多言。但这并不意味着可在任何场合使用接口,要知道通过接口调用和普通调用存在很大差别。首先,相比静态绑定,动态绑定性能要差很多;其次,运行期需额外开销,比如接口会复制对象,哪怕仅是个指针,也会在堆上增加一个需 GC 处理的目标。
显然,对于压力很大的内部组件之间,用接口有些得不偿失。
对比接口调用和普通调用的汇编指令,以便有个直观的认识。
普通...
分类:
其他好文 时间:
2016-05-06 16:18:34
阅读次数:
107
作为内置类型,通道(channel)从运行时得到很多支持,其自身设计也算得上精巧。但不管怎么说,它本质上依旧是一种队列,当多个 goroutine 并发操作时,免不了要使用锁。某些时候,这种竞争机制,会导致性能问题。...
分类:
其他好文 时间:
2016-05-06 16:16:40
阅读次数:
129
尽管反射(reflect)存在性能问题,但依然被频繁使用,以弥补静态语言在动态行为上的不足。只是某些时候,我们须对此做些变通,以提升性能。...
分类:
其他好文 时间:
2016-05-06 16:16:01
阅读次数:
143
代码实现自定义UITableView的cell
新建一个继承自UITableViewCell的类
重写initWithStyle:reuseIdentifier:方法,在里面实现:添加所有需要显示的子控件(不需要设置子控件的数据和frame,子控件要添加到contentView中)
进行子控件一次性的属性设置(有些属性只需要设置一次, 比如字体\固定的图片)
BNPSettingCell.h文件:#...
分类:
其他好文 时间:
2016-05-06 16:18:30
阅读次数:
177
通用对象按属性排序类
CompareUtil.java
public class CompareUtil implements Comparator {
private ArrayList sortItemList = new ArrayList();
private class SortItem {
public String f...
分类:
编程语言 时间:
2016-05-06 16:15:51
阅读次数:
197
顺驰D1开发平台的下位机控制接口参考:http://blog.csdn.net/EAIBOT/article/category/6204460
这里我们讲下如何使用树梅派(Raspberry Pi)和下位机相连,用来控制顺驰D1开发平台的移动。主要分如下几个部分:线路连接D1开发平台预留两个线: 5V的电源线和USB数据线。
把这两根线分别和树梅派的供电口(micro usb)、USB接口(四个...
分类:
其他好文 时间:
2016-05-06 16:15:57
阅读次数:
243
2016.05.04 –
个人理解笔记。(无通信基础且急躁,片面/错误概率大大的。已待纠正)05.04
在设计OFDM系统时,需要考虑诸如“子载波数量”、“保护间隔”、“OFDM符号周期”、“子载波间隔”、“每个子载波调制类型”以及“前向纠错编码类型”等许多参数。这些参数受系统需求如“可用带宽”、“位速率”、“可容忍的时延”等的影响。有些需求对参数的要求是冲突的[2]^{[2]}。05.051...
分类:
其他好文 时间:
2016-05-06 16:16:41
阅读次数:
476
Item M8:理解各种不同含义的new和delete...
分类:
编程语言 时间:
2016-05-06 16:18:09
阅读次数:
191
写在前面的话:
适值毕业之季,因毕业论文的需要,又恰好看到这篇博文,写的甚是不错,因此,进行了翻译,作为我的第一篇博文。这里给出原作者Blog Address(http://www.erogol.com/brief-history-machine-learning/)。
机器学习就是在非精确编程的情况下,让计算机根据训练过程进行自我学习的科学。在过去的十年中,机器学习极大的促进了好多高新技...
分类:
系统相关 时间:
2016-05-06 16:15:30
阅读次数:
500
常用的模式:mvc、mvp、mvvp
不同的模式预示着不同的代码结构和代码拆分方法。
代码按照经典的模式去写,让我们的代码更加合理化了,更具备扩展性。就像搭建大楼一样,如果代码乱放,可能狗窝都搭建不出来。
a开发人员,你应该把代码写在哪里,怎么调用我架构里面的东西?把代码整合在一起;通过架构限制开发人员,代码不能乱放!
一、用户登录的实现:
二、MVC模式在安卓中的体现:...
分类:
移动开发 时间:
2016-05-06 16:17:37
阅读次数:
481
我在看过几篇关于RxJava源码分析的博客后,不知是我的水平有限还是源码过于博大精深,导致花了很长的时间才搞清楚其运行原理。我个人觉得应该有更好的办法来快速剖析理解,于是决定写下本文。...
分类:
编程语言 时间:
2016-05-06 16:17:05
阅读次数:
308
闭包(closure)也是很常见的编码模式,因它隐式携带上下文环境变量,因此可让算法代码变得更加简洁。...
分类:
其他好文 时间:
2016-05-06 16:16:05
阅读次数:
130
以下内容仅是我个人对八数码问题和A*寻路算法的理解,因为我是菜鸟一个,所以写的比较通俗。
八数码问题:
八数码问题也称为九宫问题。在3×3的棋盘,摆有八个棋子,每个棋子上标有1至8的某一数字,不同棋子上标的数字不相同。棋盘上还有一个空格,与空格相邻的棋子可以移到空格中。要求解决的问题是:给出一个初始状态和一个目标状态,找出一种从初始转变成目标状态的移动棋子步数最少的移动步骤。...
分类:
编程语言 时间:
2016-05-06 16:15:54
阅读次数:
495
第一步:程序入口函数
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
主函数中主要实现以下功能:
初始化窗口对象,并注册
//初始化窗口对象
WNDCLASSEX wc;
wc.cbClsExtra = 0;
w...
开发之困实际开发中最常遇到的问题是类A直接依赖类B.当我们希望将类A修改为依赖类C时,就必须要通过修改类A来实现.这种 情况下类A作为高层的业务模块,负责复杂的业务模块,而类B和类C是底层模块,负责基本的原子操作.实际工程中类A作为业务模块,往往是非常复杂,如果修改类A可能会牵一发而动全身,
,进而带来不必要的业务风险.那么这类问题该如何应该呢?...
分类:
其他好文 时间:
2016-05-06 16:13:54
阅读次数:
222