android開發那些事兒(一)

2021-07-02 13:02:34 字數 1548 閱讀 9483

android開發時用到switch語法,switch判斷string型別,這個特性jdk1.7以上才有(我當時裝的是1.8),竟然報錯,費解。。。

直接按照提示改完,編譯器說要求android19(我當時用的是android14),然後我用了萬能的android tool的fix,然後又回到了最初的問題。繞了一圈又回到原點。

總的得出android編譯版本與jdk版本有一點關聯,必須同時更新。

非基本資料型別

1、呼叫靜態方法class.forname(string classname),引數為完整的類名,包括包的名字

class.forname("p1.person");  //p1是包名,person是類名,

一定要記得包名寫完整

class.forname("oracle.jdbc.driver.oracledriver");

2、呼叫object類中定義的getclass()方法

person p = new person();

class c1 = p.getclass();

class c2 = "helloworld".getclass();

3、使用.class表示式

class c1 = string.class;

class c2 = p1.person.class; //這裡可以省略包名

針對基本資料型別及void

1、使用.class表示式(class只是約定的標記,不是成員屬性)

class c1 = int.class;

class c2 = double.class;

class c3 = void.class;

2、呼叫相應封裝類的.type屬性

class c1 = integer.type;  //返回int型別

class c2 = double.type;

class c3 = void.type;

下面來詳細描述switch與ifelse的區別。

switch...case與if...else的根本區別在於,switch...case會生成乙個跳轉表來指示實際的case分支的位址,而這個跳轉表的索引號與switch變數的值是相等的。從而,switch...case不用像if...else那樣遍歷條件分支直到命中條件,而只需訪問對應索引號的表項從而到達定位分支的目的。

1.當分支較多時,當時用switch的效率是很高的。因為switch是隨機訪問的,就是確定了選擇值之後直接跳轉到那個特定的分支,但是if。。else是遍歷所以得可能值,知道找到符合條件的分支。如此看來,switch的效率確實比if else要高的多。

2.switch...case占用較多的**空間,因為它要生成跳表,特別是當case常量分布範圍很大但實際有效值又比較少的情況,switch...case的空間利用率將變得很低。

3.switch...case只能處理case為常量的情況,對非常量的情況是無能為力的。例如 if (a > 1 && a < 100),是無法使用switch...case來處理的。所以,switch只能是在常量選擇分支時比ifelse效率高,但是ifelse能應用於更多的場合,ifelse比較靈活。

Android 手機螢幕那些事兒

最近公司的 android 裝置準備進行硬體公升級,談及螢幕時,大家對於相關的一些知識點具有不同的認知。因此我蒐集了網際網路上關於 android 手機螢幕的相關資料,總結 記錄 分享於此。名稱範圍 對應比例 mdpi 120dpi 160dpi 1hdpi 160dpi 240dpi 1.5xhd...

SQL那些事兒(一)

比如這樣 insert into student id,code,name,sql values 1 001 張三 insert into student id values 1 where name 李四 這樣肯定會報錯,因為 會影響外面sql語句 這時我們要修改為這樣 insert into s...

DLL那些事兒(一)

我們將討論 我們不討論 什麼是動態庫 大多數動態庫的副檔名都是 dll hello.cpp extern c char const cdecl getgreeting 使用vs構建工具進行編譯和鏈結,我們使用 c選項告訴編譯器只進行編譯 使用 dll選項告訴鏈結器不要構建exe 預設選項 而是構建乙...