Kotlin与java语法对比笔记(一)

本文内容是我在学习kotlin语法的过程中学习和总结的一点小知识,很入门,初级水平,大佬请忽略。

如有错误敬请指正,不胜感激。

1、基本数据类型

     java

  • java:byte,short,int,long,float,double,char,boolean(多啰嗦一句String真的不是基本数据类型,末次面试时遇到小哥回答基本数据类型,第一个说的就是String,再三提示都肯定的回答String是)

    Kotlin

  • Byte,Short,Int,Long,Float,Double,Char,Boolean
  • java定义变量时是 类型在前 变量名在后 例如 int i;而Kotlin正好相反并且使用:标示 例如 var  i:Int
  • 在java中定义基本数据变量时可以不赋初值 例如 int i;但是在kotlin是必须赋初值的 var i:Int=0
  • 在java中可以将声明的int类型赋值给Long类型(java会自动拆箱装箱),但是Kotlin并不可以,必须进行类型转换

     java

int i;
long l=i;

    Kotlin

 var i: Int=0
 var l:Long= i.toLong()

2、常量与变量

    java

  • 普通变量int i=0 ;
  • 不可变量 一旦赋值则不可改变 final int i=0;

    Kotlin

  • 普通变量var i:Int=0
  • 不可变量 一旦赋值则不可改变 val i:Int=0

3、声明静态常量和方法

     java

  • static final int SEX=0;
  • static void add(){}

    Kotlin

  •   companion object{

        internal val SEX=0

        fun add(){}

        }

4、可见性修饰符

     java

  • public包内包外任何类都可以访问
  • protected 包内的类都可以访问,包外继承此类的子类可以访问
  • 默认 包内的类都可以访问,包外的类不可以访问
  • private 只有此类内可以访问,包内包外任何类都不可以访问

    Kotlin

  • public 默认值,包内包外任何类都可以访问
  • protected 和java有不同,同一包内也不能访问,但在子类中可以调用
  • internal 包内包外可以访问
  • private 只有此类可以访问

5、定义函数及函数返回值

     java

  • void add(){} 表示无返回值
  • int add(){return 1} int 表示返回值的类型

    Kotlin

  • Kotlin 中使用 fun声明方法
  • fun add(){}或者 fun add():Unit{}表示无返回值
  • fun add():Int{ return 1} 或者 fun add()=1 表示返回值类型为Int

6、常用字符串拼接

      java

  • int i=1;String s="这是一个字符串"+i;
  • int i=1;StringBuilder b=new StringBulider("这是一个字符串"); b.append(i);
  • int i=1;StringBuffer b=new StringBuffer("这是一个字符串");b.append(i);

    Kotlin

  • var i:Int=0 var s:String=“这是一个字符串” 
  •  var i:Int=0 var s:String=“这是一个字符串”  s.plus(i)
  • var i:Int=0 var s:String=“这是一个字符串$i”

7、类型判断、强制类型转换

      java

  • 类型判断关键字 instanceof 关键字 例如if(obj instanceof  int ) int i =(int)obj;

     Kotlin

  • 类型判断关键字 is 强制类型转换关键字 as 例如 if(any is Int)  any as Int   (注:kotlin 中在使用is判断后是 可以直接使用any的,可以不使用as 进行强制转换后在使用)

8、实例化

     java

  • A a=new A();

    Kotlin

  • var a:A=A()

Kotlin与java语法对比笔记(二):https://blog.csdn.net/LPL0129/article/details/86653940

猜你喜欢

转载自blog.csdn.net/LPL0129/article/details/86646378