写点什么

Java 到 Kotlin 入门,这一篇就够啦,java 开发岗高频面试题全解析祖国的花朵

用户头像
极客good
关注
发布于: 刚刚
  • Kotlin


if (object is Car) {


var car = object // 聪明的转换


}


[](


)多重条件




  • Java


if (num >= 0 && num <= 300) { }


  • Kotlin


if (num in 0..300) { }


[](


)更灵活的 case 语句




【一线大厂Java面试题解析+核心总结学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
复制代码




  • Java


int score = // some score;


String grade;


switch (score) {


case 10:


case 9:


grade = "Excellent";


break;


case 8:


case 7:


case 6:


grade = "Good";


break;


case 5:


case 4:


grade = "OK";


break;


case 3:


case 2:


case 1:


grade = "Fail";


break;


default:


grade = "Fail";


}


  • Kotlin


var score = // some score


var grade = when (score) {


9, 10 -> "Excellent"


in 6..8 -> "Good"


4, 5 -> "OK"


in 1..3 -> "Fail"


else -> "Fail"


}


[](


)for 循环




  • Java


for (int i = 1; i <= 10 ; i++) { }


for (int i = 1; i < 10 ; i++) { }


for (int i = 10; i >= 0 ; i--) { }


for (int i = 1; i <= 10 ; i+=2) { }


for (int i = 10; i >= 0 ; i-=2) { }


for (String item : collection) { }


for (Map.Entry<String, String> entry: map.entrySet()) { }


  • Kotlin


for (i in 1..10) { }


for (i in 1 until 10) { }


for (i in 10 downTo 0) { }


for (i in 1..10 step 2) { }


for (i in 10 downTo 0 step 2) { }


for (item in collection) { }


for ((key, value) in map) { }


[](


)更方便的集合操作




  • Java


final List<Integer> 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<Integer> 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")


// 可变


val listOfNumber = mutableListOf(1, 2, 3, 4)


// 可变


val keyValue = mutableMapOf(1 to "Amit",


2 to "Ali",


3 to "Mindorks")


[](


)遍历




  • Java


// Java 7 and below


for (Car car : cars) {


System.out.println(car.speed);


}


// Java 8+


cars.forEach(car -> System.out.println(car.speed));


// Java 7 and below


for (Car car : cars) {


if (car.speed > 100) {


System.out.println(car.speed);


}


}


// Java 8+


cars.stream().filter(car -> car.speed > 100).forEach(car -> System.out.println(car.speed));


  • Kotlin


cars.forEach {


println(it.speed)


}


cars.filter { it.speed > 100 }


.forEach { println(it.speed)}


[](


)方法定义




  • Java


void doSomething() {


// logic here


}


void doSomething(int... numbers) {


// logic here


}


  • Kotlin


fun doSomething() {


// logic here


}


fun doSomething(vararg numbers: Int) {


// logic here


}


[](


)有返回值的方法




  • Java


int getScore() {


// logic here


return score;


}


  • Kotlin


fun getScore(): Int {


// logic here


return score


}


// as a single-expression function


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


}


// as a single-expression function


fun getScore(value: Int): Int = 2 * value


[](


)constructor 构造器




  • Java


public class Utils {


private Utils() {


// This utility class is not publicly instantiable


}


public static int getScore(int value) {


return 2 * value;


}


}


  • Kotlin


class Utils private constructor() {


companion object {


fun getScore(value: Int): Int {


return 2 * value


}


}


}


// another way


object Utils {


fun getScore(value: Int): Int {


return 2 * value


}


}


[](


)Get Set 构造器




  • Java


public class Developer {


private String name;


private int age;


public Developer(String name, int age) {


this.name = name;


this.age = age;


}


public String getName() {


return name;


}


public void setName(String name) {


this.name = name;


}


public int getAge() {


return age;


}


public void setAge(int age) {


this.age = age;


}


@Override


public boolean equals(Object o) {


if (this == o) return true;


if (o == null || getClass() != o.getClass()) return false;


Developer developer = (Developer) o;


if (age != developer.age) return false;


return name != null ? name.equals(developer.name) : developer.name == null;


}


@Override


public int hashCode() {


int result = name != null ? name.hashCode() : 0;


result = 31 * result + age;


return result;


}


@Override


public String toString() {


return "Developer{" +


"name='" + name + ''' +


", age=" + age +


'}';


}

用户头像

极客good

关注

还未添加个人签名 2021.03.18 加入

还未添加个人简介

评论

发布
暂无评论
Java到Kotlin入门,这一篇就够啦,java开发岗高频面试题全解析祖国的花朵