稀有猿诉

十年磨一剑,历炼出锋芒,说话千百句,不如码二行。

Understanding Kotlin Scope Functions

Kotlin是基于JVM衍生出来的新一代通用编程语言,它的目标是简洁,可读和高效,这里的高效并不是代码的运行效率高,而是说项目的开发效率高。Kotlin有太多的小巧的新特性(在Java眼中就是语法糖),比如在Kotlin中有几个作用和用法都非常接近的函数apply/with/run/let/also,它们的正统名字是作用域函数(Scope functions),今天就来学习一下这些函数的使用方法和具体区别。

String Problems Archive

字符串即由字符组成的线性数组结构,可以理解为字符数组或者字符列表,但元素的集合是有限集合,通常是英文字符,数字和算术运算符号。可以说数组和列表的常见问题和技巧都可以应用于字符串,但因为是有限集合,所以又有一些独特的问题和技巧,今天就来总结一下。

基础利器之Stack和Queue

在基础的数据结构中栈和队列使用极其广泛,其用法也很多,今天就来总结一下栈和队列的使用方法和相关的题目。

Table Tennis Road Map

乒乓球可以锻炼反应能力,运动量适中,场地要求不高,能放下球台就能玩,人数要求也不高,二个人就能玩,所以非常适合中老年人,打了一段时间感觉良好,但乱打还是不行的,需要好好入门,然后再慢慢提高。

Introduction to Android Jetpack

Android Jetpack是一个由谷歌官方提供的安卓开发套件(套件是一组组件的意思),目的是帮助安卓开发者解决兼容性问题,减少重复代码,提升体验和性能,最重要的是提升开发效率。安卓以碎片化著名,不同的版本,不同的OEM厂商导致整个安卓设备碎片化严重,对App生态来说是很不友好,加之安卓本身的原因导致像流畅度,体验和性能始终逊水果不止一筹。后来谷歌推出一系列的Android SDK之外的一系列开发组件如support library来解决兼容性(App compat)和新的开发组件(RecyclerView, CardView, Pager等),后来这些东西就演变成了现在的Android Jetpack。

Understanding Kotlin Based DSL

DSL Domain Specific Langauge是解决特定领域内问题的编程语言,它的特点通常是简洁,虽不通用,但可读性强,呈描述式和声明式,比较典型的例子就是SQL语句和正则表达式,以及一些文本处理工具如Sed和AWK。与之对应的就是通用编程语言GPL General Purpose Language,能解决几乎所有的计算机问题,没有为特定领域进行定制,但语句可读性远不及DSL,它们的语句一般都是命令式的,如熟悉的C/C++, Java和Python等。

Design Problems Archive

设计类习题是指要求设计一个类以完成某种特定需求,不是很复杂,通常一个类就能搞定,整体代码也不会特别长,但又能考察到一些基本的知识点,或者一些基本的技巧。通常是由一些日常中常见的任务经过简化而来。

链表问题总结

链表LinkedList是一种线性的非连续数据结构,优势是随机删除和添加特别高效,但随机访问效率差。因为链表边界条件较多,容易出错,所以还是比较常见的一类题目。但链表常见的问题就那么多,总结起来就那么几个,想要掌握还是比较容易的。

Kotlin进阶之协程从专家到出家

协程Coroutine是一种轻量级的实现异步的方式,是代码执行的控制框架,是最新式的并发编程范式。它在使用上大大简化了以往多线程并发带来的种种麻烦(如状态同步和锁),最大的优势就是它是纯编程语言层面实现的,不受制于操作系统,因此它不会阻塞。在前两篇基础之上,今天再来深入的理解一下各种概念,并脱去协程华丽的外衣一探它的本质。

Kotlin Collections

现代的软件一般比较复杂,程序语言中的基本数据类型往往不能满足需要,除了基本的数据类型以外,还有对象的容器也非常的重要,比如线性容器(数组,列表和Set)和二维容器(哈希表)等。今天就来学习一下Kotlin中的容器。