面试总结

来源:互联网 发布:各行业薪水 知乎 编辑:程序博客网 时间:2024/06/06 11:38

百度一面:

1.一个200多G的文件,每行都是存的一个单词,统计每个单词所出现的次数

多线程,加锁。锁的是那些东西


2. 无序数组中第K大的数

利用快排的partition


3.学习方法:

首先是找准 一个喜欢的业务,比如搜索;从业务的需求角度去学习所用到的框架技术,如spark,hadoop,分布式,数据存储、大数据;最后是实现这些技术的底层基础,如你擅长的java语言,网络,数据库,操作系统。。公司希望要的是全栈工程师,语言只是一个工具,不要过分的追求语言。


华为一面:

1.新技术restful


2.设计模式


讯飞:

一面: 

1.java.util包中容器类有哪些;

2.  从内存模型的角度分析  volatitle关键字

3.多线程的了解

4.TCP3次握手,断开需要几次

5.linux基本命令,查看进程的命令ps

6.git的几种状态

7.ssh框架 与MVC 结构

8.Spring中2个核心概念

9.熟悉的数据库,答MySQL,MySQL数据库引擎有哪些,分别有什么特点


宜信:

一面:

1.coding 从连续的K线图中找到股票买卖的最大值,要求先买后卖;思路:一次遍历,在每个点都要找出,从开始点到当前点的最小值,然后给出当前点的y值减去最小值,并判断时候最大。最后得到的即为最大值。

2. coding很大的一个数组,在外存中放置,无法一次加载到内存中。找出最大的K个数。   思路是分治和合并。每次load进内存一部分数据,用快排的变形找出这部分数据的TOP K的数, 将每次得到的TOP K的数组成一个新数组,重复上述过程。知道得到TOP K的数。

内存置换的方法:

用java中的一种容器实现LRU算法: LinkedHashMap

CourrentHashMap为什么线程安全

二面:

coding 1.一个二叉树,输入二叉树中任意的两个节点,求出他们的第一个公共父节点。   深度优先遍历;

coding 2.递增的数组中,找出两数之和为K的所有节点对。

多线程下的线程创建的方法有哪些,锁有哪些,CourrentHashMap怎么加锁的

三面

可重入锁,

实现重载时,若参数为泛型,能否重载成功

java并发下的源代码

coding 1. string【】数组中,找出字符串的组数。  所谓同一组,即长度一样且包含的字母也一样。


工商银行软件开发中心

1.用过j2ee里面的什么? JSP,Servlet

2.spring的注解怎么实现?@符号实现