首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

kotlin入门之泛型

泛型 将具体的类型泛化,编码的时候用符号来值代类型,在使用时再确定他的类型。 因为泛型的存在,我们可以省去强制类型转化。 泛型是跟类型相关的,那么是不是也能使用与类型的多态呢?...Java的泛型类型会在编译时发生类型擦除,为了保证类型安全,不允许这样赋值、 至于什么是类型擦除,等下再讲。 在实际使用中,我们的确会用这种类似的需求,需要实现上面这种赋值。...Button 对象一定是这个未知类型的子类型,根据多态的特性,这里通过 add 添加 Button 对象是合法的。 使用下界通配符 ?...super Button>,往里面添加 Button, 因此这种泛型类型声明称之为「消费者 Consumer」。 小结下,Java 的泛型本身是不支持协变和逆变的。 可以使用泛型通配符 ?...var list: List 和 Java 不同的地方是,如果你的类型定义里已经有了out或者 in, 那这个限制在变量声明时也依然在,不会被*号去掉。

1.2K20

网易考拉 Android 通知栏适配全方案

通过Notification.Builder.addAction(Action)添加按钮。 通知栏优先级 Android 4.1通知栏增加了优先级的配置,优先级高的消息可以展示在最上方。...需要动态设置Builder.setShowWhen(true)才会显示时间。 支持Action的直接回复,通过RemoteInput实现,且回复的消息内容支持立即添加到通知栏。...乐视的系统在6.0.1系统上的表现指明支持的是Unicode 7.0标准,实际上Android原生已经支持Unicode 8.0标准了。...如果不是必要,建议不要使用RemoteViews。考拉之前是为了兼容在不同手机厂商上展示的emoji表情不一致,以及兼容低版本系统,而在包含emoji表情的消息推送中使用了RemoteViews。...开发者也可以使用新的addHistoricMessage()方法将消息添加到通知栏中,以便提供对话的上下文信息。

5.2K11
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    面试一线互联网公司Android中高级开发工程师必问面试题集锦

    在回答这个问题之前,我先说一下中高级安卓开发工程师的薪资水平吧。至于为什么,先说这个。因为我怕接下来你没有动力去看,去学习,去提高。所以先给你一点动力。...(猎豹) 5.举1-2个排序算法,并使用java代码实现(美团) 6.列举java的集合和继承关系(百度、美团) 7.java虚拟机的特性(百度、乐视) 8.哪些情况下的对象会被垃圾回收机制处理掉(乐视...、美团、小米) 9.进程和线程的区别(猎豹) 10.Java中==和equals的区别,equals和hashCode的区别(乐视) 11.常见的排序算法时间复杂度(小米) 12.HashMap的实现原理...Java中hashmap和hashtable的区别(乐视、小米) 23.ArrayMap VS HashMap 二、android方面 1.数据库的操作类型有哪些,如何导入外部数据库?...22.invalidate()和postInvalidate() 的区别及使用(百度) 23.Android动画框架实现原理 24.Android为每个应用程序分配的内存大小是多少?

    2.3K40

    最全的BAT大厂面试题整理

    utf-8编码中的中文占几个字节;int型几个字节? 静态代理和动态代理的区别,什么场景使用? Java的异常体系 谈谈你对解析与分派的认识。...修改对象A的equals方法的签名,那么使用HashMap存放这个对象实例的时候,会调用哪个equals方法? Java中实现多态的机制是什么? 如何将一个Java对象序列化到文件里?...run()和start()方法区别 如何控制某个方法允许并发访问线程的个数? 在Java中wait和seelp方法的不同; 谈谈wait/notify关键字的理解 什么导致线程阻塞? 线程如何关闭?...服务器只提供数据接收接口,在多线程或多进程条件下,如何保证数据的有序到达? 动态布局的理解 怎么去除重复代码?...(一)非技术问题 介绍你做过的哪些项目 都使用过哪些框架、平台? 都使用过哪些自定义控件? 研究比较深入的领域有哪些? 对业内信息的关注渠道有哪些? 最近都读哪些书? 有没有什么开源项目?

    1.1K20

    2年Android开发面经分享:跳槽网易个人创业失败后,拿到快手,字节,百度等的Offer之旅

    Android签名,V1,V2 Glide中生命周期如何实现的 Glide如何加载一个Gif图 对于Android中内存使用中注意的点(围绕内存泄露与内存优化讲) MVP,MVVM,MVC的差异性已经适用场景...Android APK为什么不可以在IOS上运行,如何设计可以让其运行?...Android中进程通信的方式,Binder的优势是什么? SparyArray和ArrayMap的实现原理? 使用过Koltin吗? 使用过RxJava和Retrofit吗?...Android知识 对于Android这块,从打包到安装,再到一个App的启动,到一个页面显示出来内容,再到我们的手指去触摸屏幕对屏幕带来了改变,对这个流程可以跟进相应的源码,顺着这个流程来自己捋一遍...算法与数据结构篇 算法这一块建议把《算法》查找与排序读以下,同时跟着《算法导论》学习一下时间,空间复杂度的计算,常见的题目类型为图上这些,在我之前的博客中有写动态规划一期,包教包会。

    89720

    记自己2018年三月份的面试经历烦烦烦烦面试的几家公司写在结尾

    海康威视 吸取了之前面试失败的教训,所以又让同学 B 给我内推了海康威视,正好也在招 Android 开发。...、Looper三者的关系和原理; 对于 Android 开发,自己擅长哪方面; Java动态代理的使用,InvocationHandler 有什么用; 为什么 Google 会推出Fragment ,...第二轮现场面试 Android 插件化的原理; 热修复的原理; Java GC 回收,如何判断对象存活; Java GC 算法; AsyncTask 、HanlderThread 、IntentService...的相同和不同点,在 item 回收上有什么不同; View 事件分发机制; 说说 apk 打包流程; 有没有做过 apk 多渠道打包; Android 组件化的原理,还有一些组件化平时使用的问题; Binder...有没有了解过; HashMap 的存储原理; Kotlin 特性,和 Java 相比有什么不同的地方; Android Framework层有没有了解过,说说 Window 窗口添加的过程; Window

    1.2K120

    最全的BAT大型互联网公司面试题整理

    utf-8编码中的中文占几个字节;int型几个字节? 静态代理和动态代理的区别,什么场景使用? Java的异常体系 谈谈你对解析与分派的认识。...修改对象A的equals方法的签名,那么使用HashMap存放这个对象实例的时候,会调用哪个equals方法? Java中实现多态的机制是什么? 如何将一个Java对象序列化到文件里?...run()和start()方法区别 如何控制某个方法允许并发访问线程的个数? 在Java中wait和seelp方法的不同; 谈谈wait/notify关键字的理解 什么导致线程阻塞? 线程如何关闭?...服务器只提供数据接收接口,在多线程或多进程条件下,如何保证数据的有序到达? 动态布局的理解 怎么去除重复代码?...(一)非技术问题 介绍你做过的哪些项目 都使用过哪些框架、平台? 都使用过哪些自定义控件? 研究比较深入的领域有哪些? 对业内信息的关注渠道有哪些? 最近都读哪些书? 有没有什么开源项目?

    3.9K40

    屎上最全的BAT面试,吐血整理,网友回复:那是真的厉害

    utf-8编码中的中文占几个字节;int型几个字节? 静态代理和动态代理的区别,什么场景使用? Java的异常体系 谈谈你对解析与分派的认识。...修改对象A的equals方法的签名,那么使用HashMap存放这个对象实例的时候,会调用哪个equals方法? Java中实现多态的机制是什么? 如何将一个Java对象序列化到文件里?...run()和start()方法区别 如何控制某个方法允许并发访问线程的个数? 在Java中wait和seelp方法的不同; 谈谈wait/notify关键字的理解 什么导致线程阻塞? 线程如何关闭?...服务器只提供数据接收接口,在多线程或多进程条件下,如何保证数据的有序到达? 动态布局的理解 怎么去除重复代码?...(一)非技术问题 介绍你做过的哪些项目 都使用过哪些框架、平台? 都使用过哪些自定义控件? 研究比较深入的领域有哪些? 对业内信息的关注渠道有哪些? 最近都读哪些书? 有没有什么开源项目?

    1.2K30

    史上最全 BAT 大厂面试题整理!(速度收藏)

    utf-8编码中的中文占几个字节;int型几个字节? 静态代理和动态代理的区别,什么场景使用? Java的异常体系 谈谈你对解析与分派的认识。...修改对象A的equals方法的签名,那么使用HashMap存放这个对象实例的时候,会调用哪个equals方法? Java中实现多态的机制是什么? 如何将一个Java对象序列化到文件里?...run()和start()方法区别 如何控制某个方法允许并发访问线程的个数? 在Java中wait和seelp方法的不同; 谈谈wait/notify关键字的理解 什么导致线程阻塞? 线程如何关闭?...服务器只提供数据接收接口,在多线程或多进程条件下,如何保证数据的有序到达? 动态布局的理解 怎么去除重复代码?...(一)非技术问题 介绍你做过的哪些项目 都使用过哪些框架、平台? 都使用过哪些自定义控件? 研究比较深入的领域有哪些? 对业内信息的关注渠道有哪些? 最近都读哪些书? 有没有什么开源项目?

    1.8K40

    Android Jetpack 更新一览

    作者 / Florina Muntenescu, Android Developer Advocate Android Jetpack 是一套库、工具和指导规范,帮助开发者遵循最佳实践,减少模板代码,以及编写在不同的...该库还带来了对最新设备和操作系统功能的支持,包括高动态范围 (HDR) 预览、变焦率控制,以及对 Android 勿扰模式的支持。...使用构建器来创建模式类型的文件,然后将它们添加到存储中。查询 "body:fruit" 将检索所有在消息正文中带有 "fruit" 一词的文档。...请注意目前在 Jetpack 中还不能使用 AppSearch,因为其尚未针对 Android S SDK 开发。...对于自定义 TextViews,可以使用 :emoji2:emoji2-views-helpers 中的实用方法,或通过继承 AppCompat 视图来支持现代表情符号。

    1.6K20

    【技术博客】Android自定义Lint实践

    这里插一句,Lint是如何实现Java扫描分析的呢?Lint使用了Lombok做抽象语法树的分析。所以在我们告诉它需要什么类型后,它就会把相应的Node返回给我们。...; 第三个参数location会返回当前的位置信息,便于在报告中显示定位; 最后的字符串用来为警告添加解释。...之前提到自定义Lint是一个Java工程,那么打出的jar包如何使用呢?...于是我们想到,在发现new HashMap后去找前面的泛型,因为本身Java就是靠类型推断的,我们可以直接根据前面的泛型来确定是否使用SparseArray。...当然为了团队更方便地接入检查,我们在检查流程中内置了脚本来自动添加plugin,这样团队就可以在不添加任何代码的情况下,实现自定义Lint检查。 参考文献 Google.

    1.5K60

    面试涨薪攻略指南:Android面试必须掌握的那些Java知识点

    因为Androd使用Java语言来编程的,所以我们做Android开发全面的掌握Java基础是必须的。...utf-8编码中的中文占几个字节;int型几个字节? 静态代理和动态代理的区别,什么场景使用? Java的异常体系 谈谈你对解析与分派的认识。...修改对象A的equals方法的签名,那么使用HashMap存放这个对象实例的时候,会调用哪个equals方法? Java中实现多态的机制是什么? 如何将一个Java对象序列化到文件里?...run()和start()方法区别 如何控制某个方法允许并发访问线程的个数? 在Java中wait和seelp方法的不同; 谈谈wait/notify关键字的理解 什么导致线程阻塞? 线程如何关闭?...在程序运行前,代理类的.class文件就已经存在了。动态代理类:在程序运行时,运用反射机制动态创建而成。 14、Java中实现多态的机制是什么?

    51410

    2021年Android面试题及答案收集(不断更新中)

    13.Java中反射的相关理解 Java的反射机制是在运行状态中,对于任意一个类,都能够获取到这个类的所有属性和方法,对于任意一个对象,能够调用它的任意一个方法和属性,包括私有的方法和属性,这种动态地获取信息以及动态的调用对象的方法的功能就称之为...相比传统的HashMap速度更慢,因为其查找方法是二分法,并且当删除或添加数据时,会对空间重新调整,可以说ArrayMap是牺牲了时间来换空间,ArrayMap与HashMap的区别主要在: 存储方式不同...线程安全性不同,HashTable中的方法是synchronized的,而HashMap中的方法在缺省的情况下是非ynchronized的,在多线程的环境下,可以直接使用HsahTable,不需要为他的方法实现同步...30.如何控制某个方法允许并发访问线程的个数 在Java中常使用Semaphore(信号量)来进行并发编程,Semaphore控制的是线程并发的数量,实例化一个Semaphore对象,如Semaphore...堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,因为它是在运行时动态分配内存的,Java的垃圾收集器会自动收走这些不再使用的数据。

    90720

    安卓开发_九宫格布局

    学习内容来自 android布局基础及范例:人人android九宫格布局 , 类似的九宫格 上面是图片,下面是文字 这里用的是“GridView”表格布局,下面我来给大家讲一下: 首先,请大家理解一下“...迭代显示”这个概念,这个好比布局嵌套,我们在一个大布局里面重复的放入一些布局相同的小布局, 那些重复的部分是由图片和文字组成的小控件,图片在上方,文字在下方,之后我们只需要把这些小控件迭代进入主容器里即可...@+id/ItemText" 16 android:layout_centerHorizontal="true" 17 /> 18 这里使用了一个相对布局,在...TextView 里使用属性android:layout_below=”@+id/ItemImage”指示了文本在图片的下方。...采用了java中的数据结构:HashMap 1 package jiabin.activity; 2 3 import java.util.ArrayList; 4 import java.util.HashMap

    99730

    Java和Android的LRU缓存及实现原理

    二、Java的LRU算法 Java的LRU算法的基础是LinkedHashMap,LinkedHashMap继承了HashMap,并且在HashMap的基础上进行了一定的改动,以实现LRU算法。...1、HashMap 首先需要说明的是,HashMap将每一个节点信息存储在Entry结构中。...每一个key对应的hashCode,在HashMap的数组中都可以找到一个位置;而如果多个key对应了相同的hashCode,那么他们在数组中对应在相同的位置上,这时,HashMap将把对应的信息放到Entry...三、Android的LRU算法 Android同样提供了HashMap和LinkedHashMap,而且总体思路有些类似,但是实现的细节明显不同。...首先需要说明的问题是,Android的LinkedHashMap和Java的LinkedHashMap在思路上一样,也是使用header保存双向链表。

    91810

    Android组件化方案及组件消息总线modular-event实战

    美团内部各个Android开发团队也在尝试和实践不同的组件化方案,并且在组件化通信框架上也有很多高质量的产出。最近,我们团队对美团零售收银和美团轻收银两款Android App进行了组件化改造。...组件化消息总线的设计目标 消息由组件自己定义 以前我们在使用消息总线时,喜欢把所有的消息都定义到一个公共的Java文件里面。...定义消息的时候需要指定属于哪个组件。 如何实现这些约束 在消息定义文件上使用注解,定义消息的类型和消息所属Module。 定义注解处理器,在编译期间收集消息的相关信息。...在编译器根据消息的信息生成调用时需要的interface,用接口约束消息发送和订阅。 运行时构建基于两级HashMap的LiveData存储结构。...动态代理: 代理类是在运行时生成的。也就是说Java编译完之后并没有实际的class文件,而是在运行时动态生成的类字节码,并加载到JVM中。

    87940
    领券