百度一面:
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的注解怎么实现?@符号实现