2012年11月20日

- 优化的基本知识

摘要: 1. 如何书写出优秀代码(1)简练。这意味着能用五行代码解决的问题,绝不用十行代码;(2)可读性强。这说明你的代码应该更能让其他人看懂;要做到可读性强,就得多写注释;(3)模块化。优秀的代码是由小模块建成大的系统,而这些小模块又由更小的部分来组成;(4)层次性。高级层访问低级层,低级层不应该知道高级层在干些什么;(5)设计良好。在开发程序之前,要先花些时间来设计你的程序,因为思考的代价要小于调试;优秀的开发准则是,花一半时间来设计;(6)高效。程序不但要运行快,而且要节省资源。程序只做它该做的事。(7)优雅。优雅综合了简练、高效和简明等概念,同时还能让人感到高贵的气质。(8)清晰。清晰是优秀代 阅读全文

posted @ 2012-11-20 21:50 勤修 阅读(225) 评论(0) 推荐(0) 编辑

- 算法基础

摘要: 1. 算法(algorithm)。是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。2. 算法设计的要求。通常设计一个好的算法应考虑达到以下目标。(1)正确性。算法应当满足具体问题的需求。(2)可读性。主要是为了人的阅读和交流,其次才是机器执行。(3)健壮性。当输入数据非法时,算法也能适当地做出反应或进行处理,而不会产生莫名其妙的输出结果。(4)效率与低存储量需求。效率指的是算法执行的时间。存储量需求指算法执行过程中所需要的最大存储空间。3. 算法效率的度量。度量一个程序的执行时间通常有两种方法。(1)事后统计的方法。利用计算机本身的计时功能,通过一组或若干 阅读全文

posted @ 2012-11-20 21:15 勤修 阅读(315) 评论(0) 推荐(0) 编辑

2012年11月18日

- 创建型设计模式

摘要: 1. Singleton,单例模式。确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。public class Singleton{ private static Singleton instance = null; private Singleton() { // do something } public static synchronized Singleton getInstance() { if (instance == null) { instanc... 阅读全文

posted @ 2012-11-18 15:09 勤修 阅读(139) 评论(0) 推荐(0) 编辑

- 设计模式

摘要: 1. 设计模式(design pattern)。针对面向对象软件设计中的特定问题,设计模式描述了一种简单的可以复用的解决方案。2. 部分通用的设计模式。(1)抽象工厂模式。提供一种接口,用于创建任何无需指定具体类的相关对象。工厂将会找出并构造一个准确的类供程序员使用。(2)适配器模式。可把类的接口转换成能够供另一个客户端直接使用的接口。适配器模式允许若干类一起工作。可以把适配器看做一种接口适配器。(3)观察者模式。定义了对象之间多对一的依赖关系,以便当被观察对象改变状态时,所有的观察者将会得到通知,并采取相应的对策。(4)单例模式。可以确保某个类只有一个对象被实例化,并为对象提供一个全局访问点 阅读全文

posted @ 2012-11-18 14:10 勤修 阅读(129) 评论(0) 推荐(0) 编辑

- 相互通信的互斥线程

摘要: 1. 最困难的线程编程是线程之间需要相互传递数据。2. 典型的wait/notify线程同步问题。(1)当一个线程需要等待其他线程提供数据,而数据尚未就绪时,线程将会因等待数据而暂停执行。(2)另一种情况是当数据就绪时,需要通知另一个线程接收数据。3. 当同一个类中的同步方法需要相互通信时,应使用wait/notify机制进行同步控制。最常用的应用场合是解决生产者/消费者问题(Producer/Consumer),即以个线程生成数据,另一个线程消费(处理)数据。4. 消费者线程获取互斥锁之后,将会检查缓冲区中的数据是否已经就绪。生成者线程获取互斥锁之后,将会检查缓冲区中是否还有空间,从而能够继 阅读全文

posted @ 2012-11-18 00:55 勤修 阅读(236) 评论(0) 推荐(0) 编辑

2012年11月17日

- 线程的同步

摘要: 1. 线程同步是对不同线程的协调。2. 线程之间的四种关系(1)不相关的线程。(2)相关但无需同步的线程。(3)互斥线程。(4)相互通信式互斥线程。3. 不相关的线程。用以执行不同功能的线程之间没有任何交互关系。4. 相关但无需同步的线程。可用于分解处理任务。采用一组线程,使之分别作用于同一数据结构的不同数据部分,线程之间没有交互关系。eg1. 为每个套接字连接请求创建一个新的线程。eg2. 守护线程。5. 守护线程。demon或daemon。守护线程以后台方式运行,用于为其他程序或线程提供服务。// 设定为守护线程myThread.setDemon(true);Java程序不会停止守护线程。 阅读全文

posted @ 2012-11-17 18:22 勤修 阅读(246) 评论(0) 推荐(0) 编辑

- 线程基础

摘要: 1. Java的线程概念非常简单,目的是加强自己的内存管理。2. 操作系统分时间片轮流运行每一个进程,而线程只是进一步发展了这一概念,把不同进程之间的切换改为在单个进程的若干不同功能模块之间进行切换。3. 多线程程序中的任何线程都可以调用任何单线程程序中能够调用的一系列方法。eg. 让一个线程等待来自GUI的输入,让另一个线程处理接收的输入信息。4. 线程允许程序一次执行多个动作。5. 为什么采用多线程技术。(1)可以编写一个交互程序,使之不至于总是因等待用户响应而无所事事。(2)如果把程序分成若干个线程,这些程序可能更容易编写。(3)某些程序特别适合于并行处理,按线程方式编写这样的程序将会更 阅读全文

posted @ 2012-11-17 17:32 勤修 阅读(179) 评论(0) 推荐(0) 编辑

2012年11月16日

- POST和GET的区别

摘要: 1. 最初,GET用于从服务器中请求数据,POST用于向服务器发送数据。2. POST把页面数据作为HTTP请求信息体中的一系列字段发送给服务器;GET把数据字段作为查询字符串附加到URL中发送给服务器。3. GET仅限于把小量的文本数据附加到URL地址(不超过255个字符)中;而POST能够处理任意数量的文本和二进制数据。4. GET响应信息可以缓存在途经的任何位置,如浏览器、代理服务器、甚至WEB服务器;POST要求页面请求数据穿过所有的缓冲环节。 阅读全文

posted @ 2012-11-16 01:37 勤修 阅读(159) 评论(0) 推荐(0) 编辑

- TCP/IP基础知识

摘要: 1、网络通信的核心 -- 以分组的形式将数据从一个系统传输到另一个系统。2、IP协议。TCP/IP将数据位封装成分组,再增加一些头字段说明应把数据发送到哪里去。3、分组(Packet),数据报(Datagram)。如果需要发送的数据超过单个分组的容量,可以将数据分成多个组,然后以若干连续的分组形式发送数据。4、UDP(User Datagram Protocol,用户数据报协议)可以采用UDP协议在Internet上发送数据报。UDP协议依赖IP协议执行寻址和路由。UDP协议的常见应用有SNMP和TFTP。采用UDP协议发送的数据可能无法按顺序到达,有些数据可能被延迟,甚至偶尔会全部丢失。5、 阅读全文

posted @ 2012-11-16 01:23 勤修 阅读(275) 评论(0) 推荐(0) 编辑

2012年11月14日

【转载】ListView如何加载远程图片

摘要: ListView在Android应用里扮演非常重要的角色,但很多开发者在使用 ListView时都遇到过不少麻烦。一个常见的问题是:列表中要显示一系列记录,每条记录带有一张缩略图(产品照片、用户头像等等),而这个缩略图是通 过一个远程URL地址来标识的。这样的应用场景该如何实现呢?为了避免下载图片带来的延迟,所有远程图片都应该使用异步方式加载,即使用单独的线程下载图片,待图片下载完毕后显示在ImageView里。Android里可以像普通Java一样启动新线程,但当这个线程要更新界面时,必须使用Handler来请求,否则会为应用程序带来潜在危害。RemoteImageHelper为了将复杂的逻 阅读全文

posted @ 2012-11-14 22:39 勤修 阅读(166) 评论(0) 推荐(0) 编辑

导航