- 博客(77)
- 资源 (4)
- 收藏
- 关注
原创 使用ConstraintLayout实现圆形菜单
使用ConstraintLayout实现圆形菜单 ConstraintLayout1.1.0发布之后增加了Circular Positioning 官方解释: You can constrain a widget center relative to another widget center, at an angle and a distance. This allows y...
2018-08-29 16:27:46 10836 2
原创 Java内存模型小结
Java内存模型小结在Java虚拟机规范中定义的Java内存模型(Java Memory Model,JMM)来屏蔽各个硬件平台和操作系统的内存访问差异,以实现让Java程序在何种平台下都能达到一致的内存访问效果,为了获得较好的执行性能,Java内存模型没有限制执行引擎使用处理器的寄存器或者告诉缓存来提升执行速度,也没有限制编译器对指令进行重排序,也就是说在Java内存模型中,也会存在缓存一致...
2018-08-28 17:37:03 575
原创 Python3学习笔记(十四)【函数】
Python3学习笔记(十四)【函数】函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。定义一个函数规则如下:函数代码块以def关键字开头,后接函数标识符名称和圆括号()。任何传入参数和自变量必须放在圆括...
2018-08-27 11:14:01 502
原创 Python3学习笔记(十三)【迭代器与生成器】
Python3学习笔记(十三)【迭代器与生成器】迭代器迭代是Python最强大的功能之一,是访问集合元素的一种方式。 迭代器是一个可以记住遍历位置的对象。 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问结束,迭代器只能往前不会后退。 迭代器有两个基本方法:iter()和next()。 字符串,列表或元组对象都可用于创建迭代器。import sysli = ...
2018-08-21 14:31:00 288
原创 Python3学习笔记(十二)【Python冒泡排序及折半查找】
Python3学习笔记(十二)【Python冒泡排序及折半查找】比较经典的两个算法:def bubble(li): for m in range(0, len(li) - 1): for n in range(0, len(li) - 1 - m): if li[n] > li[n + 1]: tem...
2018-08-18 10:07:57 755
原创 Python3学习笔记(十一)【循环】
Python3学习笔记(十一)【循环】Python中的循环语句有for和while。while循环Python中while语句的形式为:while 判断条件: 语句同样需要注意冒号跟缩进,在Python中没有do...while循环。 以下示例为1到100的总和。n = 100sum = 0counter = 1while counter <...
2018-08-18 09:34:56 411
原创 Python3学习笔记(十)【开始Python编程】
Python3学习笔记(十)【开始Python编程】学习完Python3的基础语法知识之后,开始尝试写一个斐波那契数列。a = 0b = 1while b < 10: print(b) n = b b = a + b a = n输出: 1 1 2 3 5 8end关键字关键字end可以用于...
2018-08-15 10:50:44 829
原创 Python3学习笔记(九)【集合】
Python3学习笔记(九)【集合】集合(set)是一个无序不重复元素的序列。可以使用{}或者set()函数创建集合,注意:创建一个空几个必须用set()而不是{},因为{}是用来创建一个空字典的。_set1 = {1, 2, 3}seq = [1, 2, 3]_set2 = set(seq)去重names = {"qfxl", "Anna", "Bruce", "q...
2018-08-14 17:26:14 232
原创 Python3学习笔记(八)【字典】
Python3学习笔记(八)【字典】字典是另一种可变容器模型,且可存储任意类型对象。 字典的每个键值(key=value)用:分割,每个键值对之间用,分割,整个字典写在{}中。 键必须是唯一的,但值则不必。 值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。d = {"name": "qfxl", "age": 100}访问字典中的值d = {"na...
2018-08-13 14:42:44 307
原创 Python3学习笔记(七)【元组】
Python3学习笔记(七)【元组】Python 的元组与列表类似,不同之处在于元组的元素不能修改。 元组使用小括号(),列表使用方括号[]。 元组创建很简单,只需要在括号中()添加元素,并使用逗号隔开即可。 不过不用()也可以。_tup1 = ("a", "b", "c")_tup2 = (1, 2, 3, "a", "b", "c")_tup3 = "a
2018-08-06 17:00:11 356
原创 Python3学习笔记(六)【列表】
Python3学习笔记(六)【列表】序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。 Python有6个序列的内置类型,但最常见的是列表和元组。 序列都可以进行的操作包括索引,切片,加,乘,检查成员。 此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。 列表是最常用的Python...
2018-08-04 14:31:03 199
原创 Python3学习笔记(五)【字符串】
Python3学习笔记(五)【字符串】字符串是Python中最常用的数据类型,可以使用''或者""来创建字符串。name = "qfxl"text = "Hello World"Python访问字符串中的值Python不支持单字符类型,单字符在Python中也是作为一个字符串使用。 Python访问字符串,使用[]来截取字符串。name = "qfxl"tex...
2018-08-03 09:16:47 331
原创 Python3学习笔记(四)【Number】
Python3学习笔记(四)【Number】Python数字数据类型用户存储数值。 数据类型是不允许改变的,这就意味着如果改变数字类型的值,将重新分配内存空间。a = 1b = 2可以使用del来删除一些数字对象的引用。a = 1b = 2del a, bPython支持三种不同的数值类型:整型(int),通常被称为整型或证书,是正或负,Python3整...
2018-08-01 09:13:02 398
原创 Python3学习笔记(三)【运算符】
Python3学习笔记(三)【运算符】Python算术运算符+、-、*、/、%、**、//、a = 3b = 2print(a + b) # 5print(a - b) # 1print(a * b) # 6print(a / b) # 1.5print(a % b) # 1print(a ** b) # 3的2次方 = 9print(a // b) # 取商...
2018-07-31 10:19:04 1681
原创 Python3学习笔记(二)【基本数据类型】
Python3学习笔记(二)【基本数据类型】Python中的变量不需要声明。每个变量使用前必须赋值,变量赋值以后变量才会创建。 在Python中,变量就是变量,它没有类型,我们所说的”类型”是变量所指的内存中对象的类型。 如:_name = "qfxl"_age = 100_weight = 66.6多个变量赋值Python允许为多个变量同时赋值。a = b...
2018-07-30 10:35:08 308
原创 Python3学习笔记(一)【基础语法】
Python3学习笔记(一)【基础语法】Hello Worldprint(&quot;Hello World&quot;)编码默认情况下Python 3源码文件以UTF-8编码,所有字符串都是 unicode 字符串。如果想为源码文件指定不同的编码:# -*- coding: GBK -*-标识符第一个字符必须是字母表中的字母或者_。标识符中的其他字符由字母、数字、...
2018-07-26 11:06:08 420
原创 使用ActivityLifecycleCallbacks管理Activity
转载请注明出处:https://blog.csdn.net/xuyonghong1122APP的开发过程中有时候需要自己去管理Activity,本文记录如何使用ActivityLifecycleCallbacks来实现管理Activity的需求。什么是ActivityLifecycleCallbacks?ActivityLifecycleCallbacks是Application下的一...
2018-07-07 09:59:30 1838
原创 微信小程序之网络请求
概述微信网络请求api 小程序宿主环境要求request发起的网络请求必须是https协议请求,因此开发者服务器必须提供HTTPS服务的接口,同时为了保证小程序不乱用任意域名的服务,wx.request请求的域名需要在小程序管理平台进行配置,如果小程序正式版使用wx.request请求未配置的域名,在控制台会有相应的报错。最简单的一个请求:wx.request({ url: 't...
2018-06-15 14:57:27 7401
原创 微信小程序之flex布局
微信小程序之flex布局在微信小程序中,view是最基础的布局容器,其支持两种布局方式block、flex,默认情况下,view的布局方式是block,如下所示:<view> <view style='background:red;'>1</view> <view style='background:blue;'>2<...
2018-06-08 11:34:27 22531 3
原创 Standard.kt一览
TODO@kotlin.internal.InlineOnlypublic inline fun TODO(): Nothing = throw NotImplementedError()/** * Always throws [NotImplementedError] stating that operation is not implemented. * * @param re...
2018-05-22 09:18:27 728 1
原创 利用注解实现BindView、OnClick。
利用注解实现BindView,OnClick此篇博客记录如何用annotation来实现View的自动绑定,及点击事件的绑定,不同于ButterKnife,本文采用的是Runtime注解,性能相比ButterKnife较低,ButterKnife采用的是编译注解,故性能更高。BindView声明注解以BindView为例,首先需要声明注解@Retention(Ann...
2018-05-17 10:29:35 5901
原创 Kotlin定义静态变量、静态方法
Kotlin定义静态变量、静态方法kotlin定义静态变量、方法可以采用伴生对象的方式。 经典例子,实例化Fragment。 java写法:public class TestFragment extends Fragment { private static final String ARG_PARAM1 = "param1"; private static fin...
2018-05-10 15:46:31 33756 1
原创 Retrofit总结(持续更新)
Get请求@query@Query会以key=value的方式拼接在url后面 Query非必填,如果请求参数非必填,可以传null 如:https://api.douban.com/v2/movie/top250?start=0&amp;amp;count=10ApiServer.kt@GET(&quot;top250&quot;)fun getTopMovie(@Query(&quot;start&am
2018-04-14 14:54:10 574
原创 Arouter踩坑小记
Error:Error converting bytecode to dex:不同的模块使用了相同的分组,例如 AMoudle 定义了 @router(path=”/com/a”), BMoudle也定义了@router(path=”/com/b”) 就会出现这个问题,暴露服务出现这个问题同理。...
2018-04-07 20:29:41 2112
原创 Activity启动流程( android-26)
Activity启动流程本文记录Activity的启动流程,总结自Android开发艺术探索(本文采用的是api26,开发艺术探索采用的是21有部分差入。)。 涉及知识包括AMS Binder ActivityStack Instrumentation ApplicationThread ActivityThread Handler CLassLoader 等。大致流程如下: 在日...
2018-03-18 13:46:02 2456
原创 Java中的代理模式
Java中的代理模式代理模式的定义:对其他对象提供一种代理以控制对这个对象的访问。 形象的举个例子: 客户想买一辆车,并不是去汽车制造厂买车,而是去4s店买车,4s在充当了一个代理的角色,汽车制造厂让4s代理销售汽车。原则上说客户可以从汽车厂商直接购买汽车,但是现实生活中这种方式很少见,厂商一般会委托4S店进行销售,客户直接与4S打交道,其实4S就充当了一个中间人的角色。...
2018-03-06 12:19:10 234
原创 Kotlin学习笔记(十一)【对象表达式】
Kotlin 对象表达式和对象声明Kotlin 用对象表达式和对象声明来实现创建一个对某个类做了轻微改动的类的对象,且不需要去声明一个新的子类。对象表达式通过对象表达式实现一个匿名内部类的对象用于方法的参数中:btn.setOnClickListener(object: View.OnClickListener{ override fun onCli...
2018-03-01 17:10:24 188
原创 Kotlin学习笔记(十)【枚举】
Kotlin枚举类枚举类最基本的方法就是实现一个类型安全的枚举。 枚举常量用逗号分隔,每一个枚举都是一个对象。enum class Color { RED, BLACK, WHITE}枚举初始化每一个枚举都是枚举类实例,都可以被初始化enum class Color(val rgb: Int) { RED(0xFF0000), ...
2018-03-01 15:58:32 201
原创 Kotlin学习笔记(九)【泛型】
Kotlin泛型泛型,即 “参数化类型”,将类型参数化,可以用在类,接口,方法上。 与 Java 一样,Kotlin 也提供泛型,为类型安全提供保证,消除类型强转的烦恼。 声明一个泛型类:class Box<T>(t: T) { var value = t}创建类的实例时我们需要指定类型参数:val box: Box<Int> = Bo...
2018-02-22 09:25:34 308
原创 DNS域名解析配置
本文记录域名解析的配置,云主机一台(阿里云),域名(百度云注册),设置域名解析到云主机IP注册云主机注册云主机(阿里云注册)成功如图: 注册域名注册域名成功(本文是从百度云注册) 域名解析点击域名解析之后 域名绑定回到阿里云云主机管理,点击域名旁边的管理 完事收工。
2018-02-02 10:51:04 8830
原创 Kotlin学习笔记(八)【数据类】
数据类Kotlin 可以创建一个只包含数据的类,关键字为 data:data class User(val name: String, val age:Int)编译器会自动的从主构造函数中根据所有声明的属性提取以下函数:equals() / hashCode()toString() 格式如 “User(name=qfxl, age=26)” componentN() fu
2018-01-30 15:59:09 354
原创 Kotlin学习笔记(七)【扩展】
Kotlin 可以对一个类的属性和方法进行扩展,且不需要继承或使用 Decorator 模式。 扩展是一种静态行为,对被扩展的类代码本身不会造成任何影响。扩展函数扩展函数可以在已有类中添加新的方法,不会对原类做修改,扩展函数定义形式:fun receiverType.functionName(params){ body}receiverType表示函数的接收者,也
2018-01-25 17:10:10 303
原创 Kotlin学习笔记(六)【接口】
Kotlin接口Kotlin接口与java8类似,以interface为关键字,允许方法有默认实现:interface Person { fun speak() //接口的方法默认是open fun breathe() { //给接口提供默认实现 println("breathe air") }}实现接口个类或者对象可以实现一个
2018-01-17 17:33:31 269
原创 Kotlin学习笔记(五)【继承】
继承说明Kotlin 中所有类都继承自Any 类,它是所有类的超类,对于没有超类型声明的类是默认超类:class Empty // 从Any隐式继承Any 默认提供了三个函数:equals()hashCode()toString()注意:Any 不是 java.lang.Object。 Kotlin所有的类都默认是final,如果一个类要被继承,可以使用 op
2018-01-16 11:06:12 187
原创 Kotlin学习笔记(四)【类和对象】
类定义Kotlin 类可以包含:构造函数和初始化代码块、函数、属性、内部类、对象声明。 Kotlin 中使用关键字 class 声明类,后面紧跟类名:class Person { // Person是类名 // 大括号内为类体构成 }也可以定义一个空类:class Empty在类中定义成员函数:class Person { fun sa
2018-01-15 14:51:35 341
原创 Kotlin学习笔记(三)【循环控制】
for循环for 循环可以对任何提供迭代器(iterator)的对象进行遍历,语法如下:fun main(args: ArrayString>) { val arrays = intArrayOf(1,2,3,4,5) for (item in arrays) println(item)}循环体可以是一个代码块:fun main(args: ArrayS
2018-01-11 17:01:28 397
原创 Kotlin学习笔记(二)【基本数据类型】
在线编辑Kotlin基本数据类型Kotlin 的基本数值类型包括 Byte、Short、Int、Long、Float、Double 等。不同于Java的是,字符不属于数值类型,是一个独立的数据类型。 类型 位宽 Double 64 Float 32 Long 64 Int 32 Short 16 By
2018-01-10 10:17:54 418
原创 Kotlin学习笔记(一)【基础语法】
Hello World!fun main(args: ArrayString>) { println("Hello World")}Kotlin的基础语法Kotlin文件以.kt为结尾包声明代码文件的开头一般为包开头package com.runoob.mainimport java.util.*fun test() {}class Ru
2018-01-09 16:34:12 791
原创 重识Handler
关于Handler,最开始的使用就是子线程想要刷新UI,必须用Handler来实现,那为什么Handler能够异步更新UI?Handler的内部机制是什么样的?Handler跟Looper,Message,MessageQueue之间是什么关系?等等,本文记录Handler需要了解的一些知识。了解一些概念。Android的消息机制:一个线程开启一个无限循环模式,不断遍历自己的消息列表,
2017-12-29 17:44:12 288
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人