日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android 面试题(一)

發布時間:2023/12/18 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 面试题(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、Android中真實寬高,getWidth和getMeasuredWidth的區別:哪個計算的是真實的寬?

getWidth():得到的是View在父Layout中布局好后的寬度值,如果沒有父布局,那么默認的父布局就是整個屏幕。

getMeasuredWidth():得到的是最近一次調用measure()方法測量后得到的是View的寬度,它僅僅用在測量和Layout的計算中。所以此方法得到的是View的內容占據的實際寬度。

總結:

getWidth(): View在設定好布局后整個View的寬度。
getMeasuredWidth(): 對View上的內容進行測量后得到的View內容占據的寬度,前提是你必須在父布局的onLayout()方法或者此View的onDraw()方法里調用measure(0,0);否則你得到的結果和getWidth()得到的結果是一樣的。

?

2、堆區、棧區、方法區有什么區別?靜態變量存儲在哪個區?

堆區:

1.存儲的全部是對象,每個對象都包含一個與之對應的class的信息。(class的目的是得到操作指令)

2.jvm只有一個堆區(heap)被所有線程共享,堆中不存放基本類型和對象引用,只存放對象本身。

棧區:

1.每個線程包含一個棧區,棧中只保存基本數據類型的對象和自定義對象的引用(不是對象),對象都放在堆區中。

2.每個棧中的數據(原始類型和對象引用)都是私有的,其他棧不能訪問。

3.棧分為3個部分:基本類型變量區、執行環境上下文、操作指令區(存放操作指令)

方法區:

1.又叫靜態區,跟堆一樣,被所有的線程共享。方法區包含所有的class和static變量。

2.方法區中包含的都是在整個程序中永遠唯一的元素,如class,static變量。

?

靜態變量屬于類的屬性,存儲在方法區。方法區保存一個類的模板,堆存放類的實例。棧用來函數計算

?

?

Intent傳值的類型有哪些?

1) 8種基本數據類型及其數組
2)String(String實現了Serializable)/CharSequence實例類型的數據及其數組
3) 實現了Parcelable的對象及其數組( 操作較復雜, 但速度快)。android提供了一種新的類型:Parcel。本類被用作封裝數據的容器,封裝后的數據可以通過Intent或IPC傳遞。?除了基本類型以外,只有實現了Parcelable接口的類才能被放入Parcel中。

4)實現了Serializable的對象及其數組(操作簡單, 但速度慢)。Serializable:將 Java 對象序列化為二進制文件的 Java 序列化技術,是Java系列技術中一個較為重要的技術點,在大部分情況下,開發人員只需要了解被序列化的類需要實現 Serializable接口,使用ObjectInputStream 和 ObjectOutputStream 進行對象的讀寫。

5)File在Java里也是類,在Android里也實現了Serializable接口

?

java 內部類為什么不能用靜態方法?

非static的內部類,在外部類加載的時候,并不會加載它,所以它里面不能有靜態變量或者靜態方法。

  • static類型的屬性和方法,在類加載的時候就會存在于內存中。
  • 要使用某個類的static屬性或者方法,那么這個類必須要加載到jvm中。?
    基于以上兩點,可以看出,如果一個非static的內部類如果具有static的屬性或者方法,那么就會出現一種情況:內部類未加載,但是卻試圖在內存中創建static的屬性和方法,這當然是錯誤的。原因:類還不存在,但卻希望操作它的屬性和方法。
  • ?

    為什么內部類可以訪問外部類的成員?

    1 內部類對象的創建依賴于外部類對象;

    2 內部類對象持有指向外部類對象的引用。

    ?

    ListView的優化方案

    答:1、如果自定義適配器,那么在getView方法中要考慮方法傳進來的參數contentView是否為null,如果為null就創建contentView并返回,如果不為null則直接使用。在這個方法中盡可能少創建view。

    ? 2、給contentView設置tag(setTag()),傳入一個viewHolder對象,用于緩存要顯示的數據,可以達到圖像數據異步加載的效果。

    ? 3、如果listview需要顯示的item很多,就要考慮分頁加載。比如一共要顯示100條或者更多的時候,我們可以考慮先加載20條,等用戶拉到列表底部的時候再去加載接下來的20條。

    ?

    轉載于:https://www.cnblogs.com/zquan/p/9609446.html

    總結

    以上是生活随笔為你收集整理的android 面试题(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。