Kotlin面试问题与答案
通过Sathish2021年6月11日晚8:06:30
1.芬兰湾的科特林是什么?
答:它是一种结合了面向对象编程特性的开源编程语言。
范围表达式、扩展函数、伙伴对象、智能类型转换、数据类等功能被认为是Kotlin语言的多余功能。
2.Kotlin的开发商是谁?
答:Kotlin是由JetBrains开发的。
3.解释Kotlin中的数据类?
答:在编程中,我们使用类来保存数据,这些类称为数据类。
对象可以在数据类中初始化,为了访问这些数据类的各个参数,我们使用组件函数。
4.Kotlin的折叠和缩进的基本区别是什么?什么时候用哪个?
答:
褶皱-接受一个初始值,您传递给它的lambda的第一次调用将接收该初始值和集合的第一个元素作为参数。
listOf(1, 2, 3).fold(0) {sum, element -> sum + element}
对lambda的第一次调用将带有参数0
和1
.
能够传递一个初始值是很有用的如果您必须为操作提供某种默认值或参数。
降低- D.Oesn不接受初始值,而是以集合的第一个元素作为累加器(调用总和
在下面的例子中)
listOf(1, 2, 3).reduce {sum, element -> sum + element}
这里对lambda的第一个调用将带有参数1
和2
.
5.Kotlin支持哪种类型的编程?
答:Kotlin只支持两种类型的编程,它们是:
- 程序编程
- 面向对象编程
- 功能
6.为什么我们要使用Kotlin?
答:
- 芬兰湾的科特林简洁
- Kotlin是空安全的
- 芬兰湾的科特林是可互操作的
7.Kotlin中有哪些不同类型的构造函数?
答:在Kotlin中有两种构造函数:
- 主构造函数:它是Class头文件的一部分,在类名之后声明。
- 二级构造函数:该构造函数在函数体内部声明。
- 注意:一个类可以有更多的二级构造函数。
8.为什么在手机应用开发中使用Kotlin ?
答:由于Kotlin简化了Java的许多语法元素,因此更容易编写简洁的、文档完备的代码。此外,由于它直接在JVM上运行,企业几乎不需要投资新的技术堆栈。所以成本效益调整是很好的。
此外,Kotlin已经开始取代许多基于java的Android应用程序,以及用Swift编写的iOS应用程序。随着时间的推移,这个数字只会增加,适应Kotlin将成为现代企业的必要条件。因此,要想在竞争中保持领先地位,开发人员今天应该拥抱Kotlin。
9.Kotlin的最佳功能是什么?
答:Kotlin的一些最好的特征是-
- 它支持面向对象和函数式编程范式。
- 它提供了在Java中不可用的易于使用的lambda函数。
- 维护kotlin相当便宜,提供出色的容错。
- 允许开发Node.js应用程序和jvm。
- 非常支持异步通信。
- 与现有Java代码的异常兼容性。
10.什么是Kotlin的零安全?
答:Kotlin配备了内置的保护,防止了不需要的空引用,它允许它更容易容错。因此,它允许节目减少nullpointerexception在运行时,防止不必要的程序崩溃。这是大多数现有Java软件面临的一个常见问题,并导致数百万美元的损失。这通常被称为空安全开发人员在芬兰湾的科特林。
11.提到Kotlin的结构表达?
答:科特林语中有三种结构表达。
它们是:
- 返回:默认情况下,它从最近的封闭函数或匿名函数返回。
- 打破:该表达式终止最近的封闭循环。
- 继续:这个表达式将引导您进入下一个最近的封闭循环。
12.在Kotlin中有哪些修饰语可用?
答:Kotlin中的修饰符为开发人员提供了根据需求定制声明的功能。
Kotlin提供了四个修饰符。
它们是:
- 私人:这使得声明只在包含声明的文件中可见。
- 公众:它是默认的,这意味着声明将在任何地方都可见。
- 内部:这使得声明在同一模块中的各处可见。
- 保护:这使声明保护受保护,不适用于顶级声明。
13.猫王在Kotlin是做什么的?
答:在Kotlin中,你可以通过使用null安全属性给变量赋空值。要检查一个值是否为空值,可以使用if-else或Elvis操作符。?:
例如:
var的名字:字符串?= " Mindorks "
val nameLength = name?长度:1
println (nameLength)
猫王操作符(?:
如果值不为空,则返回名称的长度,否则如果值为空,则返回-1
.
14.如何将kotlin源文件转换为Java源文件?
答:将Kotlin源文件转换为Java源文件的步骤:
- 在IntelliJ IDEA / Android Studio中打开Kotlin项目。
- 然后导航到工具> Kotlin >显示Kotlin字节码。
- 现在点击反编译按钮以从字节码获取Java代码。
15。@JvmStatic、@JvmOverloads和@ jvmfile在Kotlin中的用途是什么?
答:
- @JvmStatic:该注释用于告诉编译器该方法是一个静态方法,可以在Java代码中使用。
- @JvmOverloads:要使用Java代码中的Kotlin代码中作为参数传递的默认值,需要使用@jvmoverloads注释
- @JvmField:要在不使用任何getter和setter的情况下从Java代码访问Kotlin类的字段,需要使用@jvmfield在Kotlin代码中。
16.我们使用int,double,漂浮在kotlin的原始类型?
答:在Kotlin中,我们不能直接使用原始类型。我们可以使用Int、Double等类作为原语的对象包装器。但是编译后的字节码有这些基本类型。
17.在Kotlin中抽象的用途是什么?
答:抽象是面向对象编程中最重要的概念。在Kotlin中,当您知道一个类应该具有什么功能时,就会使用抽象类。但是您不知道功能是如何实现的,或者功能是否可以使用不同的方法实现。
18.列出Kotlin的基本数据类型?
答:常量或变量的数据类型决定了它是什么类型的变量以及需要多少空间来存储它。
Kotlin的基本数据类型是:
- 数字
- 字符
- 字符串
- 数组
- 布尔值
19.描述Kotlin的优点和缺点?
答:
优点:
Kotlin很简单,很容易学习,因为它的语法类似于Java。
它是基于的功能语言Java虚拟机,它删除了样板代码。综上所述,Kotlin被认为是一种易于阅读和理解的表达性语言,并且性能非常好。
它可以用于任何桌面、web服务器或基于移动的应用程序。
缺点:
Kotlin不提供静态修饰符,这给传统的java开发人员带来了问题。
在Kotlin中,函数声明可以在应用程序的许多地方执行,这为开发人员理解正在调用哪个函数带来了麻烦。
20.解释Kotlin中的功能?
答:Kotlin函数是一类函数,很容易存储在变量和数据结构中,可以作为参数传递,也可以从其他高阶函数返回。
Kotlin中的示例函数声明和使用
fun double(x: Int): Int {
返回2 * x
}
Val result = double(2)
21.列出一些扩展方法在kotlin?
答:一些扩展方法是:
- 阅读文本():帮助将文件中的内容读入单个字符串。
- 缓冲读者():它用于读取文件的内容以缓冲读取器
- 读取每一行():它逐行读取文件中的每一行
- readline ():它有助于读取文件的行来列出清单
22.什么是Kotlin中的内联函数?
答:内联函数指示编译器在代码中使用该函数的任何地方插入该函数的完整体。要使用内联函数,您只需要在函数声明的开头添加内联关键字。
23.什么是Kotlin中的noinline ?
答:当使用内联函数并希望传递一些lambda函数而不是所有的lambda函数作为内联,那么你可以显式地告诉编译器哪个lambda不应该内联。
inline fun doSomethingElse(abc: () -> Unit, noinline xyz: () -> Unit) {
美国广播公司()
xyz ()
}
24.继承在Kotlin中编译吗?
答:在kotlin中不能编译正式的继承结构。通过使用开放修饰符,我们可以结束类。
开放的B类
{
}
class c = b()
{
}
25.init block是什么意思?
答:init是一个登录块,它在主构造函数中执行并初始化。如果要在辅助构造函数中撤消,则它将在链式中的主要构造函数后开始工作。
26.如何比较Kotlin中的两根弦?
答:字符串处理包括任何应用开发的重要部分。受访者经常被问到如何在Kotlin面试问题期间处理这一点。您可以使用平等运算符'=='执行此操作,如以下示例所示。
Val A:String =“这是第一个字符串”
val b: String = "This is the second" + " String "
if(a == b)println(“字符串类似”)
else println(“他们不匹配!”)
27.描述Kotlin的循环?
答:循环是一种关键的编程构造,它允许我们按照程序的要求迭代。Kotlin提供了所有常用的循环,如for、while和do-while。在下一节中,我们将简要地描述for循环。
val sports = listOf(“板球”,“足球”,“篮球”)
For (sport in sports) {// For循环
println(“让我们玩体育美元!”)
}
上面的代码片段说明了在Kotlin中for循环的使用。它与Python和Ruby非常相似。
28.对象关键字的目的是什么?
答:Kotlin提供了一个额外的关键字对象除了标准面向对象的功能之外。与传统面向对象的范式相反,您可以定义类并根据需要创建其许多实例,但对象关键字允许您创建一个延迟实例。在您的Kotlin程序访问它时,编译器将创建此对象。以下程序提供了简单的插图。
funcalcrent (normalRent: Int, holidayRent: Int):单位{
val rates =对象{
var normal: Int = 30 * normalRent
var假期:int = 30 * holidayrent
}
Val total =费率。正常+ rates.holiday
print(“租金总额:$ $总”)
}
有趣的main () {
calcRent (10, 2)
}
29.解释Kotlin的基本数据类型?
答:
Kotlin数据类型定义了某些数据上可用的过程。编译器使用变量的数据类型为它们分配内存空间。就像许多流行的编程语言,Kotlin具有一些经常使用的数据类型。请查看以下部分,以简短概述各种Kotlin数据类型。
- 整数——与Python相反,Kotlin对整数的大小有限制;可用的整数类型有Long、Int、Short和Byte
- 浮点数——浮点值包含小数值;它们可以使用Float或Double声明
- characters—由Char修饰符表示;通常保存单个Unicode字符
- 它们是用String类型创建的,并且像Java一样是不可变的
- 布尔值——表示布尔值true和false
- 数组——Kotlin中的数组使用Array类表示
30.在Kotlin中字符串插值是如何工作的?
答:字符串插值使用多个占位符,首先计算它们的值,以显示最终的字符串输出。这个最终输出将包含占位符的相应值。下面的代码片段将演示Kotlin字符串插值的一个简单示例。
fun main(args: Array){//字符串插值
打印(“请在这里输入您的姓名:”)
val name:字符串?= readLine ()
打印(“你好,$名称!”)
}
在这里,Kotlin编译器首先接收用户输入,并将此值插入到占位符的位置美元的名字.代码片段的最后一行由编译器翻译,如下所示
新StringBuilder()。追加(“你好,”).append(名字).append(“!”).toString ()