大搜車面試總結 (應屆生實習生)

大搜車的一次筆試面試(2018/6)


參加筆試面試的流程

這次去參加的是應屆生的面試,進門首先是掃描二維碼,確認自己的身份信息,這個很強大的微信就會提示你和誰聯繫的幾點來參加筆試面試,筆試完了後把題目交給前臺接待的人,她會把題目再轉交到技術人員,然後很快就會出來結果,如果筆試通過的話,很快就會有人來進行面試,如果是筆試沒有通過的話,一樣也是很快會有人來通知你,(不好意思。。。。。。。。。。。您的筆試。。。。。。。沒有通過


主要考察的內容

選擇題

鏈表的實現ArrayList 和LinkList 之間的區別,java的異常,集合的實現hashmap treemap等,springmvc的註解有哪些。

簡答題 

1 froward和redirect的區別:

forward(轉發)

是服務器請求資源,服務器直接訪問目標地址的URL,把那個URL的響應內容讀取過來,然後把這些內容再發給瀏覽器.瀏覽器根本不知道服務器發送的內容從哪裏來的,因爲這個跳轉過程實在服務器實現的,並不是在客戶端實現的所以客戶端並不知道這個跳轉動作,所以它的地址欄還是原來的地址.

redirect(重定向)

是服務端根據邏輯,發送一個狀態碼,告訴瀏覽器重新去請求那個地址.所以地址欄顯示的是新的URL.

轉發是服務器行爲,重定向是客戶端行爲。

區別

1. 從地址欄顯示來說
forward是服務器請求資源,服務器直接訪問目標地址的URL,把那個URL的響應內容讀取過來,然後把這些內容再發給瀏覽器.瀏覽器根本不知道服務器發送的內容從哪裏來的,所以它的地址欄還是原來的地址.

redirect是服務端根據邏輯,發送一個狀態碼,告訴瀏覽器重新去請求那個地址.所以地址欄顯示的是新的URL.

2. 從數據共享來說
forward:轉發頁面和轉發到的頁面可以共享request裏面的數據.
redirect:不能共享數據.

3. 從運用地方來說
forward:一般用於用戶登陸的時候,根據角色轉發到相應的模塊.
redirect:一般用於用戶註銷登陸時返回主頁面和跳轉到其它的網站等

4. 從效率來說
forward:高.
redirect:低.

2 客戶端如何和服務器保持連接

在HTTP的WEB應用中, 應用客戶端和服務器之間的狀態是通過Session來維持的, 而Session的本質就是Cookie, 簡單的講,當瀏覽器向服務器發送Http請求的時候, HTTP服務器會產生一個SessionID,這個SessionID就唯一的標識了一個客戶端到服務器的請求會話過程。

3 寫一個電話號碼的正則表達式


編程題

1 統計一下一串給定的字符串中出現頻率最先出現的最高的字符,aaabbbccccdffff 這隔得話輸出的就是c。

package com.bigselectcar;

import java.util.HashMap;
import java.util.Map;

public class statistics {
	
	public static void main(String[] args) {
		charCount("asaaaaaasdssddddvdvffdfdds");
	}
	public static String charCount(String str){
		char[] chs = str.toCharArray();
		
		Map<Character,Integer> tm  = new HashMap<Character,Integer>();
		
		int max=0;
		char maxchar=0;
		for(int x=0; x<chs.length; x++){
			Integer value = tm.get(chs[x]); //通過key 獲取value的值get 方法這裏的key是Character
			if(value==null)
			{
				tm.put(chs[x], 1);
			}else{
				value  = value +1;
				tm.put(chs[x],value);
				
				if(max<value){
					max = value;
					maxchar = chs[x];
				}
			}
			
		}
		System.out.println(max);
		System.out.println(maxchar);
		return null;
	}
}
 

2 給定一個很大的數組加入裏面有10000個數,輸出前n個最小的數字,考慮效率的情況下。

package com.bigselectcar;
/**
 * 選擇排序
 * */
public class SelectSort {
	public static void exch(int a[],int i,int j){
			int t = a[i];
			a[i] = a[j];
			a[j] = t;
	}
	public static void sort(int [] a) {
		int N = a.length;
		for(int i=0; i<2; i++){
			int min = i;
			
			for(int j=i+1; j< N; j++){
				if(a[j]<=a[min])
					min=j;
			}
				exch(a,i,min);
		}	
	}
	
	public static void main(String[] args) {
		int a [] = {2,3,4,1,3,34,2,32,3,23};
		for(int i=0;i<a.length;i++){
			System.out.print(a[i]+" ");
		}
		sort(a);
		System.out.println(" ");
		for(int i=0;i<a.length;i++){
			System.out.print(a[i]+" ");
		}
		
	}
}



















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