- 博客(13)
- 资源 (3)
- 收藏
- 关注
原创 volatile关键字理解
这里的“可见性”指的是,当对一个变量修改后,新值对于其他线程是立即可见的,注意这里的立即可见,并不是说其他线程能监听到变量值修改,而是说修改后的值能立即同步到主内存中(稍后介绍Java内存模型),保证其他线程能读取到的一定是最新值。什么是指令重排优化呢,Java源代码最终会编译成计算机能识别的机器码指令,为了提高执行效率,编译器和处理器可能会对指令进行优化重新排序,导致实际上指令执行的顺序可能会和源代码中想表达的顺序不一致。到此如果能轻松的理解上面两句话的,可以跳过本文。
2022-08-20 03:23:51
1948
原创 SharedPreferences源码分析
今天偶然看见一篇讲解SharedPreferences(以下简称SP)原理的文章,于是怀着前人种树后人乘凉的心情进去看了,发现写得不是很清楚,很多细节一笔带过,于是为了巩固一下基础就去百度了一下,发现百度上也没有让自己满意的文章。虽然SP说很简单,但是还是决定看看源码记录一下分析结果。此处分析的SDK版本为android-27。1.SP的使用我们都知道,SP是以XML文件方式存储的,我们先来看...
2018-10-11 13:38:45
514
原创 Java中Object的finalize()方法
finalize()是什么?finalize()方法是Java中Object类的一个空实现方法,我们都知道,Java中所有的类都是继承自Object,那么就是说,所有的类都有这个方法。我们先来看看该方法/** * Called by the garbage collector on an object when garbage collection * dete
2018-04-11 03:09:08
9690
原创 一个简单的手势密码控件
GesturePasswordView最近项目需要做手势密码,于是呢顺手写了个,实现没有什么难度也没什么技术含量,只是贴出来以后不必重复造轮子,顺便也练习下写博客。项目地址https://github.com/Thuantanon/GesturePasswordView。使用方式1、工程gradle文件:allprojects { repositories { ... maven { u...
2018-03-13 22:50:00
1336
原创 error LNK2005:"XXX已经在 XXX.obj 中定义
今天第一次遇到多文件包含的问题,一般来说C++开发都是声明放在头文件里,实现放在源文件里,然后使用时包含头文件,头文件为了避免被重复编译,一般来说要加个杂注“#pragma once ”,或者直接用“#ifndef XXX ....#endif”来处理。好吧,这些我都知道,偏偏各种办法都用遍了,extern也加了,就是一直给我报下面那个错:折腾了半天,终于让我给折腾好了。
2018-02-27 00:09:01
7614
原创 C++两个平面矩形的相交判断
最近开发小游戏需要一个简单的碰撞检测,因为用的是自定义的Rect类,虽然这个判断方法很简单,但是百度看了很多人的写法代码量都相当的大。当然搜到的结果都不是我想要的,于是只有自己写啦。两个矩形(不考虑旋转)相交大概就那么几种情况,如下图:网上的算法要么就是判断顶点是否被包含,判断线段是否相交等等,这样做的不好的地方是要判断很多种情况。经过简单的分析我的方法如下图所示:
2018-02-08 00:35:33
8402
4
原创 使用SDL2_mixer遇到error LNK2019: 无法解析的外部符号
最近在学习C++和SDL,前不久写了个俄罗斯方块的小Demo,但是是没有声音的,接下来准备写一个消灭星星的小Demo,希望,可以加入声效,于是今晚下载了SDL处理音频的库http://www.libsdl.org/projects/SDL_mixer/,然后新建Win32控制台应用程序...(此处省略10字)头文件全部正确导入:库文件全部正确导入:
2018-01-25 23:53:02
821
原创 SDL俄罗斯方块
整天写一些Android的业务逻辑太心烦了,换个语言找点新鲜感。最近在学习C++,为了避免写黑框框太枯燥坚持不下去,顺便学习了下SDL,做了一个俄罗斯方块小Demo。我的C++也就是停留在大学时Hello world的 代码已上传Github,地址https://github.com/Thuantanon/Tetrics
2018-01-14 22:29:00
1174
原创 读取访问权限冲突。0xCDCDCD
typedef struct List { List *next; // 表的下标 int i; // 总和结果 int sum;}List;已经一年多没有用C++了,最近厌倦了写一些垃圾App,想学一下游戏开发,于是开始复习下C。今天在复习数据结构的链表部分时,出现了这样的一个错误:折腾了半天,终于找到了原因:...
2017-12-20 15:17:27
30925
12
原创 Android使用CursorLoader加载手机联系人
1、Loader简介Loader是Android3.0(API版本11)中引入的一个抽象类,它主要是封装用来进行异步加载数据。Loader的直接子类是AsyncTaskLoader,也就是AsyncTask和Loader的一个封装类,关于AsyncTask这里就不举例了,总之就是异步加载数据,实际上和Thread+Hander+Loader都一样的效果。而CursorLoader是AsyncT
2017-11-23 00:35:02
594
2
原创 Navicat连接数据库Can't get hostname for your address 解决方法
我只是把自己遇到的问题分享出来,希望能解决大家的问题,特别是新手上路,很容易就因为一两个困难打击了学习的信心,编程是个耐心活儿,加油吧。
2017-10-31 23:02:45
3463
原创 Android动态权限判断以及动态权限申请
首先查看权限是否授予:官网代码// Assume thisActivity is the current activityint permissionCheck = ContextCompat.checkSelfPermission(thisActivity,int permissionCheck = ContextCompat.checkSelfPermission(this...
2016-12-23 16:09:18
21226
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人