现在位置: 首页 > splat发表的所有文章
  • 10月
  • 05日
综合 ⁄ 共 419字 评论关闭
修改源码目录下的 build/core/config.mk 如下: - TARGET_ERROR_FLAGS := -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point + #TARGET_ERROR_FLAGS := -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point + TARGET_ERROR_FLAGS := 如果是单个模块中的错误就找到报错模块下的Android.mk,把编译标志 Werror去掉就可以。方便起见,我是直接把所有的makefile中的Werror全部去掉了,当然要做好备份。 在Android.mk中添加标志禁用指定的Werror类型也可以:......
阅读全文
  • 04月
  • 20日
综合 ⁄ 共 2324字 评论关闭
转载请注明出处:http://blog.csdn.net/lhy_ycu/article/details/39760895 工厂方法模式(Factory Method) 工厂方法:顾名思义,就是调用工厂里的方法来生产对象(产品)的。 工厂方法实现方式有3种: 一、普通工厂模式。就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建。 1、uml建模图: 2、代码实现 /** * 示例(一):普通工厂方法 * * 缺点:如果传递的字符串出错,则不能正确创建对象 */ interface Sender { public void send(); } class EmailSender implements Sender { @Override public void......
阅读全文
  • 01月
  • 02日
综合 ⁄ 共 4090字 评论关闭
伙伴系统的概述          Linux内核内存管理的一项重要工作就是如何在频繁申请释放内存的情况下,避免碎片的产生。Linux采用伙伴系统解决外部碎片的问题,采用slab解决内部碎片的问题,在这里我们先讨论外部碎片问题。避免外部碎片的方法有两种:一种是之前介绍过的利用非连续内存的分配;另外一种则是用一种有效的方法来监视内存,保证在内核只要申请一小块内存的情况下,不会从大块的连续空闲内存中截取一段过来,从而保证了大块内存的连续性和完整性。显然,前者不能成为解决问题的普遍方法,一来用来映射非连续内存线性地址......
阅读全文
  • 05月
  • 12日
综合 ⁄ 共 1587字 评论关闭
推送通知,也被叫做远程通知,是在iOS 3.0以后被引入的功能。是当程序没有启动或不在前台运行时,告诉用户有新消息的一种途径,是从外部服务器发送到应用程序上的。一般说来,当要显示消息或下载数据的时候,通知是由远程服务器(程序的提供者)发送,然后通过苹果的推送通知服务(Apple Push Notification Service,简称apns)推送到设备的程序上。 推送的新消息可能是一条信息、一项即将到期的日程或是一份远程服务器上的新数据。在系统上展现的时候,可以显示警告信息或在程序icon上显示数字,同时,也可以播放警告音。一旦用户......
阅读全文
  • 04月
  • 28日
综合 ⁄ 共 3176字 评论关闭
1. 指向常量的指针char ch[5] = “lisi”;我们先定义了一个字符数组,它有五个元素,我们用一个常量的字符串对它进行了赋值,要注意的是,这种赋值形式只能在数组定义的同时进行,为什么这里我们定义的5个元素则不是4个元素的字符数组呢?要注意,对于常量字符串来说,会自动在末尾加上一个”\0”,所以在这个地方我们定义的是5而不是4。我们假定0088::4400是字符数组ch在内存中分配的首地址,接下来我们用const char * pStr = ch;定义了一个指向常量的指针变量。要注意在这里,const在char前面,其实const在char的前面或者在char的后......
阅读全文
  • 04月
  • 12日
综合 ⁄ 共 2528字 评论关闭
一般情况下,多线程的使用涉及到了Thread:一个类extends Thread, Override Thread中 的run方法即成为一个线程类。 public class RunnableTask extends Thread { private int num; public RunnableTask(int num){ this.num = num; } @Override public void run() { int n = 10; while(n>0){ System.out.println("running "+num); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printSt......
阅读全文
  • 04月
  • 06日
综合 ⁄ 共 1311字 评论关闭
“五险”指的是五种保险,包括养老保险、医疗保险、失业保险、工伤保险和生育保险;“一金”指的是住房公积金。其中养老保险、医疗保险和失业保险,这三种险是由企业和个人共同缴纳的保费,工伤保险和生育保险完全是由企业承担的。个人不需要缴纳。这里要注意的是“五险”是法定的,而“一金”不是法定的。 五险一金的缴纳额度每个地区的规定都不同,基数是以工资总额为基数。有的企业在发放时有基本工资,有相关一些补贴,但有的企业在缴纳时,只是基本工资,这是违反法律规定的。具体比例要向当地的劳动部门去咨询。各地缴纳比例不一样。......
阅读全文
  • 01月
  • 11日
综合 ⁄ 共 577字 评论关闭
一只蜈蚣(是这么翻译的吧?)有40只左脚,40只右脚,它有a只左鞋(a>=40),b只右鞋(b>=40),它每次起床穿鞋都会先穿左脚,它从床下拿出一只鞋,如果这只鞋是左脚,那么穿上它一共需要花2s,如果是右脚,那么穿到光着的右脚上需要2s,如果右脚满了,丢到房间的角落也需要花2s。 问它可能花去的最大时间 //author: CHC //First Edit Time: 2014-07-18 13:11 //Last Edit Time: 2014-07-18 13:11 #include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <set>......
阅读全文
  • 12月
  • 11日
综合 ⁄ 共 557字 评论关闭
0.下载 1.解压boost_1_49_0.tar.g然后放到/opt/ 2. 进入解压后的文件夹 cd /opt/boost_1_49_0 3.将boost安装配置在/boost/prefix目录下 不过之前先  mkdir -p /boost/prefix  mkdir -p  /boost/include  mkdir -p /boost/lib ./bootstrap.sh --prefix=/boost/prefix  --includedir=/boost/include   --libdir=/boost/lib /boost/prefix,/boost/include,/boost/lib为我自己建的目录,boost装在自己建的目录下便于管理。其中--prefix表示程序安装在哪个目录,--includedir表示头文件存放的目录,--libdir表示库文件的目录。 4.安装......
阅读全文
  • 12月
  • 07日
综合 ⁄ 共 1991字 评论关闭
Mysql 主要思路: 第一步:先做mysql的主从(Master/Slave Replication),实现数据同步 第二部:通过Amoeba来实现读写分离,也可以通过mysql proxy(比较麻烦)。 总结 1.当MySQL主从复制在 show slave status\G 时出现Slave_IO_Running或Slave_SQL_Running 的值不为YES时,需要首先通过 stop slave 来停止从服务器,然后再执行一次本文 2.1与2.2 章节中的步骤即可恢复,但如果想尽可能的同步更多的数据,可以在Slave上将master_log_pos节点的值在之前同步失效的值的基础上增大一些,然后反复测试,直到同步OK。因为MySQL主从复......
阅读全文
  • 11月
  • 25日
综合 ⁄ 共 1208字 评论关闭
VB.NET FieldOffset特性是一个比较重要的功能。它的是心可以帮助轻松的实现特定的功能需求。大家可以通过本文介绍的内容对此进行一个详细的解读。   VB.NET编程语言是一款由微软推出的面向对象语言。我们可以在实际编程中去慢慢积累开发经验,来体验其带来的强大性和新颖性。我们在这里就为大家详细介绍一下VB.NET FieldOffset特性的相关概念。 在选择显示布局的时候,结构中的所有变量的定义必须包含VB.NET FieldOffset特性。这个特性指定了距结构开始处的距离(以字节位单位)。 Imports System.Runtime.InteropServices  ......
阅读全文
相信看过之前几篇自旋锁实现的同学对设计一个自旋锁会有一定的感觉,有几个实现的要点很实用: 1. 使用AtomicBoolean原子变量的getAndSet(true)方法来实现并发情况下,找到第一个成功执行方法的线程。这个技巧经常使用,在并发编程中经常会遇到这种需求 2.经常会使用volatile boolean类型的变量在多个线程之间同步状态,需要注意的是,对volatile变量的修改只具有可见性,不具有原子性(比如++操作)。 3. 使用一个AtomicReference原子变量的getAndSet方法来创建一个虚拟的链表结构,原理也是CAS操作,在队列锁中经常使用 这篇结......
阅读全文