自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lostfound的博客

android 开发

  • 博客(15)
  • 资源 (1)
  • 收藏
  • 关注

原创 Kotlin学习(十):其他Kotlin技术

Kotlin学习(十):其他Kotlin技术数据解构数据解构,就是将对象中的数据解析成隔壁那个相应的独立变量,也就是脱离原来的对象而存在。var (name, age) = user在这行代码中,将user 对象的 name 和 age 属性解构了出来,分别赋给了 name 和 age 变量。如果要这样实现,那么 user 对象需要是数据类的实例。data class User(var name: String, var age: Int)这行代码是一个 User 数据类,该数据类有2个参数

2021-12-15 11:57:55 1321

原创 Kotlin学习(七):函数

Kotlin学习(七):函数函数基本用法Kotlin 函数必须用 fun 关键字开头,后面紧跟着函数名,以及一对小括号,小括号中是函数参数列表,如果函数有返回值,在小括号后面加冒号 (:),冒号后面是函数的返回值类型。fun double(x: Int): Int { return 2 * x}调用函数使用传统方法:val result = double(2)调用成员函数使用点表示法:Stream().read() // 创建类 Stream 实例并调用 read()使用中缀

2021-11-26 16:22:15 1500

转载 Kotlin学习(八):高阶函数与Lambda表达式

Kotlin学习(八):高阶函数与Lambda表达式Kotlin 函数都是头等的,这意味着它们可以存储在变量与数据结构中,并可以作为参数传给其他高阶函数以及从其他高阶函数返回。可以像操作任何其他非函数值一样对函数进行操作。为促成这点,作为一门静态类型编程语言的 Kotlin 使用一系列函数类来表示函数并提供一组特定的语言结构,例如 lambda 表达式。高阶函数高阶函数是将函数用作参数或返回值的函数。高阶函数的一个不错的示例是集合的函数式风格的 fold, 它接受一个初始累积值与一个接合函数,并通

2021-11-26 16:21:23 261

转载 Kotlin学习(九):内联函数

Kotlin学习(九):内联函数使用高阶函数会带来一些运行时的效率损失:每一个函数都是一个对象,并且会捕获一个闭包。 闭包那些在函数体内会访问到的变量的作用域。 内存分配(对于函数对象和类)和虚拟调用会引入运行时间开销。但是在许多情况下通过内联化 lambda 表达式可以消除这类的开销。 下述函数是这种情况的很好的例子。lock() 函数可以很容易地在调用处内联。 考虑下面的情况:lock(l) { foo() }编译器没有为参数创建一个函数对象并生成一个调用。取而代之,编译器可以生成以下代码:

2021-11-26 16:20:16 306

原创 Kotlin学习(六):对象和委托

Kotlin学习(六):对象和委托对象对象表达式在 Java 中,有 个匿名类的概念,也就是在创建类时,无须指定类的名字。匿名类用于方法的参数类型。基本理念是方法参数需要接收一个类或接口的实例,而这个实例只是在该方法中临时用一下,并没有必要单独定义一个类,或单独创建一个对象变量。 因此,就在传入方法参数值的同时创建了类的实例。下面的代码演示了 Java 中匿名类的使用。public class MyClass { public String name; public MyClass

2021-11-24 17:19:37 1799

原创 Kotlin学习(五):泛型

Kotlin学习(五):泛型泛型基础在学习泛型之前,首先要了解什么是泛型。现在先来举个 Java 的例子(换成 Kotlin 代码同样适用 )。 JDK 中,有一类列表对象,这些对象对应的类都实现了 List 接口。 List 中可以保存任何对象,下面创建 List 对象,并向其中添加数据的代码。List list = new ArrayList();list.add("abc");list.add(123);在这段代码中, List 对象保存了 String 和 Integer 类型。尽管这

2021-11-22 16:55:47 2044

原创 Kotlin学习(四):数据类和封闭类

Kotlin学习(四):数据类和封闭类数据类使用数据类数据类是 Kotlin 个语法糖。 Kotlin 编译器会自动为数据类生成 些成员函数,以提高开发效率。我们经常创建一些只保存数据的类。 在这些类中,一些标准函数往往是从数据机械推导而来的。在 Kotlin 中,这叫做 数据类 并标记为 data:data class User(var name: String, var age: Int) 编译器自动从主构造函数中声明的所有属性导出以下成员:equals()/hashCode() 对;

2021-10-28 14:46:10 897

原创 Kotlin学习(三):枚举类和扩展

Kotlin学习(三):枚举类和扩展枚举类枚举类基本用法在 Kotlin 中,枚举类型是以类的形式存在的,因此称为枚举类。下面的代码是最简单的枚举类定义方式。enum class Direction { NORTH, SOUTH, WEST, EAST}每个枚举常量都是一个对象。枚举常量用逗号分隔。那么如何使用枚举类呢?既然枚举类也是类,那么自然可以按使用类的方式使用枚举类,使用类的方式无外乎定义变量、初始化、判断变量是否相等这几样操作。下面的代码演示了枚举类是如何使用的://

2021-10-27 17:21:33 890

原创 Kotlin学习(二):类和接口

Kotlin学习(二):类和接口类声明在Kotlin中,类的声明与Java一样,也使用class关键字。class MyClass{ ...}类声明由类名、类头(指定其类型参数、主构造函数等)以及由花括号包围的类体构成。类头与类体都是可选的; 如果一个类没有类体,可以省略花括号。构造函数在Kotlin中,一个类可以有一个主构造函数( primary constructor )及多个次构造函数( secondary constructor )。主构造函数主构造函数是类头的一部分,紧

2021-10-27 11:48:40 585

原创 Kotlin学习(一):Kotlin基础知识

Kotlin基础知识定义变量常量在Kotlin中,定义变量时有以下几点与java不同:位置不同:在 Kotlin 中,数据类型要放到变量后面,并且用冒号(:)分隔,这正好和 Java 相反。变量和常量需要关键字:在 Kotlin 中,定义变量需要用 var 开头,定义常量需要用 val 。数据类型首字母:在 Kotlin 中,数据类型都以大写字母开头,而在 Java 中,一般只有类、接口等复杂数据类型的名字才采用首字母大写的方式。如果在定义变量时未进行初始化,就必须指定数据类型,如果在定义变量

2021-10-26 11:12:11 1629

原创 Android包体优化总结

应用安装包大小的重要性已经不需要多说,安装包大小直接影响用户的下载,留存,甚至部分运营商上线要求必须小于一定的值。但是随着业务的迭代开发,应用会越来越大,安装包体积不断增长。而随着安装包体积的增大,还会导致应用的安装时间,运行内存和 rom 空间也因此增大,因此 APK 的瘦身已经是不得不考虑的事情。Apk的构成可以通过Android studio 自带的 Analyze APK 工具分析apk。直接将电脑上的 apk 拖进 Android Studio 中就可以自动使用 Analyze APK 打开

2021-03-01 15:35:19 584 3

原创 webp图片压缩

webp图片压缩webp简介Webp是一个现代的图片格式提供优秀的无损和有损压缩。使用Webp我们可以创建更小更丰富的图片。Webp无损图片比PNG图片的size小26%。Webp有损图片在同等SSIM(结构化相似)质量下比JPEG小25-34%。无损Webp支持透明度(透明通道)只占22%额外的字节。如果可以接受有损RGB压缩,有损Webp也支持透明度,通常比PNG文件size小3倍。webp图片转换Android 4.0 (API level 14)及以上支持有损Webp图片,Android

2021-02-26 17:31:58 2028

原创 设计模式之抽象工厂模式

设计模式之抽象工厂模式1.定义抽象工厂模式( Abstract Factory Pattern )是一种比较常用的模式,其定义如下:为创建一组相关或相互依赖的对象提供 个接口,而且无须指定它们的具体类。抽象工厂模式的通用类图如下所示:抽象工厂模式是工厂方怯模式的升级版本,在有多个业务品种、业务分类时,通过抽象工厂模式产生需要的对象是一种非常好的解决方式。2. 优缺点**优点:**封装性 ,每个产品的实现类不是高层模块要关心的,它要关心的是什么?是接口,是抽象,它不关心对象是如何创建出来,这由谁

2021-02-08 11:28:40 94

原创 设计模式之工厂方法模式

设计模式之工厂方法模式1.定义Define an interface for creating an object, but let subclasses decide which class to instantiate. Factory Method lets a class defer instantiation to subclasses. (定义一个用于创建对象的接口,让子类决定实例化哪类。工厂方法使一个类的实例化延迟到其子类。)工厂方法的通用类图如下图所示:在工厂方法模式中,抽象产品类

2021-02-07 16:55:17 269 2

原创 设计模式之单例模式

设计模式之单例模式1.定义单例模式( Singleton Pattern )是 个比较简单的模式,其定义如下:确保某一个类只有一个实例,而且自行实例化井向整个系统提供这个实例。单例模式的通用类图如下图所示:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KGO1BLJd-1612174284502)(C:\Users\user\Desktop\设计模式\单例模式.jpg)]2.优缺点2.1优点在内存中只有一个实例,减少了内存开支由于单例模式只生成一个实例,所以

2021-02-01 21:29:42 103 2

数据结构面试常用经典问题

整理了一些面试当中遇到的数据结构与算法的常用问题

2021-02-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除