- 博客(393)
- 资源 (27)
- 收藏
- 关注
原创 Android 线程通信(Handler + Message + Looper) 1 - Message
参考:Android 线程通信(Handler + Message + Looper) 0 - 前言android.os.MessageHandler 使用 Message 类保存消息,在线程之间进行传递主要内容:创建 Message 对象保存数据设置 Handler释放 Message 和重用 Message示例程序回调函数创建 Message 对象共有 3 种实现方式直接创建可以直
2017-11-01 10:45:26 1067
原创 Android 线程通信(Handler + Message + Looper) 0 - 前言
参考:进程和线程Android异步消息处理机制完全解析,带你从源码的角度彻底理解Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系在 Android 开发中,可以使用 Handler + Looper + Message 的组合进行线程通信当前运行环境:Android 7.1.1 API Level 25本次学习暂不涉及进程操作主要内容:简单使用例
2017-11-01 10:42:41 920
原创 Java 线程 6 - volatile和ThreadLocal
参考: Java 线程 0 - 前言主要内容:volatileThreadLocalvolatile参考:Java关键字volatile的理解与正确使用Java并发编程:volatile关键字解析volatile 关键字用于定义变量,保证变量的 可见性 和 指令重排序在现代处理器系统中,线程可能会从高速缓存中读取共享变量值,这样有可能会出现高速缓存中的变量值和内存中的变量值不一致当一个共享变量
2017-11-01 10:00:12 980
原创 Java 线程 5 - 线程同步和线程通信
参考: Java 线程 0 - 前言下面学习 Java 中线程同步,线程通信的概念和使用主要内容:为什么线程需要同步ReentrantLock 和 Conditionsynchronized为什么线程需要同步竞争条件:线程共享进程资源,当多线程对同一个对象进行访问时,根据各线程访问进程的次序,可能会得到一个错误的结果《Java核心技术 卷I 14.5 同步》中给出了一个银行账户的例子首先定义
2017-11-01 09:59:09 840
原创 Java 线程 4 - 线程的属性
参考: Java 线程 0 - 前言下面学习 Java 线程属性主要内容:Java 属性浅析线程 id 和线程名线程优先级守护线程Java 属性浅析Java 属性包括线程 id,线程名,线程优先级,是否是守护线程等线程 id 和线程名系统赋予每个线程一个单独的 id,所以通过 id 比较可以判断两个线程是否相同/** * Returns the identifier of this Th
2017-11-01 09:57:44 1105
原创 Java 线程 3 - 线程的生命周期
参考: Java 线程 0 - 前言java.lang Enum Thread.StateJava疯狂讲义 - 线程的生命周期学习 Java 线程的生命周期以及相关的函数主要内容:线程生命周期getState 和 isAlivesleep,yield 和 joininterrupt,isInterrupted 和 interrupted线程生命周期参考:java.lang Enum Thr
2017-11-01 09:55:47 826
原创 Java 线程 2 - 线程的创建
参考: Java 线程 0 - 前言Java 共有 3 种方式用来创建线程,分别是继承 Thread 类或其子类实现接口 Runnable实现接口 Callable 和 Future主要内容:线程构造器,run() 和 start() 方法继承 Thread 类实现接口 Runnable实现接口 Callable 和 Future线程创建方式的比较线程构造器,run() 和 st
2017-11-01 09:52:36 550
原创 Java 线程 1 - 进程和线程
参考: Java 线程 0 - 前言下面学习 Java 中进程和线程的概念以及它们之间的关系主要内容:进程线程Java 中进程和线程进程参考:进程Java进程的理解进程(process)是程序的基本执行实体,是进行 资源分配和调度 的 基本单位进程拥有独立的地址空间,包括文本区域(text region),数据区域(data region)和堆栈(stack region)线程参考:线程线程
2017-11-01 09:50:30 501
原创 Java 线程 0 - 前言
参考:java.lang Class Thread疯狂Java讲义:第十六章 - 多线程Java 核心技术 卷I - 第14章 多线程下面学习 Java 中有关多线程的概念,操作和使用目前并没有深入理解 Java 虚拟机,所以不过多涉及线程各个时期在 Java 虚拟机上的变化和执行顺序暂不涉及线程池的概念不涉及进程组,未捕获异常处理器的概念不涉及过时方法的使用(stop / suspend / re
2017-11-01 09:48:17 532
原创 Java hashCode equals
学习哈希函数,Java 中的 Object.hashCode 和 Object.equals 的相关内容主要内容:哈希函数Object.hashCode 和 Object.equals重写 hashCode 和 equals 方法哈希函数参考:数据结构 - 9.3 哈希表哈希算法哈希表给定表 M,存在函数 f(key),对任意给定的关键字值 key,代入函数后若能得到包含该关键字的记录在表中
2017-10-19 18:25:51 685
原创 Java clone
参考:java.lang Interface Cloneablejava.lang Class Object下面学习 Java 中的 Object.clone() 方法 和 cloneable 接口的概念和使用,学习关于 强复制(克隆,拷贝)和浅复制 的区别和联系主要内容:Object.clone() 方法和 cloneable 接口Object.clone() 方法的实现深复制和浅复制Ob
2017-10-16 20:32:44 396 1
原创 排序 9 - 堆排序
参考:排序 0 - 前言百度百科:堆排序【Python排序搜索基本算法】之堆排序【坐在马桶上看算法】算法11:堆——神奇的优先队列(上)【坐在马桶上看算法】算法12:堆——神奇的优先队列(下)python数据结构之二叉树的实现堆排序(heap sort)关键名词参考:二叉树完全二叉树二叉树:每个节点最多有两个子树的树结构完全二叉树:叶节点只能出现在最下层和次下层,并且最下面一层的节点都集中在该层
2017-10-13 12:02:18 573
原创 排序 8 - 基数排序
参考:排序 0 - 前言百度百科:基数排序基数排序(radix sort)工作原理针对 基数 进行排序,找出待排序列表的最大值,判断它的位数,比如 123 的位数为 3,先对个位数进行排序,遍历待排序列表,将个位数相同的值放在一起,即放在编号 0-9 的 桶 中,排序完成后,按顺序连接 0-9 桶中的值;再对十位数的值进行排序,同样放入 0-9 的 桶 中;依此类推,遍历所有位数基数排序又称为 桶子
2017-10-11 19:22:18 647
原创 排序 7 - 希尔排序
参考:排序 0 - 前言百度百科:希尔排序希尔排序(shell sort)工作原理直接插入排序的改进,设置步长,对间隔步长大小的数据进行直接插入排序,不断减小步长,直至步长大小为 1。也称为缩小增量排序算法思想通常初次设置步长大小为 n/2,之后每次取步长大小的一半,每次均对序列进行遍历,对间隔步长大小的数据进行直接插入排序Python 算法实现# -*- coding: utf-8 -*-"""
2017-10-10 12:02:48 551
原创 排序 6 - 归并排序
参考:排序 0 - 前言百度百科:归并排序归并排序(merge sort)工作原理将序列分为若干个子序列(子序列均有序),两两子序列进行 归并操作,得到一个新的有序列表,最终归并所有子序列,得到一个递增或递减的序列归并操作从左到右逐个比较两个子序列中的元素大小,比如进行递增排序,将较小的元素加入结果序列中,其下标加 1,继续和另一个序列元素进行比较,直到某一个序列元素已经全部遍历为止,将另一个序列的
2017-10-10 12:00:55 513
原创 Python 基础 - 6 字符串(str)2 - 子字符串操作和字符串格式化
参考:Python 基础 - 0 前言Built-in Types下面介绍 Python 字符串(str)的定义和常用操作 主要内容:子字符串操作字符串格式化子字符串操作子字符串查找操作str.count(sub[, start[, end]]) - 查找字符串中子字符串 sub 的个数(子字符串 sub 不能重叠),可选参数 start 和 end 确定字符串查找的起始下标和终止下标st
2017-10-06 14:41:20 1091
原创 Python 基础 - 5 字符串(str)- 字符串定义和字符串方法
参考:Python 基础 - 0 前言Built-in Types下面介绍 Python 字符串(str)的定义和常用操作 主要内容:字符串(str)定义字符串(str)方法字符串(str)定义在 Python 语言中,用单引号(' '),双引号(" ")或者三引号(''' ''')括起来的数据称为字符串(其中,使用三引号的字符串可以横跨多行)字符串(str)定义如下:字符串(str)方法字母
2017-10-06 14:21:58 11829
原创 排序 5 - 快速排序
参考:排序 0 - 前言百度百科:快速排序算法快速排序(quick sort)工作原理每次遍历都将待排序序列分成两部分,其中一部分的数据均比另一部分的数据小,递归遍历这两个子序列,同样分成两部分,依次类推,直到成为有序序列算法思想快速排序算法可以通过递归函数实现,一次从小到大排序的递归操作如下所示:获取待排序序列的前后下标 i 和 j设置比较值 key = 下标 i 的值从后向前进行遍历,判断
2017-10-06 13:55:35 372
原创 排序 4 - 冒泡排序
参考:排序 0 - 前言百度百科:冒泡排序冒泡排序(bubble sort)工作原理重复遍历待排序序列,从后向前进行遍历,相邻元素两两比较大小,符合判定条件则进行交换,每次遍历均得到一个最小(或者最大)的数据算法思想设待排序序列大小为 n,共遍历 n-1 次,i 表示当前遍历的次数,也表示已排序序列的终止位置和待排序序列的起始位置,从后向前两两进行比较,符合条件则进行数据交换,每次均遍历整个待排序序
2017-10-06 13:10:19 411
原创 排序 3 - 折半插入排序
参考:排序 0 - 前言百度百科:折半插入排序百度百科:二分法插入排序折半插入排序(binary insert sort)工作原理对插入排序算法的改进,针对已排序序列,利用 二分法 进行数据查找,将待排序数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据。算法思想设待排序序列大小为 n,共遍历 n-1 次,i 表示当前遍历的次数,也表示已排序序列的终止位置和待排序序列的起始位置。
2017-10-06 13:07:22 666
原创 排序 2 - 插入排序
参考:排序 0 - 前言百度百科:插入排序插入排序(insert sort)工作原理将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据。算法思想设待排序序列大小为 n,从头到尾共遍历 n-1 次,i 表示当前遍历的次数,也表示已排序序列的终止位置和待排序序列的起始位置,获取下标为 i 的值在已排序序列中的位置,将该值移动到该位置Python 算法实现# -*- coding
2017-10-05 20:43:20 365
原创 排序 1 - 选择排序
参考:排序 0 - 前言百度百科:选择排序选择排序(selection sort)工作原理每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置(或末尾),直到全部待排序的数据元素排完。算法思想设待排序序列大小为 n,从头到尾共遍历 n-1 次,i 表示当前遍历的次数,也表示已排序序列的终止位置和待排序序列的起始位置,从下标 i 开始在待排序序列中找出最小(或最大)的元素的下标
2017-10-05 20:37:36 290
原创 排序 0 - 前言
学习排序的基本概念和评判标准学习多种排序算法利用 python 2.x 语言实现百度百科:排序算法排序:对一个序列,按照数字的大小,进行递增或者递减的排列的操作评判标准包括 稳定性,时间复杂度 和 空间复杂度稳定性如果序列中同样大小的元素的相对位置在排序过后仍旧保持不变,则该排序算法是稳定的。比如,原始序列为 (3,1) (2,2) (3,3) (1,4) (括号内第一个元素表示值,第二个表示下标)
2017-10-05 20:32:59 462
原创 Python 基础 - 4 常用数值类型(int,float,bool)操作
参考:Python 基础 - 0 前言Built-in TypesPython 数值类型包括整型(integer),浮点型(floating point number)和复数(complex number),并且,布尔型(boolean)是整型的子类其中,最常用的数值类型包括整型,浮点型和布尔型,下面介绍它们的定义和使用方法主要内容:数值类型转换整型(int),浮点型(float)和布尔型(bo
2017-10-02 21:13:37 12454
原创 Python 基础 - 3 常用数值类型(int,float,bool)定义
参考:Python 基础 - 0 前言Built-in TypesPython 数值类型包括整型(integer),浮点型(floating point number)和复数(complex number),并且,布尔型(boolean)是整型的子类其中,最常用的数值类型包括整型,浮点型和布尔型,下面介绍它们的定义和使用方法主要内容:整型(int)定义浮点型(float)定义布尔型(bool)
2017-10-02 21:02:56 77906 2
原创 Python 基础 - 2 输入与输出
参考:Python 基础 - 0 前言python2.7 输入print 和 输出raw_input本文学习 python 环境下控制台的输入和输出操作输入输入函数:input()格式:input(prompt=None,/)功能:从标准输入中读取一个 字符串,不包含结尾的换行符。还可以输入提示字符串,提示字符串输出后并不会自动换行(在提示字符串末尾加入 \n,即可换行)。操作:输入一行字符串,完成
2017-09-28 12:32:30 982
原创 Python 基础 - 1 win10 下安装 anaconda2 和 anaconda3
参考:Python 基础 - 0 前言之前用的一直都是 Python2,所以无法一下子直接转到 Python3 上,需要同时在系统上安装 anaconda2 和 anaconda3当前运行环境:win10 anaconda 下载官网:Download Anaconda Distribution安装 anaconda2首先安装 anaconda2,点击安装文件,一路默认设置,直到结束Note:可以
2017-09-27 12:31:05 2530
原创 Python 基础 - 0 前言
学习 Python 时间也不短了,对 Python 的简单使用也熟悉了七七八八。之前隔了一段时间都没有用到 Python,现在使用起来感觉格外的陌生,一些基本的 Python 操作都需要在网上查找很久。恰好学习 cs231n 课程,第一篇就是关于 Python 的教程,里面列了一个大致的 Python 学习路径,我在此基础上进行扩充,希望能够把基本的 Python 操作都复习一遍cs231n 上的
2017-09-27 12:27:49 1001
原创 Android Fragment(2)
参考:片段:https://developer.android.com/guide/components/fragments.html#CommunicatingWithActivity Fragment 使用(1):http://blog.csdn.net/u012005313/article/details/55215552 主要内容动态添加,替换和移除 fragment返回栈的使用与
2017-08-27 15:48:06 472
原创 Android Activity - 3
参考:Activity:https://developer.android.com/guide/components/activities.html 任务和返回栈:https://developer.android.com/guide/components/tasks-and-back-stack.html Activity 是 Android 系统中使用最频繁的组件,刚入门 Android 就
2017-08-27 11:49:09 4550
原创 Android Activity - 2
参考:Activity:https://developer.android.com/guide/components/activities.html 任务和返回栈:https://developer.android.com/guide/components/tasks-and-back-stack.html Activity 是 Android 系统中使用最频繁的组件,刚入门 Android 就
2017-08-27 11:44:52 3128
原创 Android Activity - 1
参考:Activity:https://developer.android.com/guide/components/activities.html 任务和返回栈:https://developer.android.com/guide/components/tasks-and-back-stack.html Activity 是 Android 系统中使用最频繁的组件,刚入门 Android 就
2017-08-27 11:23:19 418
原创 Java 异常处理机制
参考:Lesson: Exceptions:https://docs.oracle.com/javase/tutorial/essential/exceptions/index.html Java API:http://docs.oracle.com/javase/8/docs/api/异常(exceptions) 应该是 Java 学习和开发过程中经常会遇到,但是感觉不太熟悉的一部分内容刚开始学
2017-08-18 09:16:49 625
原创 Caffe 在 win10 环境下配置
参考:Caffe windows10下caffe安装? Windows 10下安装配置Caffe并支持GPU加速整了好几天,终于实现 windows 环境下的 caffe 编译,实现 win10 + caffe + vs2013 + anaconda2.7 + cuda8.0 + cuDNN_v5主要内容软件安装caffe 编译测试mnist 数据集和 LeNet 网络训练小结软件安
2017-08-18 08:51:58 17617 6
原创 android 自定义 View(4)- 进度条(ProgressBar)
参考:Android 打造形形色色的进度条 实现可以如此简单 daimajia/NumberProgressBar自定义视图(View)是 Android 开发的一个进阶内容。随着开发的深入,肯定会出现系统提供的基础控件不符合需求的情况。一方面通过组合基础控件以形成新的布局,另一方面可以通过自定义控件的方式来更加灵活的实现需求自定义视图涉及到 Android 系统许多方面的内容,下面根据自己的理解
2017-07-25 09:49:54 8413
原创 Android 自定义 View(3)
参考:android 自定义 View - 参考自定义视图(View)是 Android 开发的一个进阶内容。随着开发的深入,肯定会出现系统提供的基础控件不符合需求的情况。一方面通过组合基础控件以形成新的布局,另一方面可以通过自定义控件的方式来达到结果自定义视图会涉及到 Android 系统许多方面的内容,根据学习过程对涉及到的内容一一讲解主要内容尺寸测量绘图完整代码尺寸测量自定义视图在进行
2017-07-24 23:51:13 368
原创 android 自定义 View(2)
参考:android 自定义 View - 参考自定义视图(View)是 Android 开发的一个进阶内容。随着开发的深入,肯定会出现系统提供的基础控件不符合需求的情况。一方面通过组合基础控件以形成新的布局,另一方面可以通过自定义控件的方式来更加灵活的实现需求自定义视图涉及到 Android 系统许多方面的内容,下面根据自己的理解顺序来讲一讲如何自定义视图主要内容视图创建自定义属性完整代码
2017-07-24 22:46:03 349
原创 android 自定义 View(1)
参考:android 自定义 View - 参考自定义视图(View)是 Android 开发的一个进阶内容。随着开发的深入,肯定会出现系统提供的基础控件不符合需求的情况。一方面通过组合基础控件以形成新的布局,另一方面可以通过自定义控件的方式来更加灵活的实现需求自定义视图涉及到 Android 系统许多方面的内容,下面根据自己的理解顺序来讲一讲如何自定义视图主要内容视图层次结构浅析视图基本方法
2017-07-24 22:36:30 304
转载 android 自定义 View - 参考
自定义 View 涉及的内容很多,在网上找了很多的参考资料,不定期更新…View:https://developer.android.com/reference/android/view/View.html View.MeasureSpec:https://developer.android.com/reference/android/view/View.MeasureSpec.html Hon
2017-07-24 22:32:27 377
原创 Android 生命周期 - ActivityLifecycleCallbacks
参考:Android Studio 活动的最佳实践 知晓当前是在哪一个活动 随时随地地进入程序 启动活动的最佳写法 第一行代码:http://blog.csdn.net/u012005313/article/details/47018101 之前在郭霖的《第一行代码》里学习到一种方法,可以知晓当前运行在哪个活动的哪个生命周期方法中,非常好用,现在又有了一种新的方法,可以知晓当前活动的生命周期主要内
2017-07-19 20:15:00 1220
german_data.zip
2019-07-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人