1. 程式人生 > >百度面試 一面

百度面試 一面

百度一面:


ISO結構
1.物理層
2.資料鏈路層
3.網路層
4.傳輸層
5.會話層
6.表示層
7.應用層


給10億個數,找出其中的前10000個最大的數


java:
equls
hashcode 


hashcode方法返回該物件的雜湊碼值。支援該方法是為雜湊表提供一些優點,例如,java.util.Hashtable 提供的雜湊表。 


以上這段官方文件的定義,我們可以抽出成以下幾個關鍵點:
1、hashCode的存在主要是用於查詢的快捷性,如Hashtable,HashMap等,hashCode是用來在雜湊儲存結構中確定物件的儲存地址的;
2、如果兩個物件相同,就是適用於equals(java.lang.Object) 方法,那麼這兩個物件的hashCode一定要相同;
3、如果物件的equals方法被重寫,那麼物件的hashCode也儘量重寫,並且產生hashCode使用的物件,一定要和equals方法中使用的一致,否則就會違反上面提到的第2點;
4、兩個物件的hashCode相同,並不一定表示兩個物件就相同,也就是不一定適用於equals(java.lang.Object) 方法,只能夠說明這兩個物件在雜湊儲存結構中,如Hashtable,他們“存放在同一個籃子裡”。






linux 埠號
netstat命令


C++空類預設函式 
一個空的class在C++編譯器處理過後就不再為空,編譯器會自動地為我們宣告一些member function,一般編譯過去就相當於
class Empty
{
public:
Empty(); // 預設建構函式
Empty( const Empty& ); // 拷貝建構函式
~Empty(); // 解構函式
Empty& operator=( const Empty& ); // 賦值運算子
Empty* operator&(); // 取址運算子
const Empty* operator&() const; // 取址運算子 const
};
一般的書上好像都是前面四種:預設建構函式,拷貝建構函式,預設賦值函式以及解構函式,後面兩種其實屬於,但要需要注意的是,只有當你需要用到這些函式的時候,編譯器才會去定義它們。
如果你只是宣告一個空類,不做任何事情的話,編譯器會自動為你生成一個預設建構函式、一個拷貝預設建構函式、一個預設拷貝賦值操作符和一個預設解構函式。這些函式只有在第一次被呼叫時,才會別編譯器建立。所有這些函式都是inline和public的。








C++類預設的型別
C 結構體與C++ 類的對比
在 C++ 中,結構體 是由關鍵詞 struct 定義的一種資料型別。他的成員和基類預設為公有的(public)。
由關鍵詞 class 義的成員和基類預設為私有的(private)。這是C++中結構體和類僅有的區別。


const int a; int const a; 這兩個寫法是等同的,表示a是一個int常量。


const int *a;
int const *a;
前兩個意思是指標指向的物件是const(指標本身的值可變,不是const)
int *const a; 是指標本身不可變const(但他指向的物件可變,不是const)


const int *a; 表示a是一個指標,可以任意指向int常量或者int變數,它總是把它所指向的目標當作一個int常量。也可以寫成int const* a;含義相同。
int * const a; 表示a是一個指標常量,初始化的時候必須固定指向一個int變數,之後就不能再指向別的地方了。
int const * a const;這個寫法沒有,倒是可以寫成int const * const a;表示a是一個指標常量,初始化的時候必須固定指向一個int常量或者int變數,之後就不能再指向別的地方了,它總是把它所指向的目標當作一個int常量。也可以寫成const int* const a;含義相同。




B樹 B+樹




資料庫查詢的型別