- 浏览: 50535 次
最新评论
文章列表
一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放
,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap)— 一般由程序员分配释放,
若程序员不释放,程序结束时可能由OS回收
。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,
未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 - 程序结束后有系统释放 4、文字常量区—常量字符串就是放在这里的。
程序结束后由 ...
问题:800电话号码有如下的格式:800-8222657,其中有效的800免费电话不超过800万个,比如不存在以0或1开头的有效免费电话。现要求对这些800免费电话号码进行排序,要求内存不超过1MB。(巧妙选择数据存储方式)提示:可以使用位图法(BitMap)存放数据。
问题:从2.5亿个整数中找出不重复的数字的个数。可用的内存限定为600M;
C语言中数组必须在编写程序时定义,在定义一个数组时,还必须定义它的大小。
假如需要编写一个程序,从输入文件中读取城市的名称及气温信息。最后按照温度和城市进行排序,并确定中间气温。
对于这个问题,使用数组并不是一个好的选择。因为你不知道应该创建多大的数组才合适。或许可以声明一个认为足够大的数组,但是这会浪费内存空间,并且还有输入文件超出预期的风险。
一种方案是读两遍输入文件,第一遍确定大小,第二遍再进行数据处理。但是因为磁盘I/O是非常慢的(它几乎是总是程序中最慢的),这样效率非常低,并不可取。
一个好的方法是利用链表,它按接收到的数据来存储它们。
下面是一个利用链表,读入输入文件, ...
对算法进行改进以求获得最佳的性能通常有两种策略:优化现有的算法,或者开发新的算法。
优化算法的标准技术:
1、使I/O减到最少,减少函数调用的次数,限制计算密集型操作(浮点数运算和除法运算);
2、确定执行得最频繁的算法元素,比如冒泡排序的比较和交换;
3、检查可能由于疏忽导致而导致特别缓慢的的实现。这往往与查找最坏情况相似。
I/O通常是发生在毫秒(ms)级的时间范围内,而CPU的活动一般发生在亚微秒级的范围内。因此对于算法而言,任何I/O的代价都非常高昂。
如果不能消除I/O本身,那么可以使用缓冲区来减小它的影响。
一直以来都觉得自己的笔记本散热很差,直到最近一段时间,CPU温度都超过90℃,热得恐怖,显卡温度也非常高,以至于打一盘DOTA都卡得不行,电脑感觉要爆掉了。
想到散热,网络上的解决方案一般是提到清理风扇灰尘,但是这个方法其实并没有太大效果,除非你的风扇脏的结了蜘蛛网。
你可以尝试换风扇下面金属管贴着的3片硅胶片,把旧的硅胶片用的新的换掉,散热效果立马有了改观。这是我亲身测试的,现在电脑再也不会呼呼呼的大口喘气了。
ContentProvider学习笔记
ContentProvider简介
当应用继承ContentProvider类,并重写该类用于提供数据和存储数据的方法,就可以向其他应用共享其数据。虽然使用其他方法也可以对外共享数据,但数据访问方式会因数据存储的方式而不同,如:采用文件方式对外共享数据,需要进行文件操作读写数据;采用sharedpreferences共享数据,需要使用sharedpreferences API读写数据。而使用ContentProvider共享数据的好处是统一了数据访问方式。
一个Content Provider类实现了一组标准的方法接口,从而能够让其他的应用保存 ...
刷机和ROOT是两个不同但是很类似的动作。
刷机应该就像是给电脑重装系统,那么需要一个系统文件,一般叫做ROM,版本非常多。港版,欧版,亚太版还有韩版,他们之间的通用性需要看看ROM的详细说明,以免刷入不合适的ROM造成机器损坏。
刷机有两种方式,一种叫线刷,就是用USB线连着电脑刷机;另一种叫卡刷,就是把ROM放进SD卡再刷机。
这里的是线刷。
线刷机准备工具:
1、Odin3.exe 这是运行于电脑上用于刷机的一个平台工具;
2、一个zip格式的ROM包,把它解压之后,一般会有三个文件:PDA文件,PHONE文件,CSC文件。也有一些ROM包解压开后不含P ...
SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置比如窗口状态,一般在Activity中 重载窗口状态onSaveInstanceState保存一般使用SharedPreferences完成,它提供了Android平台常规的Long长 整形、Int整形、String字符串型的保存。
2个activity 之间的数据传递除了可以他通过intent来传递,还可以使用SharedPreferences来共享数据的方式
SharedPreferences 用法很简单.
根据Context获取SharedPrefere ...
SQLite是一种轻量级的,嵌入式的数据库系统,它占用的资源非常低。SQLite通过文件来保存数据库与,一个文件就是一个数据库。
Android平台下数据库相关类
◆SQLiteOpenHelper 抽象类:通过从此类继承实现用户类,来提供数据库打开、关闭等操作函数。
◆SQLiteDatabase 数据库访问类:执行对数据库的插入记录、查询记录等操作。
◆SQLiteCursor 查询结构操作类:用来访问查询结果中的记录。
SQLiteOpenHelper抽象类
package com.test.sqlitedemo;
import android. ...
从现实生活中理解广播机制
一听到广播我们第一感觉就会联想到小时候村里面的广播,每逢村里有什么活动都是通过广播发送的。收听收音机也是一种广播,在收音机中有很多个广播电台,每个广播电台播放的内容都不相同。接受广播时广播(发送方)并不在意我们(接收方)接收到广播时如何处理。好比我们收听交通电台的广播,电台中告诉我们现在在交通状况如何,但它并不关心我们接收到广播时做如何做出处理,这不是广播应该关心的问题,OK,到这里我们从生活中的一些小例子浅浅的理解了一下广播,那么Android 中的广播是如何操作的呢?
Android 的广播机制
在 Android 里面有各种各样的广播,比如电池的使用状 ...
Status Notification是作用是在页眉的位置,提示用户某一项操作已完成或者请求用户交互,当用户选择并点击后,会启动相应的操作。比如Service的下载任务完成,可以用此方法提醒用户;还有比如未接电话提示等等。
后台的Service不应该为了得到用户的交互去启动一项Activity,而应该生成一个Status Notification,当用户选择点击后,这个Status Notification去启动Activity。
一个Status Notification包含Status Bar和Notification Message两部分。
Activity和Ser ...
参考链接http://www.cnblogs.com/hnrainll/archive/2012/01/06/2314863.html
package com.test.messagedemo;
import android.R.string;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.app.Activity;
import android.util.Log; ...
http://www.cnblogs.com/onlylittlegod/archive/2011/05/15/2046652.html
BindService中使用bindService()方法来绑定服务,调用者和绑定者绑在一起,调用者一旦退出服务也就终止了【onCreate()->onBind()->onUnbind()->onDestroy()】
调用者Activity
MainActivity:
package com.test.bindservicedemo;
import com.test.bindservicedemo.Bin ...
Service是android 系统中的一种组件,它跟Activity的级别差不多,但是他不能自己运行,只能后台运行,并且可以和其他组件进行交互。Service的启动有两种方式:context.startService() 和 context.bindService()。 使用context.
假设有两个Activity,分别是MainActivity,SecondActivity.
MainActivity有一个EditText编辑框,设想一种情况:当我们编辑了一些内容时,MainActivity被跳转去了econdActivity,而正好系统又将MainActivity杀死,如果我们不对EditText的内容加以保存,当系统再度恢复MainActivity时,编辑好的内容就不会出现了。
可以借助onSaveInstanceState方法来保存Acitivity状态.
MainActivity:
package com.example.onsaveinstance ...