2024年Android最新Kotlin学习(2)语法,开发岗面试自我介绍
面试是一个不断学习、不断自我提升的过程,有机会还是出去面面,至少能想到查漏补缺效果,而且有些知识点,可能你自以为知道,但让你说,并不一定能说得很好。有些东西有压力才有动力,而学到的知识点,都是钱(因为技术人员大部分情况是根据你的能力来定级、来发薪水的),技多不压身。附上我的面试各大专题整理: 面试指南,满满的都是干货,希望对大家有帮助!网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅
【附】相关架构及资料


往期Android高级架构资料、源码、笔记、视频。高级UI、性能优化、架构师课程、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter全方面的Android进阶实践技术,群内还有技术大牛一起讨论交流解决问题。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
比如:

而把val->var,这个操作就不会报错。
变量命名规则同Java一样。所以我们平时都遵循驼峰命名法
============================================================================
| 类修饰符 | 说明 |
| — | — |
| final | 不能被继承 |
| open | 可以被继承 |
| abstract | 抽象类 |
| enum | 枚举类 |
| data | 数据类 |
| sealed | 密封类 |
| annotation | 注解类 |
| 成员修饰符 | 说明 |
| — | — |
| override | 重写函数 |
| open | 可被重写 |
| final | 不能被重写 |
| abstract | 抽象函数 |
| lateinit | 后期初始化 |
| 访问修饰符 | 说明 |
| — | — |
| public | 对外可访问 |
| private | 私有,仅当类可访问 |
| protected | 当前类以及继承该类的可访问 |
| internal | 整个模块内可访问 |
| 协变逆变修饰符 | 说明 |
| — | — |
| out | 消费者类型修饰符,out T等价于 ?extend T |
| in | 生产者类型修饰符 in T等价于 ? super T |
别的修饰符很少用到,so以后用到的时候再说吧。
=========================================================================
kotlin中的if…else…语句和Java中的略有一些差别。
下面举几个例子:
//一个比较大小的函数
fun max(a: Int, b: Int): Int {
val max = if (a > b) a else b
return max
}
//代码块形式
fun max(a: Int, b: Int): Int {
val max = if(a>b){
print(“max value is a”)
a
}else {
print(“max value is b”)
b
}
return max
}
第一个函数的返回有点像 Java重的 true?1:0三元表达式
但是kotlin没有,所以kotlin 用的是 if() … else …这样实现三元表达式
其他的if用法和Java无异
when表达式和Java中的 switch..case 是类似的。
因为kotlin是极简风格变成,所以它的when比switch写起来更加方便,下面一个例子:
fun caseWhen(obj: Any?) {
when (obj) {
0, 1, 2, 3 -> print(“是0123中的一个”)
“你好” -> print(“是你好”)
else -> print(“什么都不是”)
}
}
其中的 else 相当于 switch-case 中的 default
可以看出来 when语句不用写那么多case,而且可以用任意表达式作为分支条件
for循环可以对任何提供迭代器的对象进行遍历
//用in 遍历
for(item in collection){
…
}
//用索引遍历数组或者list 其中indices存储了数组array的下标
for(i in array.indices){
print(array[i])
}
indices存储了数组的下标。我们也可以用withIndex来遍历下标与对应的元素:
for((index,value) in array.withIndex){
println(“the element at $index is $value”)
}
另外,范围(Ranges)表达式也可以用于循环中:
for(i in 1…10){
println(i)
}
//简写代码为
(1…10).forEach { println(it)}
while 和 do…while循环语句的使用方式与C、Java语言基本一致,所以跳过
和Java中的continue和break基本一致,所以跳过
和Java一样,有返回值的函数要显示的用 return 去返回一个值。
除此之外,Kotlin还可以用直接使用 “=”来返回一个函数的值,这样的函数成为函数字面量:
fun sum(a: Int, b: Int) = a + b
fun max(a: Int, b: Int) = if (a > b) a else b
//也可以声明一个匿名函数
val sum = fun(a: Int, b: Int) = a + b
sum(1,2)
上面的最后一个例子是直接使用表达式来实现函数。需要注意的是,后面的函数体语句中有没有大括号代表的意义完全不同。
比如这样的Lambda表达式:
//这样子声明,sumf就是一个高阶函数
val sumf = fun(a: Int, b: Int) = { a + b }
总结:
面试是一个不断学习、不断自我提升的过程,有机会还是出去面面,至少能想到查漏补缺效果,而且有些知识点,可能你自以为知道,但让你说,并不一定能说得很好。
有些东西有压力才有动力,而学到的知识点,都是钱(因为技术人员大部分情况是根据你的能力来定级、来发薪水的),技多不压身。
附上我的面试各大专题整理: 面试指南,满满的都是干货,希望对大家有帮助!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
力,而学到的知识点,都是钱(因为技术人员大部分情况是根据你的能力来定级、来发薪水的),技多不压身。
附上我的面试各大专题整理: 面试指南,满满的都是干货,希望对大家有帮助!
[外链图片转存中…(img-lU6F7GIo-1714971369215)]
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
更多推荐

所有评论(0)