摘要:
一、NINetworkImageView是Nimbus下载图片的类,类是这么描述的:OverviewA network-enabled image view that consumes minimal amounts of memory.Intelligently crops and resizes images for optimal memory use and uses threads to avoid processing images on the UI thread.消耗很少的内存使用网络图片.使用线程以避免在UI线程上下载处理,并智能,调整优化内存的使用图像。真的很好用,一步加载 阅读全文
摘要:
strchr函数用于在字符串s中搜索字符c,如果找到了字符c,则返回指向字符c的指针,如果没有找到则返回null。函数实现如下:290 /**291 * strchr - Find the first occurrence of a character in a string292 * @s: The string to be searched293 * @c: The character to search for294 */295 char *strchr(const char *s, int c)296 {297 for (; *s != (char)c; ++s)298 ... 阅读全文
摘要:
在Linux这类操作系统中,有大量的命令行处理程序,例如gcc -o test test.c,那么像这么多的命令行参数它是怎么去分析的呢,就要用到这里介绍的getopt函数。getopt函数最早出现在UNIX操作系统中,因为早期与操作系统交互全是命令终端下,最后这个函数就作为了GNU C的一部分。函数原型如下:int getopt(int argc, char * const argv[], const char *optstring);argc、argv当然是main中的argc和argv了,分别代表命令行参数个数和命令行参数列表。要使用这个函数,需要包含头文件unistd.... 阅读全文
摘要:
软件功能参考下表中列出了由当前大多数发布的发布的Android平台所支持的软件功能描述符。对于应用程序要使用或需要的单一功能,都要在应用程序的清单的<uses-feature>元素中使用android:name属性来进行声明。功能属性值说明注释Live Wallpaperandroid.software.live_wallpaper应用程序使用或提供Live WallpapersSIP/VOIPandroid.software.sip应用程序要使用设备上的SIP服务android.software.sip.voip子功能。应用程序要使用设备上的基于SIP的VOIP服务。声明这个子功 阅读全文
摘要:
功能参考下面列出了关于软/硬件功能,以及能够暗示Google Play的权限的参考信息。硬件功能下面列出了被大多数当前发布的平台所支持的硬件功能描述。对于应用程序所使用或需求的每一个硬件功能,都要在一个独立的<uses-feature>元素的android:name属性中声明。功能类型:Audio功能描述符:Android.hardware.audio.low_latency说明:应用程序使用设备上的低延迟的音频通道,并且对于输入或的延迟或之后是敏感的。备注:功能类型:Audio功能描述符:Android.hardware.audio.low_latency说明:应用程序要使用设备 阅读全文
摘要:
动态添加Button的效果就是点击之后,生成一个按钮,并为按钮添加点击的方法。1、在xib文件上拖拽添加一个button,标题为:添加button。2、按住ctrl键拖拽到addbuttonViewController.m文件空白处,生成IBAction,填充代码后如下:- (IBAction)addButton:(id)sender { CGRect frame = CGRectMake(90, 200, 200, 60); UIButton *someAddButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];... 阅读全文
摘要:
试比较以下两行代码在被多次反复执行时的效率差异:由于String被实现为不可变对象,JVM底层将其实现为常量池,既所有值等于"stringette" 的String对象实例共享同一对象地址,而且还可以保证,对于所有在同一JVM中运行的代码,只要他们包含相同的字符串字面常量,该对象就会被重用。我们继续比较下面的例子,并测试他们在运行时的效率差异:[java] view plaincopyBooleanb=Boolean.valueOf("true");Booleanb=newBoolean("true");前者通过静态工厂方法保证了每次 阅读全文
摘要:
有一些工具类(utility class)不希望被实例化,实例对它没有任何意义。然而,在缺少显式构造器的情况下,编译器会自动提供一个公有的、无参的缺省构造器(default constructor),对于用户而言,这个构造器与其他的构造器没有任何区别。在已发行的API中常常可以看到一些被无意识实例化的类。企图通过将类做成抽象类来强制该类不可被实例化,这是行不通的。该类可以被子类化,并且该子类也可以被实例化。这样做甚至会误导用户,以为这种类是专门为了继承而设计的。然后,有一些简单的习惯用法可以确保类不可被实例化。我们只要让这个类包含私有构造器,它就不能被实例化了:[java] view plai 阅读全文
摘要:
对于单实例模式,相信很多开发者并不陌生,然而如何更好更安全的创建单实例对象还是需要一些推敲和斟酌的,在Java中主要的创建方式有以下三种,我们分别作出解释和适当的比较。1. 将构造函数私有化,直接通过静态公有的final域字段获取单实例对象:[java] view plaincopypublicclassElvis{publicstaticfinalElvisINSTANCE=newElvis();privateElivs(){...}publicvoidleaveTheBuilding(){...}}这样的方式主要优势在于简洁高效,使用者很快就能判定当前类为单实例类,在调用时直接操作Eliv 阅读全文
摘要:
静态工厂和构造器有个共同的局限性:它们都不能很好地扩展到大量的可选参数。考虑用一个类表示包装食品外面显示的营养成分标签。这些标签中有几个域是必须的:每份的含量、每罐的含量以及每份的卡路里,还有超过20个可选域:总脂肪量、饱和脂肪量、转化脂肪、胆固醇、钠等等。大多数产品在某几个可选域中都会有非零的值。对于这样的类,应该用哪种构造器或者静态方法来编写呢?1. 重叠构造器模式[java] view plaincopy//Telescopingconstructorpattern-doesnotscalewell!publicclassNutritionFacts{privatefinalintser 阅读全文