1十艾、基本數(shù)據(jù)類型
2、布爾類型 boolean
3腾节、字符型 Char
4忘嫉、字符串類型 String
5、數(shù)組型 Array
一案腺、基本數(shù)據(jù)類型
字節(jié) | 短整型 | 整型 | 長整型 | 浮點(diǎn)型 | 雙精度浮點(diǎn)型 |
---|---|---|---|---|---|
Byte | Short | Int | Long | Float | Double |
1庆冕、兩個(gè)值比較
關(guān)鍵字 == 和 ===
== 比較的是數(shù)值是否相等
=== 比較的是兩個(gè)數(shù)值在內(nèi)存中的地址是否相等
Demo1:
val a: Int = 100
val b: Int = a
val c: Int? = a
val d: Int? = a
println(a == b)
println(a === b)
println(a === c)
println(c === d)
打印結(jié)果:
Demo2:
val a: Int = 1000
val b: Int = a
val c: Int? = a
val d: Int? = a
println(a == b)
println(a === b)
println(a === c)
println(c === d)
打印結(jié)果:
ps:? 代表的意思是這個(gè)i可以被賦值為null, 既然可以是null,那就不能是原始類型劈榨,只能是對象访递,因此Kotlin會(huì)自動(dòng)的為其進(jìn)行裝箱操作。
Demo1原因解釋: a 的值<127的時(shí)候,是在 Integer(-128~127) 的范圍之內(nèi)的,沒有進(jìn)行裝箱操作,因?yàn)?java在編譯 Integer a = 100 ;時(shí)同辣,會(huì)翻譯成為Integer a = Integer.valueOf(100)拷姿。而java API中對Integer類型的valueOf的定義如下惭载,對于-128到127之間的數(shù),會(huì)進(jìn)行緩存响巢,Integer a = 100時(shí)描滔,會(huì)將100進(jìn)行緩存,下次再寫Integer j = 100時(shí)踪古,就會(huì)直接從緩存中取含长,就不會(huì)new了,所以當(dāng) c 和 d 灾炭,直接從緩存中去的100茎芋,所以為true
Demo2原因解釋:當(dāng)>127的時(shí)候,就進(jìn)行了裝箱操作, c 和 d 被new Integer()生成的變量指向堆中新建的對象,兩者在內(nèi)存中的地址不同蜈出。
推薦鏈接 : https://blog.csdn.net/why15732625998/article/details/79437930
2田弥、轉(zhuǎn)換
toByte() => 轉(zhuǎn)換為字節(jié)型
toShort() => 轉(zhuǎn)換為短整型
toInt() => 轉(zhuǎn)換為整型
toLong() => 轉(zhuǎn)換為長整型
toFloat() => 轉(zhuǎn)換為浮點(diǎn)型
toDouble() => 轉(zhuǎn)換為雙精度浮點(diǎn)型
toChar() => 轉(zhuǎn)換為字符型
toString() => 轉(zhuǎn)換為字符串型
Demo:
var a: Int = 97
println(a.toByte())
println(a.toShort())
println(a.toInt())
println(a.toLong())
println(a.toFloat())
println(a.toDouble())
println(a.toChar())
println(a.toString())
打印結(jié)果:
二、布爾類型 boolean
關(guān)鍵字:boolean铡原、 true 和 false
1偷厦、邏輯操作符
|| 或(或者)
&& 與(并且)
! 非(取反)
Demo:
var a: Boolean = false
var b: Boolean = true
var result: Boolean
if (a || b){
result = a || b
println("a || b => $result")
}
if (a && b){
result = a && b
println("a && b => $result")
}
result = !a
println("!a => $result")
result = !b
println("!b => $result")
結(jié)果圖:
三、字符型 Char
關(guān)鍵字:
Char為表示字符型燕刻,字符變量用單引號(hào) ‘ ’ 表示只泼。并且不能直接視為數(shù)字,不過可以顯式轉(zhuǎn)換為數(shù)字卵洗。
1请唱、轉(zhuǎn)換為其他類型
var var1 = char1.toByte()|toInt()|toString().....
2、轉(zhuǎn)換大小寫
toUpperCase() | toLowerCase() | toLowerCase()
Demo:
var char1: Char
char1 = 'b'
var var1 = char1.toByte()
var var2 = char1.toInt()
var var3 = char1.toString()
println("var1 => $var1")
println("var2 => $var2 ")
println(" var3 => $var3 ")
var charA: Char = 'a'
var charB: Char = 'B'
var charNum: Char = '1'
var result: Char
result = charA.toUpperCase()
println("result => $result")
result = charB.toLowerCase()
println("result => $result")
result = charNum.toLowerCase()
println("result => $result")
打印結(jié)果:
四过蹂、字符串類型 String
關(guān)鍵字:
String表示字符串類型十绑。其是不可變的
1、字符串面變量
1)包含轉(zhuǎn)義字符的字符串 轉(zhuǎn)義包括(\t酷勺、\n等),不包含轉(zhuǎn)義字符串的也同屬此類型
2)包含任意字符的字符串 由三重引號(hào)(""" .... """)表示
Demo:
var str1: String = "hello\tkotlin"
println(str1)
val str2 = """println(我是三重引號(hào)引用的字符串本橙,我可以包含任意字符) """
println(str2)
打印結(jié)果:
2、字符串模板 "$"
使用字符串模板的符號(hào)為$脆诉。在$符號(hào)后面加上變量名或大括號(hào)中的表達(dá)式
Demo:
val text1: String = "哈哈哈哈"
var text2: String = "$text1 你笑啥甚亭?"
var text3: String = "$text2 ${text1.length} 我我我就想笑!;魇ぁ?髡!"
println(text1)
println(text2)
println(text3)
打印結(jié)果:
五潜的、數(shù)組型 Array
關(guān)鍵字:Array<T>
創(chuàng)建數(shù)組的3個(gè)函數(shù)
arrayOf()
arrayOfNulls()
工廠函數(shù)(Array())
1骚揍、arrayOf()
創(chuàng)建一個(gè)數(shù)組,參數(shù)是一個(gè)可變參數(shù)的泛型對象
Demo:
var arrayOf = arrayOf(1, 2, 3, 4, 5,"abc",32.5f)
for (i in arrayOf) {
print("$i\t")
}
打印結(jié)果:
2啰挪、arrayOfNulls()
用于創(chuàng)建一個(gè)指定數(shù)據(jù)類型且可以為空元素的給定元素個(gè)數(shù)的數(shù)組
Demo:
var value = arrayOfNulls < String > (3)
value[0]="a"
value[1]="b"
value[2]="c"
for (s in value) {
print("$s\t")
}
打印結(jié)果:
3信不、Array()
1)使用一個(gè)工廠函數(shù)Array(),它使用數(shù)組大小和返回給定其索引的每個(gè)數(shù)組元素的初始值的函數(shù)亡呵。
2)Array() => 第一個(gè)參數(shù)表示數(shù)組元素的個(gè)數(shù)抽活,第二個(gè)參數(shù)則為使用其元素下標(biāo)組成的表達(dá)式
Demo:
var arr4 = Array(3,{index -> (index +1).toString() })
for (v in arr4){
print("$v\t")
}
打印結(jié)果: