Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器 软件资源

软件开发小程序制作系统集成与运维空间租用硬件开发视频监控技术咨询与支持——联系电话:0311-88999002/88999003

首页 / 操作系统 / Linux

Linux内核中memcpy和memmove函数的区别和实现

Linux内核中memcpy和memmove函数的区别和实现

Kernel version:2.6.32CPU architecture:ARM•memcpy是把src指向的对象中的size个字符拷贝到dest所指向的对象中,返回指向结果对象的指针. •memmove也是把src指向的对象中的size个字符拷贝到dest所指向的对象中,返回指向结果对象的指针,但这两个函数在处理内存区域重叠的方式不同.注意memmove这个函数名称中有"move"这个单词,而实际上src处的数据仍然还在,并没有真的...
浅谈编程语言的类型系统

浅谈编程语言的类型系统

类型系统(type system)是一门编程语言最核心也是最基础的部分。无论该语言基于何种编程范式,都必须在开天辟地之初首先对类型系统作出明确的定义。这是因为,编程语言虽然五花八门,千奇百怪,但是归根结底,编程语言最终的目标,本质上无非是回答两个问题:如何表示信息;如何处理信息。无论是面向过程的编程语言、面向对象的编程语言、函数式编程语言、并行编程语言或者其他任何千奇百怪的编程语言,其根本性的终极目标,就是回答以上两个问题。各种编程语言之所以差异颇大,其实...
C++ Tr1中的正则表达式

C++ Tr1中的正则表达式

要使用正则表达式,首先要有类库支持,C++以前不像Java或者C#有完整的类库使用,但是在Tr1中早已提供了正则库,只是很少被人们注意罢了TR1中包含了一个正则库,来自Boost的 regex,已经纳入了0x新标准,但是新标准遥遥无期。即便如此,现在很多编译器也已经支持了,特别是微软,步伐最快!虽然现在新标准还未完全支持,但是早点了解一下也是好的:#include <iostream>#include <regex>int _tma...
Linux Shell参数替换

Linux Shell参数替换

Bash中的$符号的作用是参数替换,将参数名替换为参数所代表的值。对于$来说,大括号是可选的,即$A和${A}代表同一个参数。${}带冒号的有下面几种表达式:${parameter:-word}如果parameter为null或者未设置,整个参数替换表达式值为word${parameter:=word}如果parameter为null或者未设置,整个参数替换表达式值为word,并且parameter参数值设置为word${parameter:?word}如...
Android 中加载网络资源时的优化 缓存和异步机制

Android 中加载网络资源时的优化 缓存和异步机制

网上关于这个方面的文章也不少,基本的思路是线程+缓存来解决。下面提出一些优化:1、采用线程池2、内存缓存+文件缓存3、内存缓存中网上很多是采用SoftReference来防止堆溢出,这儿严格限制只能使用最大JVM内存的1/44、对下载的图片进行按比例缩放,以减少内存的消耗具体的代码里面说明。先放上内存缓存类的代码MemoryCache.java:public class MemoryCache {private static final String TA...
Java 创建线程池两种不同方法的比较

Java 创建线程池两种不同方法的比较

用java做抓取的时候免不了要用到多线程的了,因为要同时抓取多个网站或一条线程抓取一个网站的话实在太慢,而且有时一条线程抓取同一个网站的话也比较浪费CPU资源。要用到多线程的等方面,也就免不了对线程的控制或用到线程池。我在做我们现在的那一个抓取框架的时候,就曾经用过java.util.concurrent.ExecutorService作为线程池,关于ExecutorService的使用代码大概如下:java.util.concurrent.Executo...
Java内存管理之软引用(Soft Reference)

Java内存管理之软引用(Soft Reference)

软引用(Soft Reference)的主要特点是具有较强的引用功能。只有当内存不够的时候才回收这类内存,因此在内存足够的时候,他们通常不被回收。另外,这些引用对象还能保证在Java 抛出OutOfMemory异常之前,被设置为null。他可以用于实现一些常用资源的缓存,实现Cache的功能,保证最大限度的使用内存而不引起OutOfMemory异常。下面是软引用的实现代码:import java.lang.ref.SoftReference;public ...
Java 创建线程池

Java 创建线程池

线程池的作用:线程池作用就是限制系统中执行线程的数量。根据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果;少了浪费了系统资源,多了造成系统拥挤效率不高。用线程池控制线程数量,其他线程排队等候。一个任务执行完毕,再从队列的中取最前面的任务开始执行。若队列中没有等待进程,线程池的这一资源处于等待。当一个新任务需要运行时,如果线程池中有等待的工作线程,就可以开始运行了;否则进入等待队列。为什么要用线程池:1.减少了创建和销毁线程的次数,每个工作线...
Android 利用方向传感器获得手机的相对角度

Android 利用方向传感器获得手机的相对角度

1.Android 的坐标系是如何定义x, y z 轴的。x轴的方向是沿着屏幕的水平方向从左向右,如果手机不是正方形的话,较短的边需要水平放置,较长的边需要垂直放置。Y轴的方向是从屏幕的左下角开始沿着屏幕的的垂直方向指向屏幕的顶端。将手机放在桌子上,z轴的方向是从手机指向天空。2.方向传感器在方向传感器中values变量的3个值都表示度数,它们的含义如下:values[0]:该值表示方位,也就是手机绕着Z轴旋转的角度。0表示北(North);90表示东(E...
Linux 与 Windows 对UNICODE 的处理方式

Linux 与 Windows 对UNICODE 的处理方式

Linux 与 Windows 对于字符及字符串(无论是否 UNICODE模式)基本处理函数接口都遵循 POSIX标准,是一致的。Windows在这个基础上还在TCHAR.h中封装了自己的一个接口定义,以利于用 UNICODE宏就可以让程序在不同的环境中运行。原本非UNICODE定义基于 char 类型,UNICODE定义基于 wchar_t 类型, Windows 在winnt.h中分别定义两个宏来代表这两种类型,typedef char CHAR;#i...
Android 往手机内存卡上存储用户名与密码的操作

Android 往手机内存卡上存储用户名与密码的操作

当大家 用Android 应用 操作时,会发现有很多应用要登陆名和密码,而且,它们都能记住密码,当你退出 ,再次登陆时,你们帐号密码会自动添加上去。例:布局文件 相信都能做出来 就不一一介绍 了。下面直接来正文。创建一个LoginActivity 文件public class LoginActivity extends Activity { // 声明 获取的用户名与密码的组件public EditText edit_name, edit_pass;// ...
Android ContentObserver使用

Android ContentObserver使用

想象一个场景: 有个TextView, 用来显示数据库一个表的数据总数. 用户通过UI界面对数据进行CRUD的操作. 这个TextView如何实时监控并更新显示数据总数?目录: 第一节 ContentObserver的感性认识第二节 3个重点第三节 具体实现这里比较便捷且高效的方案是使用ContentObserver. 前提是已经建立了ContentProvider的支持. 先分析了一些网上广为流传了一个监控SMS变化的Observer例子. 画个图便于C...
Android创建导航抽屉 → Creating a Navigation Drawer

Android创建导航抽屉 → Creating a Navigation Drawer

创建抽屉导航导航抽屉是在 屏幕左侧边缘的 应用主导航选项的面板. 它大多数时间是隐藏的, 但当用户用手指从屏幕的左侧滑动, 或者当用户点击应用顶部工具栏的应用图标的时候, 它就会显示.此课程是描述 怎样有效的使用在Support Library中的DrawLayout接口 去实现一个导航抽屉.创建一个抽屉布局添加一个抽屉, 声明UI的时候需要吧DrawLayout作为你的布局文件的根视图(root view). 在DrawLayout里面, 添加一个主要内...
<< 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 >>