收集:面经

学生党如何拿到阿里技术offer: 《2016阿里巴巴校招内推offer之Java研发工程师(成功)》-博客-云栖社区-阿里云

https://yq.aliyun.com/articles/6807

JAVA研发工程师

硕士 无实习 但计算机专业阅读量

个人体会: Hadoop 是个“大宝贝”,尤其对于我这样零实习,少项目的非科班学生,在面试的时候化解了很多面试官的刁难问题。它是 DT 时代的关键技术,包含了太多大神的心血和智慧,深入理解,不仅是 Java 与编程的提升,而且提高架构与系统设计的能力。抓蛇抓七寸,对于 Hadoop 一样,其中关键的组件有分布式文件系统、分布式计算框架、非关系型数据库、分布式协调服务等,而各个组件都有其核心架构与关键技术点,认清架构,由广度到深度,各个击破。理论加实践,建议在 Debug 中探索工作机制。

最后推荐一些技术资源, lintcode 、 leetcode 刷题必备(适可而止,不同于北美 FLAG 和一些startup 公司,国内的面试往往需要很多应用技术,也就是项目), July 的 csdn 博客 “ 结构之法 算法之道 ” ,数据库可以学习淘宝沈询的视频和博客,操作系统( Linux 进程管理与调度、内核同步、虚拟文件系统、内存管理、进程地址空间等),推荐网站: 牛客网, 七月算法,博客在线, ImportNew 、 ITeye、 InfoQ 、 csdn 、博客园, IBM developerWorks 等。另外,可以关注技术大牛的微博,开开眼界也是极好的,例如寒冬 winter 、淘宝沈询、淘叔度、淘宝丁奇、阿里正祥、淘宝正明、淘宝褚霸、RednaxelaFX 、 2gua 等大神。

对于非应届生,有足够的时间,修炼内功,切忌基础不牢就模仿武功招数。对于应届生,时间不多,可以刷刷题,多看看面经,磨磨枪。

一面:

1. Hashtable,HashMap,ConcurrentHashMap 底层实现原理与线程安全问题(建议熟悉 jdk 源码,才能从容应答)

2. MapReduce 输入输出格式

3. Mapper 和 Reducer 的功能

4. MapReduce 的工作机制,Shuffle过程

5. HDFS 工作原理,如何实现 HA

6. 节点间通信机制

7. DataNode 如何冗余备份

8. Java 的引用类型有哪几种

四种,强、软、弱、虚引用

9. 抽象类和接口的区别

参考: http://www.importnew.com/12399.html

参考:https://my.oschina.net/benhaile/blog/176007 java8有实现方法了

抽象类(用来捕捉子类的通用特性的):有构造器;不能实例化的类;有public、protected、default修饰符;可以有main方法;单继承;方法可以有默认实现

接口(抽象方法的集合):无构造器;方法只有public修饰符;可以多继承;速度慢;方法无默认实现;static方法需要实现

如果基本功能在不断改变,那么就需要使用抽象类。需要多继承,只能使用接口。

理解:抽象类表示这个东西是什么;接口表示这个东西会什么动作。

10. 设计模式会哪些

11. 工厂方法模式的优点(低耦合、高内聚,开放封闭原则)

参考:http://design-patterns.readthedocs.io/zh_CN/latest/creational_patterns/factory_method.html

工厂方法模式:工厂父类负责定义创建产品对象的公共接口,而工厂子类则负责生成具体的产品对象。

高内聚:创建这个对象的细节则完全封装在具体工厂内部

低耦合、开放封闭原则:加入新产品时,无须修改抽象工厂和抽象产品提供的接口

12. 数组多大放在 JVM 老年代(不只是设置 PretenureSizeThreshold ,问通常多大,没做过一问便知)

设置-XX:PretenureSizeThreshold参数。通常?

13. 老年代中数组的访问方式

数组访问方式和对象访问一样

14. GC 算法,永久代对象如何 GC , GC有环怎么处理

永久代GC的原因:

- 永久代空间已经满了

- 调用了System.gc()

基本采用标记-整理(G1局部来看是标记-复制)

根搜索算法解决GC有环问题

15. 谁会被 GC ,什么时候 GC

参考:http://icyfenix.iteye.com/blog/715301

GC的对象:从GC root搜索不到,而且经过第一次标记、清理后,仍然没有复活的对象

GC的时候:

          Minor GC:eden满了

          Full GC:Minor GC时老年代也存不下

GC做的事情:新生代做的是复制清理,from survivor、to survivor的作用(复制);老年代做的是标记清理、标记清理后碎片要不要整理、复制清理和标记清理有有什么优劣势

          还能讲清楚串行、并行(整理/不整理碎片)、CMS等搜集器可作用的年代、特点、优劣势,并且能说明控制/调整收集器选择的方式。

16. 如果想不被 GC 怎么办

将自己添加到GC root的引用

17. 如果想在 GC 中生存 1 次怎么办

参考: http://blog.csdn.net/u010833547/article/details/52780468

释放掉对象的引用,但是在对象的finalize方法中重新建立引用,但是有一此方法只会被调用一次,所以能在GC中生存 一次

18 缓存设计与 LRU

19. hashCode() 与 equals() 生成算法、方法怎么重写

20. 关系型和非关系型数据库区别

21. HBase 原理与工作机制,如何保证 HA ,如何保证宕机数据可恢复

22. 数据库处理大数据的优化

23. 索引的分类

24. 模糊查询性能

25. 排序算法与时空复杂度(快排为什么不稳定,为什么你的项目还在用)

26. 逆波兰计算器

后缀表达式也称为逆波兰式(Reverse Polish Notation, RPN),比如2 + 3 * (5 - 1)用逆波兰式来表示则是:2 3 5 1 - * +

使用一个栈

参考:http://blog.csdn.net/Leoamy/article/details/51217362

27. Hoffman 编码

28. 查找树与红黑树

29. Spring 框架等

30. 项目

31. jvm 如何分配直接内存, new 对象如何不分配在堆而是栈上,常量池解析

参考: http://www.cnblogs.com/xing901022/p/5248934.html Java直接(堆外)内存使用详解

栈对象?

二面:针对自我介绍和项目

1. IO 流,字节流 --> 字符流

2. 递归读取文件夹下的文件,代码怎么实现

3. HashMap 与线程安全问题

4. rehash

5. Web 框架

6. 项目与 Hadoop

7. 问我未来的职业规划

8. 问我有什么问题(问了关于阿里工程师文化的问题)

学生党成功拿到阿里技术offer:面Java开发,却是C++考官,几个意思?-博客-云栖社区-阿里云

https://yq.aliyun.com/articles/6393

JAVA研发工程师

硕士 有实习 项目多

文章分享完了。从她的博客上也能看出来,研究生毕业后拿到了很多offer,最后应该是去了阿里。我分析一下核心要点:技术和知识储备上都比较过硬;面试的能力非常强,她非常清楚自己准备的技术方向,宁肯多等待半个小时的时间也要在Java方向的面试官那里面试;“先下手为强”,即让自己成为主动摊牌者而不是被动回答者,找机会跟面试官说自己熟练掌握了哪些方面的知识、自己喜欢专研什么等。而对于计算机软件专业的我们而言,对所做的每一个项目,都要善于总结和评价,这样才会有实质性的收获,当自己所做的东西都烂熟于心,融会贯通了,再回答别人的提问也就会显得游刃有余。而且从文章中能看出,无论是一面结束还是整个面试结束,学姐都有所总结,而且这些经验都非常有参考价值。

最后,自己也要提出的问题。我一直认为提问题永远是一门技术甚至是一门艺术,而很多的大学生直到现在还是不懂得如何提问,这一点也是我们要在平时积累锻炼的。

网易-杭研-互联网产品-Java开发面经_笔经面经_牛客网

https://www.nowcoder.com/discuss/7501?type=2&order=0&pos=33&page=1

JAVA开发

硕士 几个人自己做的项目

今天还和朋友说,在网易的面试过程是很爽的,从基础问到了底层,又向上从设计模式问到了需求分析、系统设计、项目管理。

学生党如何拿到阿里技术offer: 《阿里巴巴常考面试题及汇总答案(Java方向)上篇》

https://yq.aliyun.com/articles/6656?spm=5176.100239.blogcont6807.8.B0cr0X

学生党如何拿到阿里技术offer: 《阿里巴巴常考面试题及汇总答案(Java方向)下篇》

https://yq.aliyun.com/articles/7468?spm=5176.100239.blogcont6656.27.bULGnn

Android知识点总结分享

https://www.nowcoder.com/discuss/9867

美图2017大三实习生电话面试

https://www.nowcoder.com/discuss/21058

作者:æ

链接:https://www.nowcoder.com/discuss/21058

来源:牛客网

1.singleTask是否了解,举一个它的使用场景,后续问到会调用的方法。

各个模式的出入栈我能说出,但是singleTask的使用场景一时懵逼,举了个更适合singleTop的场景,果然问我觉得这种使用singleTask是不是最佳选择,自己觉得不是最佳,做了解释。

参考:彻底明白Activity启动模式-SingleTop、SingleTask、SingleInstance具体使用场景

http://blog.csdn.net/zivensonice/article/details/51569502

singleTask     其他App需要打开我们的客户端页面,就可以配置他为singleTask模式,保证他只有一个唯一实例,节约内存同时按下返回键后的感官也更顺畅。提供给人调用的页面最好是栈底元素,返回后能回到其他APP。

2.listView与recycleView常用哪个?(常用listView)问一下listView复用的问题。

a.说一下listView是怎么复用view的。

描述了listView重新使用已经移出屏幕的view。

b.怎么复用view。

这个肯定熟悉的,但是自己一来没经验二来太紧张,描述起来乱七八糟。

c.不使用viewHolder能不能进行view的复用。

这一个我一时也没能想出,大家能不能提供一个思路?还是根本就不行呢?

d.描述了一个场景,一个listView共有200项,10项可以占满屏幕,从顶部一直滑到底部,期间不向上滑,使用了复用的情况下,getView方法调用调用多少次,convertView初始化了几次。

自己回答gatView是每次都要的,convertView我们使用复用应该是10次。面试官人很好,说提示一下初始化了11或者12次,思考下为什么,我表示懵逼(其实此时大脑早已短路,对这次也没再抱有多大希望)。面试官告诉我,当我们最下方未完全滑入上方为完全滑出,这时也是要初始化的。我再次在心里感叹了自己智商掉线。

3.考虑这样一个布局怎么实现,就是常见的浏览器搜索框输入的时候,下方会出现搜索热词,各个热词排满一行后进入下一行。

我的思维已经完全僵化,也是没get他实际想问的知识,自己思考了使用各种布局利用各种wrapcontent、gravity,但是没有想到。面试官说其实这个比较难了,需要用到自定义viewGroup,我不肯放过机会机会表示自定义viewGroup我是写过的,实现这一个的话可以在layout方法操作,超过一行后布局到下一行。面试官紧接着问layout方法是什么作用,我只回答了确定各个子view的位置,此处需要大家帮助解答。

4.说一下view和viewGroup的事件传递机制吧,dispatchTouchEvent、onTouch和onTouchEvent先后先后顺序,还有onInterceptTouchEvent。

这一个自己其实当天还是仔细看过的,但是太紧张了,说的乱七八糟,尤其是拦截的部分,表述太差,也的确是了解不够,面试官表示了解的比较浅显。

5.contentprovider是否只能是数据库的数据,别的程序怎样读取。

自己只说出了contentResolver和uri,定义权限没说清楚。

6.描述了一个场景,微博中点击一个淘宝的链接打开了淘宝应用,这是怎么完成的。

参考:android实现通过浏览器点击链接打开本地应用(APP)并拿到浏览器传递的数据

http://blog.csdn.net/geekpark/article/details/16118457/

设置名为android.intent.action.VIEW的action,设置android:scheme

7.说一下fragment和activity的通信

自己说到自定义接口,在fragment初始化时判定是否实现了接口,面试官紧接着问在哪个生命周期函数可以判断,我回答onAttach是双方绑定,onActivityCreated是activity的onCreate已经返回,我都是在onActivityCreated里判断的。面试官没有评价,此处求解。

8.fragment内部怎样嵌套fragment

这个地方的好多函数我忘记了,所以自然说不出……事后自己查看是getChildFragmentManger,但是记成了getChildFragmentContext。面试官紧接着问,内层frag调用getContext获取的是哪一个context,自己之前就已经记错,回答是获取外层的,面试官无奈说回去自己写一下代码试下。

8.java的问题

a.静态内部类非静态内部类区别。

b.因为前一个问题提到了内存泄漏,紧接着问你是怎么理解内存泄漏的。

c.什么样的对象是应该回收的呢?

bc两个问题自己答的乱七八糟,应该说我是懂得基本的道理的,但是叙述太差,说不准确也说不到要点。

d.匿名内部类有没有构造方法。

e.匿名内部类使用局部变量的要求。为什么要是final的。

为什么是final的表示不知道,其实自己查过多次,但是好像这里处理的很模糊?

静态内部类和非静态内部类的区别参考:http://blog.csdn.net/u012123938/article/details/46684839

java提高篇(九)-----详解匿名内部类: http://blog.csdn.net/chenssy/article/details/13170015

一个五年Android开发者百度、阿里、聚美、映客的面试心经

http://gdky005.com/2016/07/08/%E4%B8%80%E4%B8%AA%E4%BA%94%E5%B9%B4Android%E5%BC%80%E5%8F%91%E8%80%85%E7%99%BE%E5%BA%A6%E3%80%81%E9%98%BF%E9%87%8C%E3%80%81%E8%81%9A%E7%BE%8E%E3%80%81%E6%98%A0%E5%AE%A2%E7%9A%84%E9%9D%A2%E8%AF%95%E5%BF%83%E7%BB%8F/

一个自定义的滚动View A里面如何放另外一个滚动的View B?

recyclerview对比listview

View 的事件分发机制

View的绘图

ListView 的实现原理

handler 原理

volatile 的作用

Dialog改变位置

Service弹出Dialog

设置为系统Dialog

dialog.getWindow().setType((WindowManager.LayoutParams,TYPE_SYSTEM_ALERT));

添加系统Dialog权限android.permission.SYSTEM_ALERT_WINDOW

Java 内存管理知识

Android插件化

1 - 一般情况下第一轮都是基础面试,需要扎实的基础

  - 最常用的Android 基础知识

  - Java 基础知识

  - 了解一些 常用东西的原理,例如:handler, Thread 等

  - 项目中的技术点

2 - 第二轮的时候需要了解更深层次的东西

  - Android 事件分发机制原理

  - Android 绘图机制原理

  - WindowManager 的相关知识

  - 进程间传输方式

  - Java 内存管理机制

  - 一些常用的 list,map 原理,以及子类之间的差别

Android面试经验(拿到7,8家互联网公司offer)

https://www.nowcoder.com/discuss/19241

腾讯

项目中有什么难点,是怎么解决的

HashMap、ArrayList之类的

线程锁之类的

看过什么第三方优秀的框架,实现机制

百度

进程通信、保活

     IPC:Intent、startActivityForResult;Content Provider;Broadcast;AIDL;

     保活: http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2016/0418/4158.html

静态广播、动态广播的区别

两种广播有如下区别:

- 生存期,静态广播的生存期可以比动态广播的长很多,因为静态广播很多都是用来对系统时间进行监听,比如我们可以监听手机开机。而动态广播会随着context的终止而终止

- 优先级动态广播的优先级比静态广播高

- 动态广播无需在AndroidManifest.xml中声明即可直接使用,也即动态;而静态广播则需要,有时候还要在AndroidManifest.xml中加上一些权限的声明

人人

ListView优化

CVTE

一面:JVM、垃圾回收机制、JAVA内存模型(包括年轻代、老年代垃圾回收原理)

二面:算法

牛客网JAVA面试贴

作者:爱上一个人就伴着他成长、

链接:https://www.nowcoder.com/discuss/34600?type=0&order=0&pos=439&page=1

来源:牛客网

Java研发岗:本人东北大学本科妹子一名,能力一般,内推到百度一面,但是应该是挂了,特来写篇面经,纪念一下

一面内容:

MySQL索引底层实现,效率

MySQL数据是怎么存储的

MySQL崩溃了怎么办

NIO和IO的区别,NIO: 1024字节,传了512后,下次会接着传吗

内存泄漏的工具

interrupt()对线程的影响,应用场景

Http1.0,1.1,2.0的区别

TCP的TIME-WAIT讲一下,时间是多久

读写锁讲一下,说一下应用场景

找两个链表的公共节点

翻转how are you 为 you are how

tomcat崩溃了怎么办

nginx了解吗

死锁的条件和原因

thrift(项目中的内容)

状态码:302,304代表啥,受什么参数影响

spring IOC AOP讲一下

差不多就记得这些了

面试官建议:因为我完全没有接触过分布式,所以面试官建议我学习一下分布式

经验总结:多说自己了解方向的词,面试官可能就会跟着问了,第一次校招面试没经验,以后会进步的

https://www.nowcoder.com/discuss/34570?type=0&order=0&pos=472&page=1

servlet生命周期 servlet的工作流程 jsp和servlet的区别

spring的功能 Ioc 容器 ioc是什么意思 怎么实现 反射怎么用

spring aop aop 事务管理 声明式 怎么编写 aop用什么实现 动态代理 手撸了使用代码

springmvc有什么了解 直接说没什么了解

使用struts 又问两者优劣....

面向对象特征 4个 分别解释 重载 继承

有什么情况下不能继承 final jdk中哪些类是final

String为什么要这么实现final

string stringbuilder stringbuffer 之间的区别

类加载机制

set中的对象需要重写什么方法 hashCode和equals

序列化怎么用 不想序列化的属性 transient

java中的gc机制

多线程 3种方式

并发同步的方法 两种方法有什么区别

lock可以有什么高级的控制

线程有几种状态 什么方法造成状态的转换 wait sleep分别导致线程进入哪种状态 可能是简历里有 两次面试都问了

socket 服务端 撸代码

socket使用nio还是bio nio和bio的区别 优势

什么叫非阻塞 后来反应过来为什么问 面试官的意思是服务端socket接收数据线程池的实现可以用nio代替,一个buffer对应多个channel

撸代码 给个文件 打印出全是数字的行

一面近一个小时,二面30+分钟 ,hr近一个小时,感觉hr面跪了,常给你一个问题描述整个过程。比如学习能力,你有学过什么东西,然后做了什么努力,达到什么样的成果,有什么样影响.还问了投了哪些公司…在项目中组员间出现过的矛盾,如何解决..... 只记得这么多了,第一次记下来,希望做好事有好运吧~ ps:我不小心带了支笔,后面的兄弟,我只能做到这里了^ - ^

数据库锁的级别

数据库范式

数据库事务

发表评论

邮箱地址不会被公开。 必填项已用*标注