第一面 

项目: 

1、找一个项目,介绍下情况。其中遇到了什么问题,每种问题怎么样的解决方案。 

算法题: 

2、一个排好序的数组,找出两数之和为m的所有组合 

3、自然数序列,找出任意连续之和等于n的所有子序列 

数据结构: 

4、从数据库查出一个数据结果集,其中有一个时间字段,请用一个数据结构存储使得可以最快速的查出某个时间段内的记录。 

5、上一题我提到了B+树,他就继续问了为何用B+树实现索引而不用二叉树 

数据库: 

6、说说Oracle数据库的事务隔离级别,以及遇到的相关问题 

这个我说了标准的四种级别,Oracle实现的三种级别,并概述了下多版本读一致性 

项目相关技术: 

7、看到简历上写了个rpc,讲讲,我说了跟rmi比较像,说了异同点,然后又展开到内存分配的问题,不过没搞懂他到底要说什么。还问题java客户端跟c程序服务端的通信情况,比如说c那边直接一个结构体过来,怎么处理,答曰没遇到过。 

8、简历上写的jvm性能调优,说说都做了什么事情 

9、说到jvm的时候,说到了我们用windows开发,就问linux的脚本知道么,awk用过么 

10、简历上写web框架开发维护,就问浏览器端跟服务器端如何通信,不过最后只落到了java对象如何传递到客户端,客户端数据如何传递到服务端。 

java基础: 

11、并发同步的问题,synchorized是如何使用,Object的wait、notify方法什么作用 

框架: 

12、是否了解spring,ioc的实现,aop的实现方案,各种方案有什么限制 



第二面 

项目: 

1、介绍下你做的项目,稍微高层次一些的介绍下,意思是不要没完没了的介绍 

其中提到了主实例集群节点与主实例备用节点的单例状态如何保持同步 

2、rpc通信和rmi区别 

3、并发访问同一条数据的时候,如何保证数据同步。 

4、网站性能优化都做了什么,具体的?ETag、Last-Modified、Expires、Cache-Control 

5、最近看什么书,印象最深刻的是什么? 

算法: 

6、二叉树,找两个节点的最底层的公共父节点,给思路 

7、单向链表反转,写代码 



第三面(就记了这么多) 

自我介绍: 

1、个人基本情况,顺便提到项目,就开始扯了几下 

数据库: 

2、数据库性能优化有做么?做了些什么? 

设计: 

3、设计一个小商店进销存系统的的表结构设计,老板每天要知道卖出的货物,要定期查看货物的成本、销售额和利润。 

这里要注意,重点之一是如何进行成本计算,要知道成本计算的几种方法,选其中一种实现,这个会影响表结构的设计 

算法: 

4、1到1亿的自然数,求所有数的拆分后的数字之和,如286 拆分成2、8、6,如1到11拆分后的数字之和 => 1 + ... + 9 + 1 + 0 + 1 + 1。 



    之前去百度面试,整理了一下面试问题。没有笔试,直接和面试官交谈。感觉面试官人挺好的,挺有耐心,每次面试回来不论公司大小,不管能不能拿到offer,但基本都能有一些有价值的输入,还挺开心的。我虽然有4年工作经验,但是不是走纯技术系的,开发,维护,见客户,项目管理什么都干过,最近想换工作,粪发图强恶补算法,数据结构一类大公司特爱考的基础知识。 

      这次后几道题答的不好。尤其是有一个关于服务器session优化和数据库表水平拆分策略的,没说到点儿上,回来的路上有了点儿思路,回来百度一下,发现八九不离十。前面几个算法的也都是磕磕碰碰,好歹都说上来了,是不是最优的就不好说了。 

      以前做信息系统,更注重业务的获取与功能的实现,虽然所有人都喊性能、架构什么的,但是实际上没人在乎。反正撑死了也就那么点儿人用。互联网公司真的是不一样啊,对并发和大数据量的关注是深入骨髓的。感觉真是惭愧。虽然这几年跑客户谈需求讲ppt自诩也是混场面的,但是从心里希望自己在技术上也能再往前走一步。 





根据记忆整理如下: 



1.       有一个集合a,里面有n个正整数,乱序排列。给定一个正整数N,求,a中任意两个数相加等于N,共有哪些种组合情况。例如,集合为{1,3,44,2,4,5,54,222,368}  N=6,则结果集为{1,5},{2,4} 

      这个题网上有类似的 



2.       Treemap的实现。 

   各种集合类的结构和优缺点,大家都挺爱考的。以前做行业信息化,没什么感觉,但是如果很在意性能,搞清楚还是挺有用的。 



3.       有两个很大的文件,每个文件中都有1亿行,每行一个整数。问这两个集合的交集是什么。给定的前提是机器内存不足以完全装入任意一个文件。 

   这个几乎是网上的原题了 



4.       堆和栈的定义,堆和栈里面的对象,哪个运行速度快。 

    还问了一些衍生的问题,记不清了,只要看清楚java教材关于这方面的介绍足矣 



5.       为了实现一个折线图,需要将数据存入一种数据结构,折线图横坐标是时间,纵坐标是值,经常的查询是按时间段进行查询,如select value from t where begin>’20110101’ and end<’20111212’ ,问,使用java中的那种数据结构比较好。 

   还是考java中的各种集合类,本质上是问各种数据结构在顺序/随机的读取/插入上的效率 



6.       数据库的索引通常用什么数据结构实现?为什么用这种数据结构。 

   就知道是btree,但是btree是咋回事,为啥不能用其他tree或者别的结构,这个看过一篇帖子以后才明白。算是学习了。 



7.       如果数据库中有2个表,表a字段为姓名、年龄,表b字段为姓名、单位。现在使用姓名字段做left join查询,假设姓名字段都有索引了。问数据库是怎么实现的。如果把这两个表看为在内存中的数组,要自己实现left join,怎么实现? 

   面试官看我实在不知道数据库里leftjoin怎么实现的,就让我自己实现一个内存中的,勉强答出来了吧,但是可能不太好。 



8.       数据库各种事务隔离级别 

   这个是纯不记得了,以前工作中从来用不到,真是汗颜。 



9.       wait()方法和notify()方法干什么用的,wait()方法有什么使用限制,是哪儿都能用么? 

   对于一个从来不用多线程的人,这么简单的问题也变得有点儿难。只知道干什么用的,不知道有什么限制。 



10.   数据库中有一个表有上亿的数据量,怎么优化?(主要是拆分,除了按业务拆分外,还有什么从技术角度的,可扩展性好的水平拆分方式) 

   思路是拆没错,但是面试官问的不是业务拆分策略,而是从技术上考虑。还得考虑扩展性,比如拆好以后,数据量增长迅速,又要拆了,怎么办。这个水平拆分策略有好多,网上能搜到。但是我说的都不是很有体系,以前没弄过,都是现场想。。 



ps:当时上新东方的时候,老师说,有的时候虽然你英语不好,但是有几个单词只要你记住了,说的时候塞到句子里,人家就会觉得你特地道, 

比如absolutely之流。我觉得面试的时候也有这种key words,比如位排序之流,说的时候还得特举重若轻。适用于各类新手和平时工作中压根用不到各种排序算法的人, 



主题:淘宝北京专场java面试题(2011-12-31) 



第一面 

1、说说项目 

由于我几年一直做一个产品,从后台做到前台,从业务开发做到技术平台,所以就画了整个产品部署架构图,b/s & c/s的,然后一层层的讲解。 

B/S现有Web框架改造、浏览器缓存、c/s补丁下载各种方式、cdn、c/s通信协议、rpc集群、http集群、负载均衡、集群前置机调度、后端服务器主从实例、后端服务器各种优化(异步、性能隔离)、数据库服务器各种优化(索引、物化视图、读写分离、帐套结转、数据库横向切分、纵向切分)、层间调用性能监控的实现,对照产品架构图各个部分一路讲下来。 

2、http集群方案,我们的是反向代理服务器,自己有写代理服务器,也可以用主流的web服务器,然后面试官就问ngnix、lighttpd、apache三大主流web服务器的区别...囧了。。。 

3、如果有机会重新设计你们的产品,你会怎么做? 

这个当时回答的不好,主要从通信协议和数据存储两块来说了,这样说有些片面。因为我们产品本身又很多问题,只通过部署架构图是反映不出来的,如二次开发问题、补丁下载问题、不同模块java包相互依赖问题、技术框架比较封闭、构建系统方案落后、文档缺失等,我们内部经历过很多的痛苦的,但是当时思维局限在了部署架构,所以没有说出这些问题。 

第二面 

4、网站性能优化如何优化的? 

自己一点网站性能优化经历,结合《构建高性能Web站点》,扯了一通,跟一面有点类似。 

5、本来要花产品架构图,我翻过简历,后边有一面时候画的,就没要画了。然后就要我在黑板(暂且叫做黑板)上画jvm体系结构。 

画了jvm体系结构,讲解了jvm各个组件和组件的交互、GC算法、各种垃圾收集器、运行期优化、产品中遇到的与jvm相关的问题如oom、ClassLoader问题等,并针对HotSpot VM的实现讲解了堆、非堆内存划分 

第三面(HR面) 

6、看我面过b2b和支付宝,问了下情况 

b2b面完了,但是没过;支付宝过了2面 

7、个人优缺点 

8、是否愿意来杭州 

第四面(视频电话面,杭州某大牛) 

9、介绍项目。对于Web框架的改造,跟原有框架的异同 

10、下班后的时间有学习技术么 

11、是否参加过开源项目 



------------------------------------------------------------------ 

不好意思,是2011-12-31,害的大家跟帖穿越... 

本人工作时间不短了,4年半的小本。这次面,过了p6,淘宝商城的业务开发部门。 

之前三年是做ERP业务开发,技术没什么提升。最近两年在平台部,半年前觉得混的快挂了才狂翻公司文档、读源码、看书。具体面试准备过几天会另写一篇。最近只整理了几次面试的面试题,在博客里,只是为了发出来给大家共享,同时也因为有同事想了解下这些公司的面试内容。另外为了消除像我这样在面试一些公司前的恐惧心理---我在面百度之前一直没有过的自信的,不知道他们会面什么,网上没找到java面试的完整题目....je坛子里的牛人一堆,还请各位不吝指教!

百度java开发面试题的更多相关文章

  1. java 开发面试题小整理(一)

    本篇文档将持续更新,有基础滴,也有深层次的,谢谢! 1.看下面的程序是否有问题,如果有问题,请指出并说明理由. * byte b1 = 3; * byte b2 = 4; * byte b3 = b1 ...

  2. Java开发面试题整理(2019春招)

    一.Java基础部分 1. HashMap和Hashtable各有什么特点,它们有什么区别?(必背题,超级重要) HashMap和Hashtable都实现了Map接口,但决定用哪一个之前先要弄清楚它们 ...

  3. Java开发面试题,3年工作经验的Java程序员面试经

    一.Java基础部分 1.使用length属性获取数组长度,public.private.protected.friendly区别 2.Collection和Collections区别 3.Strin ...

  4. Java开发面试题汇总整理

    又是金三银四的时候,我希望这份面试题能够祝你一臂之力! 自我和项目相关 1.自我介绍 2.你觉得自己的优点是?你觉得自己有啥缺点? 3.你有哪些 offer? 4.你为什么要离开上家公司?你上家公司在 ...

  5. java 开发面试题小整理(二)

    51.Anonymous Inner Class(匿名内部类)是否可以继承其它类?是否可以实现接口? 答:可以继承其他类或实现其他接口,在Swing编程和Android开发中常用此方式来实现事件监听和 ...

  6. Java开发面试题汇总 -- 精选版(附答案)

    最近事情太多,没太时间写公众号.今天抽空再整理整理面试中的那点事吧,帮助那些正在找工作或想跳槽找工作的兄弟姐妹们. 前面我己写过多篇推文,相信关注此公众号的伙伴们已经了解掌握了不少.从目前流行的开发技 ...

  7. 百度ios 开发面试题

    百度移动云可穿戴部门的面试经历,面试官都非常热情友好,一上来到弄的我挺不好意思的.下面记录一下自己的面试过程,因为我真的没啥面试经验,需要总结下. 1面 Objective C runtime lib ...

  8. 金三银四:蚂蚁金服JAVA开发面试题及答案之一面(持续更新

    一面 1.自我介绍.自己做的项目和技术领域 开放题 2.项目中的监控:那个监控指标常见的有哪些? 答:CPU.内存.IO 等等.建议下载个nmon工具,里面有各个指标. 数据库:Mysql(缓存命中. ...

  9. Java开发面试题

随机推荐

  1. SSH深度历险(二) Jboss+EJB的第一个实例

    学习感悟:每次学习新的知识,都会通过第一个小的实例入手,获得成就感,经典的Hello Workd实例奠定了我们成功的大门哈,这些经典的实例虽小但是五脏俱全呢,很好的理解了,Ejb的核心. 今天主要以这 ...

  2. 【一天一道LeetCode】#202. Happy Number

    一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Write a ...

  3. 【流媒体开发】VLC Media Player - Android 平台源码编译 与 二次开发详解 (提供详细800M下载好的编译源码及eclipse可调试播放器源码下载)

    作者 : 韩曙亮  博客地址 : http://blog.csdn.net/shulianghan/article/details/42707293 转载请注明出处 : http://blog.csd ...

  4. JAVA之旅(二十四)——I/O流,字符流,FileWriter,IOException,文件续写,FileReader,小练习

    JAVA之旅(二十四)--I/O流,字符流,FileWriter,IOException,文件续写,FileReader,小练习 JAVA之旅林林总总也是写了二十多篇了,我们今天终于是接触到了I/O了 ...

  5. Spark Streaming + Flume整合官网文档阅读及运行示例

    1,基于Flume的Push模式(Flume-style Push-based Approach)      Flume被用于在Flume agents之间推送数据.在这种方式下,Spark Stre ...

  6. 数值分析:Hermite多项式

    http://blog.csdn.net/pipisorry/article/details/49366047 Hermite埃尔米特多项式 在数学中,埃尔米特多项式是一种经典的正交多项式族,得名于法 ...

  7. 分布式进阶(三)Ubuntu 14.04 之JDK安装

    Ubuntu 10.04 之JDK安装 1.从官网 (http://www.Oracle.com/technetwork/java/javase/downloads/jdk6u35-downloads ...

  8. Linux IPC实践(12) --System V信号量(2)

    实践1:信号量实现进程互斥 父子进程执行流程如下: 父进程 子进程 P P O(print) X(print) sleep sleep O(print) X(print) V V sleep slee ...

  9. Linux0.11 创建进程的过程分析--fork函数的使用

    /* * linux/kernel/fork.c * * (C) 1991 Linus Torvalds */ /* 注意:signal.c和fork.c文件的编译选项内不能有vc变量优化选项/Og, ...

  10. 开放源码的安卓天气应用-android学习之旅(73)

    我在github上面发布了简易的天气应用,能够简单显示全国各个省市县市的天气 效果图片如下 源代码我放在github上了.我希望大家可以去下载,修改以后在上传维护,我的代码很简单.算是抛砖引玉,希望大 ...