2017阿里,百度,京东java面试+笔试大合集java
一、阿里linux
面试(一二面合集)面试
一、介绍一下你本身。算法
二、介绍一下你认为作的最好的一个项目。数据库
三、请用五分钟的时间把你作的项目的流程图画一下。编程
四、项目中你遇到的难点是什么?怎么解决的?设计模式
五、项目中你认为哪一个技术是你最拿手的?数组
六、介绍一下HTTP协议缓存
七、如何把一个大的日志文件哈希到不一样的哈希表中,这些哈希表的存储格式是什么?安全
八、linux网络编程,画一个c/s通讯的流程
九、多线程了解多少,作过的项目中有没有用到过?
十、描述一下动态规划的思想
十一、快排。
十二、内存分配方式有哪几种?代码段放在哪一个内存区?static int a[1024][1024][1024]放在哪一个区?会不会有异常?
1三、如何表示图?
1四、如何验证图的连通性?
1五、对互联网的业务和技术是否关注?
笔试
第一道:
对于给定的整数集合S,求出最大的d,使得a+b+c=d。a,b,c,d互不相同,且都属于S。集合的元素个数小于等于2000个,元素的取值范围在[ ],假定可用内存空间为100MB,硬盘使用空间无限大,试分析时间和空间复杂度,找出最快的解决方法。
阿里巴巴第二道(研发类)
原题大体描述有一大批数据,百万级别的。数据项内容是:用户ID、科目ABC各自的成绩。其中用户ID为0~1000万之间,且是连续的,能够惟一标识一条记录。科目ABC成绩均在0~100之间。有两块磁盘,空间大小均为512M,内存空间64M。
1) 为实现快速查询某用户ID对应的各科成绩,问磁盘文件及内存该如何组织;
2) 改变题目条件,ID为0~10亿之间,且不连续。问磁盘文件及内存该如何组织;
3) 在问题2的基础上,增长一个需求。在查询各科成绩的同时,获取该用户的排名,问磁盘文件及内存该如何组织。
若是想学习Java工程化、高性能及分布式、高性能、深刻浅出。性能调优、Spring,MyBatis,Netty源码分析的朋友能够加个人Java进阶群,680130298,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给你们。
二、京东
一、Dubbo超时重试;Dubbo超时时间设置
二、如何保障请求执行顺序
三、分布式事物与分布式锁(扣款不要出现负数)
四、分布式session设置
五、执行某操做,前50次成功,第51次失败a所有回滚b前50次提交第51次抛异常,ab场景分别如何设置Spring(传播性)
六、Zookeeper有哪些用
七、JVM内存模型
八、数据库垂直和水平拆分
九、MyBatis如何分页;如何设置缓存;MySQL分页
十、熟悉IO么?与NIO的区别,阻塞与非阻塞的区别
十一、分布式session一致性
十二、分布式接口的幂等性设计「不能重复扣款」
笔试
三、百度
自我介绍
一、Java中的多态
二、Object类下的方法
三、Finalize的做用和使用场景
四、Hashcode和equals
五、为何要同时重写hashcode和equals
六、不一样时重写会出现哪些问题
七、Hashmap的原理
八、Hashmap如何变线程安全,每种方式的优缺点
九、垃圾回收机制
十、Jvm的参数你知道的说一下
十一、设计模式了解的说一下啊
十二、手撕一个单例模式
1三、快速排序的思想讲一下
1四、给个数组,模拟快排的过程
1五、手写快排
1六、设计题,一个图书馆管理系统,数据库怎么设计,需求本身定
笔试
简答题1
一个单词单词字母交换,可得另外一个单词,如army->mary,成为兄弟单词。提供一个单词,在字典中找到它的兄弟。描述数据结构和查询过程。
简答题2
线程和进程区别和联系。什么是“线程安全”
简答题3
C和C++怎样分配和释放内存,区别是什么
算法题1
一个url指向的页面里面有另外一个url,最终有一个url指向以前出现过的url或空,这两种情形都定义为null。这样构成一个单链表。给两条这样单链表,判断里面是否存在一样的url。url以亿级计,资源不足以hash。
算法题2
数组al[0,mid-1] 和 al[mid,num-1],都分别有序。将其merge成有序数组al[0,num-1],要求空间复杂度O(1)
系统设计题
百度搜索框的suggestion,好比输入北京,搜索框下面会以北京为前缀,展现“北京爱情故事”、“北京公交”、“北京医院”等等搜索词。
如何设计使得空间和时间复杂度尽可能低。
总结
以上是面试的经验以及学习的方面,分享给你们,但愿你们能够了解什么是大型互联网名企面试题。以为收获的话能够点个关注收藏转发一波喔,谢谢大佬们支持!!在这里顺便给你们推荐一个架构交流群:617434785,里面会分享一些资深架构师录制的视频录像