在Android开发中,一些不好的编程习惯会导致我们的开发的app存在内存泄露的情况。下面简单介绍一些在Android开发中常见的内存泄露场景及优化方案。 1.单例引用Act...
![240](https://upload.jianshu.io/users/upload_avatars/10563958/d4076b17-0aea-4e40-b865-34be5fddce5c.jpg?imageMogr2/auto-orient/strip|imageView2/1/w/240/h/240)
在Android开发中,一些不好的编程习惯会导致我们的开发的app存在内存泄露的情况。下面简单介绍一些在Android开发中常见的内存泄露场景及优化方案。 1.单例引用Act...
MVVM大家都了解差不多了,但是我发现MVVM整成架构时,每个人的写法真的是千差万别。 除了MVVM必要的ViewModel、LiveData,其它写法也没有统一的标准,看下...
函数定义 在kotlin中,函数终于成为一等公民,支持面向过程终于在 “JAVA”阵营中成为了现实。 顶级函数 在kotlin中,可以将函数直接定义在源文件中,这种函数就被称...
在kotlin中数组和list的操作符基本共同,所以在数组中可用的操作符也可以在list中使用。 统计操作符 any 只要有一个符合就返回true all 所有条件符合才返回...
多态定义 多态是指允许不同类的对象对同一消息做出相应,即对同一消息可以根据发送对象的不同而采用不同的行为方式。(发送消息就是函数调用) father.barson.bargr...
继承语法 类和接口的继承通过 : 来实现 接口 kotlin 的接口可以包含抽象方法,以及方法的实现,接口可以有属性但必须是抽象的,或者提供访问器的实现,当然java 8 中...
kotlin类型兼容java类型的全部语义和概念,但是也并非完全相同,不过在kotlin中,一个类型于java中的一样,也包含如下元素: 构造器和初始化模块 成员函数 属性 ...
kotlin是一门静态语言 参数定义 kotlin中没有8中基本类型的概念了,只剩下了val / var 参数定义:val/var 参数名:参数类型 = 参数值定义参数时 ...
装饰者模式 因为java的IO是基于装饰者模式设计的,所以要了解掌握IO 必须要先清楚什么事装饰者模式(装饰者模式也称为包装模式,其使用一种对客户端透明的方式动态的扩展对象功...
JSON 定义:JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式 作用:数据标记,存储,传输 特点: 读写速度快 解析简单 轻量级...
序列化定义以及相关概念 定义:将数据结构或对象转换成二进制串的过程。 由于在系统底层,数据的传输形式是简单的字节序列形式传递,即在底层,系统不认识对象,只认识字节序列,而为了...
了解Dalvik和ART 什么是Dalvik:Dalvik是Google公司自己设计用于Android平台的Java虚拟机。支持已转换为.dex(Dalvik Executa...
学习垃圾回收机制的意义 java和C++等语言的最大技术区别:自动化的垃圾回收机制(GC: Garbage Collection)为什么要了解GC和内存分配策略: GC对应用...
为什么要了解虚拟机 JVM不单单只支持Java语言,也支持其他语言(Scala、Kotlin、Groovy等等) 写出更好,更健壮的程序 (区块链1.0:比特币,区块链2.0...
为什么我们需要泛型? 通过两段代码我们就可以知道为何我们需要泛型 实际开发中,经常有数值类型求和的需求,例如实现int类型的加法, 有时候还需要实现long类型的求和, 如果...
反射定义 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方...
CPU的核心数和线程数的关系 CPU的核心数和线程数一般是1:1的关系,Intel推出的超线程技术能使电脑的核心数和线程数的比达到 1:2 (基于一个物理核心模拟两个逻辑核心...
线程池 1.什么是线程池?为什么要用线程池? Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池。线程池就是将线程进行池化,需要...