階段總結

一: 騰訊:

1.給定一霍夫曼樹(9,7,5,2),求最小權值

2:設備使用率,進程爲優先級剝奪機制

3:穩定排序

4:hashmap的平均查找長度

5:pv信號量

二:EMC

1:一個排序好的整數數組,長度爲N,將前面K個元素和後面K個元素對調,編程求K的大小。

2:虛擬內存

虛擬內存是計算機系統內存管理的一種技術。它使得應用程序認爲它擁有連續的可用的內存(一個連續完整的地址空間),而實際上,它通常是被分隔成多個物理內存碎片,還有部分暫時存儲在外部磁盤存儲器上,在需要時進行數據交換。與沒有使用虛擬內存技術的系統相比,使用這種技術的系統使得大型程序的編寫變得更容易,對真正的物理內存(例如RAM)的使用也更有效率。

3:編程實現M個數組中N個連續數值相加最大值

4:list和vector對快速排序哪個效率更高

5:多態的原理和使用

6:fib的棧不夠用怎麼辦

三:

1:boolean flag= i<10,先計算i<10再賦值給flag

2:機器人處理硬幣,遇到正面向上拋,反面翻過來,最後的概率,反面1/3

3:hibernate的映射方式有哪些

  •     一對一單向關聯
  •     一對一雙向關聯
  •     一對多單向關聯
  •     多對一單向關聯
  •     一對多/多對一雙向關聯
  •     多對多單向關聯
  •     多對多雙向關聯

4:帶表頭的雙向鏈表的insert操作

5:single模式

6:線程start和run的區別

在啓動線程時候,有兩種方法可以使用

start()爲一半通用的啓動線程的方法,通過調用線程類Thread的start()方法來啓動線程,(此時線程並沒有立刻執行,只是爲就緒狀態)然後線程Thread類通過調用run()方法來實現線程的操作,而其中的run()方法中的內容實爲線程體,即爲該線程所要執行的內容。run()方法執行結束,該線程也就終止了,cpu在執行其他的線程

如果將線程看做一般的Java類的話,則run()方法相當於普通的方法調用,通過普通的java類實例.run()來啓動線程,即執行該方法體的內容。最終程序執行的只有主線程這一個。

7:jvm內存管理

java 把內存分四種: 
1、棧區(stack segment)— 由編譯器自動分配釋放,存放函數的參數值,局部變量的值等,具體方法執行結束之後,系統自動釋放內存資源 
2、堆區(heap segment) — 一般由程序員分配釋放,存放由new創建的對象和數組,jvm不定時查看這個對象,如果沒有引用指向這個對象就回收 
3、靜態區(data segment)— 存放全局變量,靜態變量 和字符串常量,不釋放 
4、代碼區(code segment)— 存放程序中方法的二進制代碼,而且是多個對象 共享一個代碼空間區域 

在方法(代碼塊)中定義一個變量時,java 就在棧中爲這個變量分配內存空間,當超過變量的作用域後,java 會自動釋放掉爲該變量所分配的內存空間;在堆中分配的內存由java 虛擬機的自動垃圾回收器來管理,堆的優勢是可以動態分配內存大小,生存期也不必事先告訴編譯器,因爲它是在運行時動態分配內存的。缺點就是要在運行時動態分配內存,存取速度較慢;棧的優勢是存取速度比堆要快,缺點是存在棧中的數據大小與生存期必須是確定的無靈活性。 

 

 

http://developer.51cto.com/art/201003/188753.htm

8:嵌套類和內部類

可以在另一個類內部定義一個類,這樣的類是(嵌套類)nested cIass ,也稱爲(嵌套類型)nested type 。嵌套類最常用於定義執行類。

嵌套類是獨立的類,基本上與它們的外圍類不相關,因此 外圍類和嵌套類的對象是互相獨立的。嵌套類型的對象不具備外圍類所定義的成員,同樣外圍類的成員也不具備嵌套類所定義的成員。嵌套類的名字在其外圍類的作用域中可見,但在其它類作用域或定義外圍類的作用域中不可見。嵌套類的名字將不會與另一作用域中聲明的名字衝突

嵌套類可以具有與非嵌套類相同種類的成員。像任何其他類一樣,嵌套類使用訪問標號控制對自已成員的訪問。成員可以聲明爲pubIic 、 private或 protected。外圍類對嵌套類的面員沒有特殊訪問權,並且嵌套類對其外圍類的面員也沒有特殊訪問權。

嵌套類定義了其外圍類中的一個類型成員,像任何其他面員一樣,外圍類決定對這個類型的訪問。在外圍類的pubIic部分定義的嵌套類定義了可在任何地方使用的類型,在外圍類的protected部分定義的嵌套類定義了只能由外圍類、友元或派生類訪問 的類型,在外圍爲的private部分定義的嵌套類定義了只能被外圍類或其友元訪問的類型。

內部類,計算機面向對象程序設計概念。向對象程序設計中,可以在一個類的內部定義另一個類,這種類稱爲嵌套類(nested classes),它有兩種類型,即靜態嵌套類和非靜態嵌套類。靜態嵌套類使用很少,最重要的是非靜態嵌套類,也即是被稱作爲內部類(inner)。內部類是JAVA語言的主要附加部分。內部類幾乎可以處於一個類內部任何位置,可以與實例變量處於同一級,或處於方法之內,甚至是一個表達式的一部分。

 

http://blog.cfan.com.cn/html/89/178889-282023.html

但是,內部類和嵌套類的區別在於:

1.         嵌套類是靜態的,而內部類不是,也就是說嵌套類的實例化不需要外部類的實例。但是內部類是需要這個實例的。

2.         嵌套類可以任意聲明靜態成員,內部類不允許聲明除了編譯時常量以外的任何靜態成員。這一限制也適用於靜態初始化函數。

3.         嵌套類都是命名的,匿名的類聲明不能聲明運行時靜態成員(不管聲明是不是靜態的)

 

9:面向對象的三大特徵:

封裝、繼承、多態 。

 

http://kidiaoer.iteye.com/blog/1010523

10:java內存泄露情況

java中的內存泄露的情況:長生命週期的對象持有短生命週期對象的引用就很可能發生內存泄露,儘管短生命週期對象已經不再需要,但是因爲長生命週期對象持有它的引用而導致不能被回收,這就是java中內存泄露的發生場景,通俗地說,就是程序員可能創建了一個對象,以後一直不再使用這個對象,這個對象卻一直被引用,即這個對象無用但是卻無法被垃圾回收器回收的,這就是java中可能出現內存泄露的情況,例如,緩存系統,我們加載了一個對象放在緩存中(例如放在一個全局map對象中),然後一直不再使用它,這個對象一直被緩存引用,但卻不再被使用。
檢查java中的內存泄露,一定要讓程序將各種分支情況都完整執行到程序結束,然後看某個對象是否被使用過,如果沒有,則才能判定這個對象屬於內存泄露。

如果一個外部類的實例對象的方法返回了一個內部類的實例對象,這個內部類對象被長期引用了,即使那個外部類實例對象不再被使用,但由於內部類持久外部類的實例對象,這個外部類對象將不會被垃圾回收,這也會造成內存泄露。 
http://www.ibm.com/developerworks/cn/java/l-JavaMemoryLeak/index.html     11:java的海量數據排序   http://www.cnblogs.com/foreverking/articles/2050084.html  12:java多線程編程  http://lavasoft.blog.51cto.com/62575/27069/  

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章