kotlin与Java比较一

随着Kotlin越来越火,最近开始学习Kotlin,感觉Java和区别还是很大的,这里列举一下Kotlin和Java的一些区别;

1.打印日志

Java
System.out.print("hello world"); 
System.out.println("hello world");

kotlin
print("hello world")
println("hello world")

2.定义变量

可变变量 String name = "xxxx";
不可变变量 final String name = "aaaa";

kotlin
可变变量 var name= "xxxx"
不可变变量val name = "aaaaa"

3.null声明

Java
String name;
name = null;

kotlin
var name: String?
name = null

4.空判断

Java
if(text !=null){
  int length = text.length();
}

kotlin
text?.let{
val length = text.length
}
或者
val length = text?.length

5.字符串拼接

Java
String firstName = "apple";
Stirng lastName = "enginner";
String message = "My name is:"+firstName + lastName;

kotlin
val firstName= "apple"
val lastName="enginner"
val message = "My name is:$firstName $lastName"

6.三元表达式

Java
String text = x > 5 ? "x > 5" : "x <= 5";
kotlin
val text = if(x > 5)
" x > 5"
else
 "x <= 5"

7.多重表达式

Java
if(score >= 0 && score <= 300){}
Kotlin
if(score in 0..300){}

8.更灵活的case语句

Java
int score = 100;
String grade;
switch(score){
 case 1:
 ...
 case 100:
    grade="100";
    break;
 default:
   break;
}

kotlin
var score = 100;
var grade = when(score){
 9,10 -> "excellent"
 in 6..8 -> "Good"
4,5->"ok"
in 1..3->"fail"
else -> "fail"
}

9.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(item in collection){}
for((key,value) in map){}

10.集合操作

Java
final List<Integer> listOfNumber = Arrays.asList(1,2,3,4);
final Map<Integer,String> keyvalue = new HashMap<Integer,String>();
map.put(1,"Android");
map.put(2,"Ali");

kotlin
val listOfNumber = listOf(1,2,3,4)
val keyvalue = mapof(1 to "Android",
                                    2 to "Ali",
                                   3 to "Mindorks")

11.遍历

Java
for (String s: stringList) {
            System.out.println(s);
        }
 stringList.forEach(s -> System.out.println(s));

kotlin
fun A(stringList: List<String>) {
    stringList.forEach { s -> println(s) }
}

12.方法定义

Java
void doSomeThing(){}
void doSomeThing(int a,int b){}

kotlin
fun doSomeThing(){}
fun doSomeThing(a : I}nt,b : Int){

14.constructor构造器

Java
public class A{
private A(){}
public static int getScore(int value){
  return 2*value;
}
}

kotlin
class A private constructor(){
    companion object{
        fun getScore(int: Int):Int{
            return 2*int
        }
    }
}

13.Get Set构造器

Java
public class Teacher {
    private String name;
    private int age;

    public Teacher(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;
    }
}

kotlin

data class Student(val name:String,val  age : Int) 
fun main() {
    var stu = Student("XiaoMin",24)
    println(stu.name)
    println(stu.age)
}

15.操作符

Java
final int and = a&b;
final int or = a | b;
final int xor = a ^b;
final int right = a >>2;
final int left = a << 2;
final int unsingedRightShift = a >> 2;
kotlin
val and = a and b
val or = a or b
val xor = a xor b
val rightShift = a shr 2
val leftShift = a shl 2
val unsignedRightShift  = a ushr 2 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容