大搜车面试总结 (应届生实习生)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wangrui1605/article/details/81016623

大搜车的一次笔试面试(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]+" ");
		}
		
	}
}



















展开阅读全文

没有更多推荐了,返回首页