一: 騰訊:
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內存泄露情況