- 博客(17)
- 收藏
- 关注
原创 Kotlin学习五:高阶函数
目录定义高阶函数内联函数定义高阶函数想定义自己的函数式API,那就得借助高阶函数来实现定义:如果一个函数接收另一个函数作为参数,或者返回值的类型是另一个函数,那么该函数就称为高阶函数。定义函数类型:(String, Int)-> Unit,在函数类型钱加上ClassName表示这个函数类型是定义在哪个类当中的作用:高阶函数允许让函数类型的参数来决定函数的执行逻辑Lambda表示式是常见的高阶函数的调用方式内联函数高阶函数的实现原理:Lambda表达式在底层被转换成了匿名类的实现方
2021-04-09 10:30:50 93
原创 Andorid学习笔记五:广播
目录简介广播类型接收系统广播动态注册静态注册发送自定义广播发送标准广播发送有序广播简介每个应用都可以对自己感兴趣的广播进行注册,Andorid提供了一套完整的API用于发送和接收广播,发送广播借助Intent,接收广播借助BroadcastReceiver广播类型标准广播:完全异步执行,所有的Receiver会同一时间收到该广播,无法被截断有序广播:同步执行的广播,同一时刻只有一个Receiver能收到广播消息,当这个Receiver中的逻辑执行完毕后,才会继续传播。接收系统广播动态注
2021-04-09 09:49:59 94
原创 Kotlin学习四
目录扩展函数运算符重载扩展函数定义:在不修改某个类的源码的情况下,仍然可以打开这个类,向类添加新的函数定义扩展函数只需要在函数名前面加上一个ClassName.的语法结构,就表示将该函数添加到指定的类中了运算符重载opereator关键字,只要在指定的函数前面加上operator关键字,就可以实现函数重载的功能...
2021-04-08 14:55:39 72
原创 Andorid学习笔记四:Fragment
目录定义使用方式1.基本用法2.动态添加Fragment3. Fragment与Activity之间的交互生命周期1.状态2.回调定义Fragment是一种可嵌入在activity中的UI片段使用方式1.基本用法编写fragment布局新建Fragment类继承自Fragment重写onCreateView()方法加载布局2.动态添加Fragment创建待添加的Fragment实例获取FragmentManager开启一个事务向容器中添加或替换Fragment,一般使用re
2021-04-08 14:46:51 83
原创 Kotlin学习三
目录延迟初始化密封类延迟初始化lateinit关键字:一定要确保在任何地方被调用前都已经初始化了密封类sealed class密封类及其子类只能定义在同一个文件的顶层位置,不能嵌套在其他类中
2021-04-08 10:14:19 40
原创 Andorid学习笔记三:控件和布局
目录TextViewEditView可见属性:visibilityLinearLayoutRelativeLayoutFrameLayout控件和布局的继承结构ListViewRecyclerViewTextViewandroid:gravity指定文字的对齐方式EditViewandorid:hint指定一段提示文本可见属性:visibilityvisible:(默认值)invisible:组件不可见,但是占据原来的大小和空间gone:不仅不可见,不占用任何空间LinearL
2021-04-08 10:06:25 81
原创 Kotlin学习二
目录标准函数定义静态方法标准函数with:接收两个参数,一个参数是任意类型的对象,另一个参数是一个Lambda表达式。with函数在Lambda表达式中提供第一个参数对象的上下文,并使用Lambda表达式中最后一行代码作为返回值返回。val result = with(obj){ //这里是obj的上下文 "value"//with 函数的返回值}run:run函数并不会直接调用,而是在某个对象的基础上调用;其次run函数只接收一个Lambda表达式参数,并在表达式中提供调用对象的上
2021-04-07 14:39:01 93
原创 Android学习笔记二:Activity
目录在Activity中使用Toast在Activity中使用Menu在Activity中使用Intent在Activity中使用ToastToast.makeTest(context:Context, content:String,time:Int)在Activity中使用Menu新建菜单xml,其中item标签用来创建某一个菜单项,id属性给菜单指定一个唯一的标识符,title属性给菜单指定一个名称在Activity中重写onCreateOptionMenu()方法:overri
2021-04-07 11:26:54 168
原创 Kotlin学习一
目录变量函数程序逻辑控制if条件语句when语句循环语句面向对象编程继承构造函数接口Kotlin可见性修饰符数据类和单例类集合创建Lambda表达式集合中常见的函数式APIJava函数式API的使用Kotlin中匿名类写法可空类型系统Kotlin语法糖变量val:声明一个不可变的变量var:声明一个可变的变量显示声明变量类型:val a:Int=10Kotlin完全抛弃了Java中的基本数据类型,全部使用了对象数据类型函数形式:fun(参数):返回值类型参数格式:参数名:参数类型程序逻
2021-04-06 16:56:52 75
原创 Andorid学习笔记一:概述
目录Andorid系统架构Andorid应用开发特色Andorid项目结构资源的引用方式Android项目的依赖方式日志工具Andorid系统架构Linux内核层:为各种硬件提供底层驱动系统运行库层:通过C/C++库对Andorid系统提供了主要的特性支持,这一层也包含了Andorid运行时库应用框架层:构建程序时使用到的API应用层:各种应用Andorid应用开发特色四大组件:Activity,Service,BroadcastReceiver,ContentProviderAci
2021-04-06 15:46:17 144 1
原创 逐行解读ConcurrentHashMap源码(一)
一、属性解读private static final int DEFAULT_CAPACITY = 16;//默认的初始化容量private static final float LOAD_FACTOR = 0.75f;//默认的负载因子static final int TREEIFY_THRESHOLD = 8;//链表结构转树结构的阈值//两个比较重要的节点Hash值static final int MOVED = -1;//节点的Hash值为-1时(数组某索引下的首节点),表示当前槽
2020-06-04 20:15:20 159
原创 Redis持久化
Redis持久化Redis提供两种持久化机制:RDB:RDB可以在指定的时间间隔保存数据的快照AOF:AOF记录每一条输入的指令,在Redis启动的时候,对记录的这些指令进行重演以恢复数据。AOF以追加的形式记录新的命令。在AOF文件特别大的时候,会对AOF文件进行重写,重写的目的是去除冗余的记录,减小AOF文件的大小RDB的优势RDB文件以二进制的形式保存Redis中的数据,适合用于备份数据。你可以每小时保存一次快照或者每天保存一次,这样可以在数据恢复时,恢复不同版本的数据。RDB在数据
2020-05-27 20:05:57 85
原创 Leecode:盛最多水的容器
题目描述给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/container-with-most-water著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。思路:设两个点的坐标分别
2020-05-24 09:41:48 111
原创 Leecode:最长回文子串
1.题目描述给定一个字符串 s,找到 s 中最长的回文子串。示例:输入: “babad”输出: “bab”2.解法一:从中间往两边找思路:回文串表示从中间出发,往两边走,两边必然相同会有两种情况:奇数的情况下,从中间一个出发往两边偶数的情况下,从中间两个往两边public String longestPalindrome(String s){ char[] chs=s.toCharArray(); int max=0; int left=0; int right=0;
2020-05-18 20:22:00 80
原创 LeeCode3:无重复字符的最长子串
题目描述给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。解析1.暴力法 public int lengthOfLongestSubstring(String s) { if(s==null||s.length()==0){ return 0; } char[] ss = s.toCharArray...
2020-03-02 23:35:57 84
原创 LeeCode2:两数相加
两数相加题目描述给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/add-tw...
2020-03-02 22:15:53 72
原创 反序链表
两次遍历,一次存,一次拼接public ListNode reverseList(ListNode head) { if(head==null){ return null; } List<ListNode> list = new ArrayList<ListNode>(); //1...
2020-03-02 21:38:40 133
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人