前言

15年毕业到现在有三年多了,最近去面试了阿里集团(菜鸟网络,蚂蚁金服),网易,滴滴,点我达,最终收到点我达,网易offer,蚂蚁金服二面挂掉,菜鸟网络一个月了还在流程中...

最终有幸去了网易。

但是要特别感谢点我达的领导及HR,真的非常非常好,很感谢他们一直的关照和指导。

面试整体事项

1.简历要准备好,联系方式一定要正确清晰醒目,项目经历按照时间倒序阐述,注意描述自己在项目中承担的职责,简历的模板尽量选择简洁的,毕竟程序员大部分还是喜欢简单明了的。2.推荐boss直聘,我觉得很好用(不是广告)。3.一般的整体面试流程都是电面->现场面->HR面->等着。4.不要觉得HR说让你回去等消息就是GG了,他们也要跟你之前的面试官讨论,再向领导汇报,如果说不急可能还要和其他候选人比较,所以HR让你回去等消息绝对不是说明你完蛋了。5.面试前准备好自我介绍,1分钟左右就可以,可以写在纸上,电面可以照着念,等你到了现场面了基本也都快背下来你的自我介绍了。6.准备好扎实的基础,这是一切的根源,没实力怎么都没用的。7.面试中你可以把你的面试官往你会的知识上引导(我遇到过你会什么他不问什么的)。8.遇到了设计类题目不要着急,面试官不是为了让你几分钟设计一个高并发高可用设计模式完美的架构,只是想看看你的思路,看看你应变的能力,然后给你些提示看看你能否迅速的调整。9.offer都会有的,不要着急,把面试当成一个交流的过程。

需要准备的知识

以下为在近期面试中比较有印象的问题,也就不分公司了,因为没什么意义,大致分类记录一下,目前只想起这么多,不过一定要知道这些问题只是冰山一角,就算都会了也不能怎么样,最最重要的,还是坚实的基础,清醒的头脑。

Java基础

1.HashMap的源码,实现原理,JDK8中对HashMap做了怎样的优化。2.HaspMap扩容是怎样扩容的,为什么都是2的N次幂的大小。3.HashMap,HashTable,ConcurrentHashMap的区别。4.极高并发下HashTable和ConcurrentHashMap哪个性能更好,为什么,如何实现的。5.HashMap在高并发下如果没有处理线程安全会有怎样的安全隐患,具体表现是什么。6.java中四种修饰符的限制范围。7.Object类中的方法。8.接口和抽象类的区别,注意JDK8的接口可以有实现。9.动态代理的两种方式,以及区别。10.Java序列化的方式。11.传值和传引用的区别,Java是怎么样的,有没有传值引用。12.一个ArrayList在循环过程中删除,会不会出问题,为什么。13.@transactional注解在什么情况下会失效,为什么。

数据结构和算法

1.B+树2.快速排序,堆排序,插入排序(其实八大排序算法都应该了解3.一致性Hash算法,一致性Hash算法的应用

JVM

1.JVM的内存结构。2.JVM方法栈的工作过程,方法栈和本地方法栈有什么区别。3.JVM的栈中引用如何和堆中的对象产生关联。4.可以了解一下逃逸分析技术。5.GC的常见算法,CMS以及G1的垃圾回收过程,CMS的各个阶段哪两个是Stop the world的,CMS会不会产生碎片,G1的优势。6.标记清除和标记整理算法的理解以及优缺点。7.eden survivor区的比例,为什么是这个比例,eden survivor的工作过程。8.JVM如何判断一个对象是否该被GC,可以视为root的都有哪几种类型。9.强软弱虚引用的区别以及GC对他们执行怎样的操作。10.Java是否可以GC直接内存。11.Java类加载的过程。12.双亲委派模型的过程以及优势。13.常用的JVM调优参数。14.dump文件的分析。15.Java有没有主动触发GC的方式(没有)。

多线程

1.Java实现多线程有哪几种方式。2.Callable和Future的了解。3.线程池的参数有哪些,在线程池创建一个线程的过程。4.volitile关键字的作用,原理。5.synchronized关键字的用法,优缺点。6.Lock接口有哪些实现类,使用场景是什么。7.可重入锁的用处及实现原理,写时复制的过程,读写锁,分段锁(ConcurrentHashMap中的segment)。8.悲观锁,乐观锁,优缺点,CAS有什么缺陷,该如何解决。9.ABC三个线程如何保证顺序执行。10.线程的状态都有哪些。11.sleep和wait的区别。12.notify和notifyall的区别。13.ThreadLocal的了解,实现原理。

数据库相关

1.常见的数据库优化手段2.索引的优缺点,什么字段上建立索引3.数据库连接池。4.durid的常用配置。

计算机网络

1.TCP,UDP区别。2.三次握手,四次挥手,为什么要四次挥手。3.长连接和短连接。4.连接池适合长连接还是短连接。

设计模式

1.观察者模式2.代理模式3.单例模式,有五种写法,可以参考文章单例模式的五种实现方式4.可以考Spring中使用了哪些设计模式

分布式相关

1.分布式事务的控制。2.分布式锁如何设计。3.分布式session如何设计。4.dubbo的组件有哪些,各有什么作用。5.zookeeper的负载均衡算法有哪些。6.dubbo是如何利用接口就可以通信的。

缓存相关

1.redis和memcached的区别。2.redis支持哪些数据结构。3.redis是单线程的么,所有的工作都是单线程么。4.redis如何存储一个String的。5.redis的部署方式,主从,集群。6.redis的哨兵模式,一个key值如何在redis集群中找到存储在哪里。7.redis持久化策略。

框架相关

1.SpringMVC的Controller是如何将参数和前端传来的数据一一对应的。2.Mybatis如何找到指定的Mapper的,如何完成查询的。3.Quartz是如何完成定时任务的。4.自定义注解的实现。5.Spring使用了哪些设计模式。6.Spring的IOC有什么优势。7.Spring如何维护它拥有的bean。

一些较新的东西

1.JDK8的新特性,流的概念及优势,为什么有这种优势。2.区块链了解3.如何设计双11交易总额面板,要做到高并发高可用。

一些小建议

1.可以去leetcode上刷题换换思路。2.八大排序算法一定要手敲一遍(快排,堆排尤其重要)。3.了解一些新兴的技术。4.面试之后面试官都会问你有没有什么问题,千万不要没问题,也别傻乎乎的问一些敏感问题。5.了解你要面试的公司的产品及竞争产品。

无论是哪家公司,都很重视高并发高可用的技术,重视基础,重视JVM。面试是一个双向选择的过程,不要抱着畏惧的心态去面试,不利于自己的发挥。同时看中的应该不止薪资,还要看你是不是真的喜欢这家公司,是不是能真的得到锻炼。其实我写了这么多,只是我自己的总结,并不一定适用于所有人,相信经过一些面试,大家都会有这些感触。

希望大家都能找到适合自己的公司,开开心心的撸代码~

在金三银四还没有找到自己合适的公司的可以进我的首页加群获取面试资料和一些进阶视频资料

而针对以上面试技术点,我在这里也做一些资料分享,希望能更好的帮助到大家。

108道互联网面试题(含答案)

面试题个人总结

面试挂了阿里却拿到网易offer,一个三年Java程序员的面试总结!的更多相关文章

  1. 五月的仓颉大神写的 三年java程序员面试感悟 值得分享给大家

    感谢 五月的仓颉  的这篇文章 , 让我重新认识到自己身上的不足之处 .  原文地址http://www.cnblogs.com/xrq730/p/5260294.html,转载请注明出处,谢谢! 前 ...

  2. 两年JAVA程序员的面试总结

    前言 工作两年左右,实习一年左右,正式工作一年左右,其实挺尴尬的,高不成低不就.因此在面试许多公司,找到了目前最适合自己的公司之后.于是做一个关于面试的总结.希望能够给那些依旧在找工作的同学提供帮助. ...

  3. (转)Java程序员的面试经历和题库

    背景:最近我在找工作,前期就像打了鸡血的一样,隔一段时间没有面试,就又松懈了下来,看到别人写的面经,感觉就像打脸一般,以后要多多总结前人的经验,时刻保持压力状态才是. 作者:nuaazhaofeng2 ...

  4. Java程序员的面试经历和题库

    最近打算换城市了,受不了北京的雾霾了,所以准备逃离啦.所以一直在面试中,整理了下最近遇到的一些面试题,供大家参考.其中会包含一些面试的小经验,如果您是面霸,希望能给予指导.自己不是大牛,如果您是大牛, ...

  5. 关于一次美团java程序员招聘面试的经历

    美团一面: 中间省略掉大概几个问题,因为我不记得了,下面记得的基本都是我没怎么答好的. 1.了解SOA,微服务吗? 2.分布式系统如何负载均衡?如何确定访问的资源在哪个服务器上? 一.轮询.二.随机. ...

  6. java程序员常见面试题目

      答:每当程序出现异常之后,如果程序没有进行相应的处理,则程序会出现中断现象.实际上,产生了异常之后,JVM会抛出一个异常类的实例化对象,如果此时使用了try语句捕获的话,则可以进行异常的处理,否则 ...

  7. 聊聊阿里社招面试,谈谈“野生”Java程序员学习的道路

    引言 很尴尬的是,这个类型的文章其实之前笔者就写过,原文章里,笔者自称LZ(也就是楼主,有人说是老子的简写,笔者只想说,这位同学你站出来,保证不打死你,-_-),原文章名称叫做<回答阿里社招面试 ...

  8. 一名十年Java程序员回忆阿里面试经历——揭开阿里面试的“遮羞布”

    阿里面试经历 去阿里面试可以说非常非常的偶然和戏剧性,因为本人根本没投简历,以至于阿里hr给我电话的时候我一度认为是诈骗电话.因为深圳这家公司不错我还想在这里干个两年左右再考虑考虑. 这个时候的本人已 ...

  9. 十面阿里 Java 程序员,最终拿下阿里 P6 offer!

    转子:https://mp.weixin.qq.com/s/RkMxPbm8E99-rTZKmvBy6Q 今天介绍小编的一个朋友,他现今有四年开发经验了,前前后后为了进阿里面试十次(阿里旗下—蚂蚁金服 ...

随机推荐

  1. HTML5原生拖拽/拖放(drag & drop)详解

    前言 拖放(drap && drop)在我们平时的工作中,经常遇到.它表示:抓取对象以后拖放到另一个位置.目前,它是HTML5标准的一部分.我从几个方面学习并实践这个功能. 拖放的流程 ...

  2. MVC View中获取action、controller、area名称、参数

    获取控制器名称: ViewContext.RouteData.Values["controller"].ToString(); 获取Action名称: ViewContext.Ro ...

  3. C++ this指针

    成员函数不能定义 this 形参,而是由编译器隐含地定义.成员函数的函数体可以显式使用 this 指针,但不是必须这么做.如果对类成员的引用没有限定,编译器会将这种引用处理成通过 this 指针的引用 ...

  4. sql 选取分组中的第一条,显示聚合以外的列,having字句的使用

    分组中的第一条:select * from(select row_number() over(partition by 列1,列2,... order by 列1,列2,...) as rownum ...

  5. python中网络编程

    网络编程软件架构介绍: C/S:客户端,服务端 B/S:浏览器,服务端 # 常见应用: 1.手机端看着感觉是c/s架构其实更多的是b/s架构,例如微信小程序,支付宝第三方接口 2.pc端:b/s比较火 ...

  6. 高性能HTTP加速器Varnish-3.0.3搭建、配置及优化步骤

    经过一天的努力,终于将Varnish缓存服务器部署到线上服务器了.趁着热乎劲儿,赶紧给大家分享一下.Varnish是一个轻量级的Cache和反向代理软件.先进的设计理念和成熟的设计框架是Varnish ...

  7. 20165319 Exp6 信息收集与漏洞扫描

    实验过程 whois 在虚拟机Kali的终端输入命令:whois gitee.com,查询码云的域名注册信息. dig或nslookup域名查询 在kali终端输入dig 网址或nslookup 网址 ...

  8. leetcode刷题六<z字形变换>

    将一个给定字符串根据给定的行数,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 时,排列如下: L C I R E T O E S I I G E D H N 之后,你的输出需要从左往右逐 ...

  9. 首次安装Ubuntu

    初试Ubuntu 双系统的安装 situation: dell(2017购) 固态250G+机械硬盘500G 已经安装windows 10 BIOS 为 UEFI rufus(向U盘写入镜像) Ubu ...

  10. 自我介绍&软工实践博客点评

    想想既然写了点评博客,那就顺便向同学们介绍下自己吧. 我是16届计科实验班的,水了两件小黄衫,于是就来当助教了_(:_」∠)_ 实话说身为同届生来当助教,我心里还是有点虚的,而且我还是计科的..感觉软 ...