val mName = “kotlin string name”
java代码:
String mName;
mName = null;
kotlin代码:
var mName : String?
mName = null
java代码:
String text = “First Line\n” +
“Second Line\n” +
“Third Line”;
kotlin代码:
val text = “”"
|First Line
|Second Line
|Third Line
“”".trimMargin()
java代码:
String text = x > 5 ? “x > 5” : “x <= 5”;
kotlin代码:
val text = if (x > 5)
“x > 5”
else “x <= 5”
java代码:
if (score >= 0 && score <= 300) { }
kotlin代码:
if (score in 0…300) { }
java代码:
String strA = “a”;
String strB = “b”;
Log.e(“TAG”, “print:” + strA + strB);
kotlin代码:
val strA = “a”
val strB = “b”
Log.e(“TAG”, “print: s t r A strA strAstrB”)
java代码:
final List listOfNumber = Arrays.asList(1, 2, 3, 4);
final Map<Integer, String> keyValue = new HashMap<Integer, String>();
map.put(1, “Amit”);
map.put(2, “Ali”);
map.put(3, “Mindorks”);
// Java 9
final List listOfNumber = List.of(1, 2, 3, 4);
final Map<Integer, String> keyValue = Map.of(1, “Amit”,
2, “Ali”,
3, “Mindorks”);
kotlin代码:
val listOfNumber = listOf(1, 2, 3, 4)
val keyValue = mapOf(1 to “Amit”,
2 to “Ali”,
3 to “Mindorks”)
java代码:
void doSomething() {
// todo here
}
void doSomething(int… numbers) {
// todo here
}
kotlin代码:
fun doSomething() {
// logic here
}
fun doSomething(vararg numbers: Int) {
// logic here
}
java代码:
if (object instanceof Car) {
Car car = (Car) object;
}
kotlin代码:
if (object is Car) {
var car = object // 智能转换
}
java代码:
btnLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
kotlin代码:
btn_login.setOnClickListener(View.OnClickListener { })
java代码:
if(a != null && a.b != null && a.b.c != null) {
String user = a.b.c.d;
}
kotlin代码:
val user = a?.b?.c?.d
java代码:
if (str != null) {
int length = str.length();
}
kotlin代码:
str?.let {
val length = str.length
}
// 更简单的写法
val length = str?.length
// 为null赋予默认值
val length = str?.length?:0
java代码:
int getScore() {
// logic here
return score;
}
kotlin代码:
fun getScore(): Int {
// logic here
return score
}
// 单表达式函数
fun getScore(): Int = score
java代码:
int getScore(int value) {
// logic here
return 2 * value;
}
kotlin代码:
fun getScore(value: Int): Int {
// logic here
return 2 * value
}
// 单表达式函数
fun getScore(value: Int): Int = 2 * value
java代码:
public double cube(double x) {
return x * x * x;
}
kotlin代码:
fun cube(x: Double) : Double = x * x * x
java代码:
public int sum(int… numbers) { }
kotlin代码:
fun sum(vararg x: Int) { }
java代码:
public class MyClass {
public static void main(String[] args){
}
}
kotlin代码:
fun main(args: Array) {
}
java代码:
public static void main(String[]args){
openFile(“file.txt”, true);
}
public static File openFile(String filename, boolean readOnly) { }
kotlin代码:
fun main(args: Array) {
openFile(“file.txt”, readOnly = true)
}
fun openFile(filename: String, readOnly: Boolean) : File { }
java代码:
public static void main(String[]args){
createFile(“file.txt”);
createFile(“file.txt”, true);
createFile(“file.txt”, true, false);
createExecutableFile(“file.txt”);
}
public static File createFile(String filename) { }
public static File createFile(String filename, boolean appendDate) { }
public static File createFile(String filename, boolean appendDate,
boolean executable) { }
public static File createExecutableFile(String filename) { }
kotlin代码:
fun main(args: Array) {
createFile(“file.txt”)
createFile(“file.txt”, true)
createFile(“file.txt”, appendDate = true)
createFile(“file.txt”, true, false)
createFile(“file.txt”, appendDate = true, executable = true)
createFile(“file.txt”, executable = true)
}
fun createFile(filename: String, appendDate: Boolean = false,
executable: Boolean = false): File { }
java代码:
public void init() {
List moduleInferred = createList(“net”);
}
public List createList(T item) { }
kotlin代码:
fun init() {
val module = createList(“net”)
val moduleInferred = createList(“net”)
}
fun createList(item: T): List { }
==============================================================================
java代码:
public class User {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
kotlin代码:
class User {
var name : String? = null
}
属性访问对比
java代码:
user.setName(“Java”);
String name = user.getName();
kotlin代码:
user.name = “Kotlin”
String name = user.name
java代码:
RequestBean requestBean = new RequestBean();
requestBean.method = AppService.METHOD_CASHIER;
requestBean.cartId = mCartId;
requestBean.merchantOrderInfo = “1234567890”;
requestBean.merchantOrderId = “1234567890”;
最后
考虑到文章的篇幅问题,我把这些问题和答案以及我多年面试所遇到的问题和一些面试资料做成了PDF文档
喜欢的朋友可以关注、转发、点赞 感谢!
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!
String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
kotlin代码:
class User {
var name : String? = null
}
属性访问对比
java代码:
user.setName(“Java”);
String name = user.getName();
kotlin代码:
user.name = “Kotlin”
String name = user.name
java代码:
RequestBean requestBean = new RequestBean();
requestBean.method = AppService.METHOD_CASHIER;
requestBean.cartId = mCartId;
requestBean.merchantOrderInfo = “1234567890”;
requestBean.merchantOrderId = “1234567890”;
最后
考虑到文章的篇幅问题,我把这些问题和答案以及我多年面试所遇到的问题和一些面试资料做成了PDF文档
[外链图片转存中…(img-Z6EOV6ra-1715846149156)]
[外链图片转存中…(img-fr4ICzdK-1715846149158)]
喜欢的朋友可以关注、转发、点赞 感谢!
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!