- 博客(27)
- 资源 (6)
- 收藏
- 关注
原创 集合遍历时删除元素异常(ConcurrentModificationException)分析
传统方式下的Collection在迭代集合时,不允许对集合进行修改。根据AbstractList的checkForComodification方法的源码,分析产生ConcurrentModificationException异常的原因传统方式下的Collection在迭代集合时,不允许对集合进行修改。根据AbstractList的checkForComodificati
2016-09-28 23:06:10 1753 1
原创 二叉树恢复
一、已知二叉树的前序序列和中序序列,求解树。1、确定树的根节点。树根是当前树中所有元素在前序遍历中最先出现的元素。---》从前序遍历第一个元素入手。找到结合中序分成两半2、求解树的子树。找出根节点在中序遍历中的位置,根左边的所有元素就是左子树,根右边的所有元素就是右子树。若根节点左边或右边为空,则该方向子树为空;若根节点左边和右边都为空,则根节点已经为叶子节点。3、递归
2016-09-21 17:07:27 436
原创 Linux进程状态
(2) 进程状态:S(state)O:进程正在处理器运行,这个状态从来木见过.S:休眠状态(sleeping)R:等待运行(runable)R Running or runnable (on run queue) 进程处于运行或就绪状态I:空闲状态(idle)Z:僵尸状态(zombie) T:跟踪状态(Traced)B:进程正在等待更多的内存页D:不可中断的深度
2016-09-20 14:04:06 439
原创 首地址相加
int main() { int a[3][4] = {1,3,5, 7,9}; printf("%u\n", a); printf("%u\n", a+1);// 4个元素*每个元素4个字节=16 printf("%u\n", &a+1);// 12个元素*每个元素4个字节=48 /*结果:160641
2016-09-20 11:21:50 333
原创 移位操作题目
int main() { int a =1; int b =32; printf("%d, %d\n", a<<b,132); // 结果1,1 移位操作(32|31) }对于32位的int, 多数编译器能够一次最多处理31位的左移(通过利用或运算),因此对于"使用gcc编译时会提示大于width of typ
2016-09-20 11:11:52 358
原创 函数指针题目
用变量a给出下面的定义:一个有10个指针的数组,该指针指向一个函数,该函数有一个整形参数并返回一个整型数int *a[10];int (*a)[10];int (*a)(int);int (*a[10])(int);正确答案:D
2016-09-20 10:37:09 549
原创 数组的数组
int main() { int A[3][4] = { {1,2, 3,4}, {5,6, 7,8}, {9,10, 11,12} }; printf("%d\n", A[1][1]); // 结果:6 printf("%d\n", ((*(A+1))
2016-09-20 10:34:02 814
原创 Char (*(*x())[]) ()
This looks like an evil example straight from the 2nd edition of Kernighan and Ritchie (The C Programming Language), p. 122 (section 5.12: Complicated Declarations), where it is described as a functio
2016-09-20 10:25:33 1688
转载 64位os结构体占字节数
在64位操作系统上,如下数据结构占用的存储空间大小为多少字节123456structA{ unsigned inta; charb[2]; doublec; shortd;}
2016-09-20 10:06:47 623
转载 如何将Android Studio项目提交(更新)到github
转载:http://blog.csdn.net/jinrall/article/details/45787477前言在写这篇文章之前首先我假设你已经安装了Android Studio 并已经会用Android Studio建立项目。 那么这篇博文既然是将项目提交到github上,自然我们要明白两个相关概念:git和github。 git是版本控制系统,跟svn、cvs同级概念
2016-09-16 21:39:33 4215
原创 怎么删除github上的仓库
1.到你的个人中心.点击你的个人账号.下图的红色部分2.点击repositories(仓库),选择你要删除的项目3.code这一行导航栏 最后的一个. setting4.下拉页面到最下面Delete this repostory 按钮删除
2016-09-16 21:30:15 1504
原创 C++多态实现原理
当类中声明虚函数时,编译器会在类中生成一个虚函数表 虚函数表是一个存储类成员函数指针的数据结构 虚函数表是由编译器自动生成与维护的 virtual 成员函数会被编译器放入虚函数表中 存在虚函数时,每个对象中都有一个指向虚函数表的指针
2016-09-13 16:59:44 280
原创 Android Studio新建jni工程
JNI官方帮助文档: http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/functions.html使用gradle脚本当然该机器做的事我们还是尽量让机器来做,因此,接下来我打算使用build.gradle来添加一些配置,让Gradle自动帮我完成编译工作,这简直就是爽歪歪啦!使用gradle
2016-09-11 14:03:44 258
转载 jni log
1. 导入log头文件在你使用的 .c/ .cpp 文件中导入 log.h 头文件 #include2.在Android.mk 中加上LOCAL_LDLIBS :=-llog注意Android.mk里有一行include $(CLEAR_VARS)必须把LOCAL_LDLIBS :=-llog放在它后面才有用,否则
2016-09-11 13:36:54 615
转载 java CopyOnWriteArrayList的使用
转载:http://kingj.iteye.com/blog/1452427除了加锁外,其实还有一种方式可以防止并发修改异常,这就是将读写分离技术(不是数据库上的)。先回顾一下一个常识:1、JAVA中“=”操作只是将引用和某个对象关联,假如同时有一个线程将引用指向另外一个对象,一个线程获取这个引用指向的对象,那么他们之间不会发生ConcurrentModificat
2016-09-11 12:56:19 215
转载 Android注解使用之BufferKnife 8.0注解使用介绍
转载:http://www.cnblogs.com/whoislcj/p/5620128.html前言: App项目开发大部分时候还是以UI页面为主,这时我们需要调用大量的findViewById以及setOnClickListener等代码,控件的少的时候我们还能接受,控件多起来有时候就会有一种想砸键盘的冲动。所以这个时候我们想着可以借助注解的方式让我们从这种繁重
2016-09-10 20:30:17 2717
转载 JVM 堆内存设置原理
转载:http://blog.csdn.net/sivyer123/article/details/17139443堆内存设置原理JVM堆内存分为2块:Permanent Space 和 Heap Space。Permanent 即 持久代(Permanent Generation),主要存放的是Java类定义信息,与垃圾收集器要收集的Java对象关系不大。Heap = {
2016-09-09 16:22:01 295
原创 java变量命名规则
java:标识符可以包括这4种字符:字母、下划线、$、数字;开头不能是数字;不能是关键字 也可以是Unicode字符集中的字符,如汉字 final 错 1var1 错 _var2 对 var3& 错c/c++: 字母数字下划线 合法命名非法命名 wiggles $Z]** /* $、] 和 * 都是非法字符 *
2016-09-09 09:38:49 3485
原创 volatile关键字
出于运行速率的考虑,java编译器会把经常经常访问的变量放到缓存(严格讲应该是工作内存)中,读取变量则从缓存中读。但是在多线程编程中,内存中的值和缓存中的值可能会出现不一致。volatile用于限定变量只能从内存中读取,保证对所有线程而言,值都是一致的。但是volatile不能保证原子性,也就不能保证线程安全。
2016-09-09 09:29:57 181
转载 Uri的使用场景
Uri的使用场景:1,调web浏览器 Uri myBlogUri = Uri.parse(" http://xxxxx.com "); returnIt = new Intent(Intent.ACTION_VIEW, myBlogUri); 2,地图 Uri mapUri = Uri.parse("geo:38.899533,-77.036476"); re
2016-09-07 16:14:52 422
原创 ANR和Force close产生和原因
一、概念ANR,程序没有响应,有可能程序会再次响应例子: 应用运行时,Main线程进行了耗时操作 应用运行时,用户操作过于频繁Force close:程序抛出异常,会强制退出例子: 应用运行时抛出了OutOfMemoryError, 应用运行时抛出了RuntimeException二、出现场景ANR出现场景:主线程被IO操作(从4.0之后
2016-09-07 15:21:21 1706
转载 DVM,应用程序的进程,Linux的进程 三者关系
小结:DVM指 dalivk 的虚拟机。每一个 Android 应用程序都在它自己的进程中运行,都拥有一个独立的 Dalvik 虚拟机实例。而每一个 DVM 都是在 Linux 中的一个进程,所以说可以认为是同一个概念。 每一个DVM都是在Linux 中的一个进程!我们来看看每个android进程如何产生的, 下面来对Zygote进程孵化新进程的过程做进一步了解:
2016-09-07 15:03:13 5107 1
转载 final变量存储位置
Where is the local final variable in method stored (Stack/Heap)?up vote 1 Answeractiveoldestvotesup vote10down voteaccepte
2016-09-04 17:49:41 2601
转载 mac常用软件
作者:郑紫阳链接:https://www.zhihu.com/question/19550256/answer/15147967来源:知乎著作权归作者所有,转载请联系作者获得授权。us/app/scrivener/id418889511?mt=12编辑于 2013-05-062 条评论感谢分享 收藏•没有帮助•
2016-09-04 17:01:08 1922
转载 android面向holder编程,再度封装代码
转载:http://blog.csdn.net/ydxlt/article/details/48027389概述在我们实际开发过程中,当我们软件的功能做得多的时候,这个时候我们的代码量也就越来越大了,如果我们不把代码进行封装,不仅让我们开发的时候变得困难,而且不利于维护,特别是团队开发的时候,如果我们一个Activity就几百行,当然几百行也算是少的了,甚至可能上千行。这个时候
2016-09-04 09:20:42 260
原创 IntentServcie实现分析
1.使用public class CoreService extends IntentService { String ex = ""; private Handler mHandler = new Handler() { public void handleMessage(android.os.Message msg) {
2016-09-02 21:53:08 369
原创 主线程消息循环机制本质
1.主线程消息循环:ActivityThread主线程的入口方法:main main() { Looper.prepareMainLooper(); // 创建Looper,并添加到线程中 Looper.loop(); // 死循环查询,取出Message,执行Message绑定的Handler的handleMessage } Looper.prepareMainLooper-->
2016-09-01 17:26:43 1103
安全帽检测的完整代码
2023-11-17
TA创建的收藏夹 TA关注的收藏夹
TA关注的人