亚洲免费人人妻人人,cao78在线视频,福建一级毛片,91精品视频免费观看,高清另类图片操逼,日本特黄特色大片免费看,超碰欧美人人澡曰曰澡夜夜泛

Android工程師面試題

時(shí)間:2024-10-24 02:16:23 學(xué)人智庫 我要投稿
  • 相關(guān)推薦

Android工程師面試題

  校招的日子結(jié)束了,結(jié)果也算圓滿。忙碌了一陣子,現(xiàn)在終于可以安安靜靜的做做項(xiàng)目看看書寫寫論文了。下面對這段時(shí)間面試遇到的問題并結(jié)合網(wǎng)上各位的大神秒下的面試題做個(gè)總結(jié),小編會(huì)持續(xù)更新,希望能在面試中助各位一臂之力!

Android工程師面試題

  Java基礎(chǔ):

  1、內(nèi)存泄露的原因:

  資源對象沒關(guān)閉。

  如Cursor、File等資源。他們會(huì)在finalize中關(guān)閉,但這樣效率太低。容易造成內(nèi)存泄露。

  SQLiteCursor,當(dāng)數(shù)據(jù)量大的時(shí)候容易泄露

  使用Adapter時(shí),沒有使用系統(tǒng)緩存的converView。

  即時(shí)調(diào)用recycle()釋放不再使用的Bitmap。

  適當(dāng)降低Bitmap的采樣率,如:

  3

  BitmapFactory.Options options = newBitmapFactory.Options();

  options.inSampleSize = 2;//圖片寬高都為原來的二分之一,即圖片為原來的四分之一

  Bitmap bitmap =BitmapFactory.decodeStream(cr.openInputStream(uri), null, options); preview.setImageBitmap(bitmap);

  使用application的context來替代activity相關(guān)的context。

  盡量避免activity的context在自己的范圍外被使用,這樣會(huì)導(dǎo)致activity無法釋放。

  注冊沒取消造成內(nèi)存泄露

  如:廣播

  集合中的對象沒清理造成的內(nèi)存泄露我們通常把一些對象的引用加入到了集合中,當(dāng)我們不需要該對象時(shí),并沒有把它的引用從集合中清理掉,這樣這個(gè)集合就會(huì)越來越大。如果這個(gè)集合是static的話,那情況就更嚴(yán)重了。

  Handler應(yīng)該申明為靜態(tài)對象, 并在其內(nèi)部類中保存一個(gè)對外部類的弱引用。如下:

  復(fù)制代碼

  1

  2

  3

  4

  5

  6

  7

  8

  9

  10

  11

  12

  13

  14

  15

  16

  17

  static class MyHandler extends Handler

  {

  WeakReference mActivityReference;

  MyHandler(Activity activity)

  {

  mActivityReference= new WeakReference(activity);

  }

  @Override

  public void handleMessage(Message msg)

  {

  final Activity activity = mActivityReference.get();

  if (activity != null)

  {

  mImageView.setImageBitmap(mBitmap);

  }

  }

  }

  2、ArrayList和LinkedList的區(qū)別

  ArrayList初試大小為10,大小不夠會(huì)調(diào)用grow擴(kuò)容:length = length + (length >> 1)

  LinkedList中Node first,last。分別指向頭尾

  ArrayList和LinkedList在性能上各 有優(yōu)缺點(diǎn),都有各自所適用的地方,總的說來可以描述如下:

  對ArrayList和LinkedList而言,在列表末尾增加一個(gè)元素所花的開銷都是固定的。對

  ArrayList而言,主要是在內(nèi)部數(shù)組中增加一項(xiàng),指向所添加的元素,偶爾可能會(huì)導(dǎo)致對數(shù)組重新進(jìn)行分配;而對LinkedList而言,這個(gè)開銷是

  統(tǒng)一的,分配一個(gè)內(nèi)部Entry對象。

  在ArrayList的 中間插入或刪除一個(gè)元素意味著這個(gè)列表中剩余的元素都會(huì)被移動(dòng);而在LinkedList的中間插入或刪除一個(gè)元素的開銷是固定的。

  LinkedList不 支持高效的隨機(jī)元素訪問。

  ArrayList的空 間浪費(fèi)主要體現(xiàn)在在list列表的結(jié)尾預(yù)留一定的容量空間,而LinkedList的空間花費(fèi)則體現(xiàn)在它的每一個(gè)元素都需要消耗相當(dāng)?shù)目臻g

  可以這樣說:當(dāng)操作是在一列

  數(shù)據(jù)的后面添加數(shù)據(jù)而不是在前面或中間,并且需要隨機(jī)地訪問其中的元素時(shí),使用ArrayList會(huì)提供比較好的性能;當(dāng)你的操作是在一列數(shù)據(jù)的前面或中

  間添加或刪除數(shù)據(jù),并且按照順序訪問其中的元素時(shí),就應(yīng)該使用LinkedList了。

  3、hashmap和hashtable的不同

  繼承不同。

  復(fù)制代碼

  1

  2

  public class Hashtable extends Dictionary implements Map

  public class HashMap extends AbstractMap implements Map

  Hashtable 中的方法是同步的,而HashMap中的方法在缺省情況下是非同步的。在多線程并發(fā)的環(huán)境下,可以直接使用Hashtable,但是要使用HashMap的話就要自己增加同步處理了。

【Android工程師面試題】相關(guān)文章:

投行面試題07-24

軟件測試面試題01-17

中層副職競聘面試題09-05

來看看谷歌的面試題08-17

濟(jì)南稼軒中學(xué)小升初面試題07-21

壓力危機(jī)類面試題目突破技巧11-09

今年最強(qiáng)的面試題和最牛的答卷09-20

考察個(gè)人價(jià)值觀的另類面試題02-21

人力資源行業(yè)常見面試題匯總02-03

面試題:給我們一個(gè)錄取你的理由?11-16