回顾一下本身这段时间的经历,去年十二月份的时候,公司通知了裁人,我匆匆忙忙地出去面了几家,但最终都没有拿到offer,我感受今年的寒冬有点冷。后续的面试过程我作了一些准备,基本都能走到hr面,后面我也顺利地拿到了offer,我给你们分享下个人求职体会,但愿能给你们一些参考。java
金三银四背后,一个JAVA程序员的面试心得mysql
下面说一下本身面试过程遇到的一些具体题目和面试心得。linux
阿里面试题程序员
金三银四背后,一个JAVA程序员的面试心得web
多个线程同时读写,读线程的数量远远大于写线程,你认为应该如何解决并发的问题?你会选择加什么样的锁?面试
JAVA的AQS是否了解,它是干吗的?redis
除了synchronized关键字以外,你是怎么来保障线程安全的?算法
Tomcat自己的参数你通常会怎么调整?sql
你有没有用过Spring的AOP? 是用来干吗的? 大概会怎么使用?数据库
若是一个接口有2个不一样的实现, 那么怎么来Autowire一个指定的实现?
若是想在某个Bean生成并装配完毕后执行本身的逻辑,能够什么方式实现?
SpringBoot没有放到web容器里为何能跑HTTP服务?
SpringBoot中若是你想使用自定义的配置文件而不只仅是application.properties,应该怎么弄?
SpringMVC若是但愿把输出的Object(例如XXResult或者XXResponse)这种包装为JSON输出, 应该怎么处理?
若是有不少数据插入MYSQL 你会选择什么方式?
若是查询很慢,你会想到的第一个方式是什么?索引是干吗的?
查询死掉了,想要找出执行的查询进程用什么命令?找出来以后通常你会干吗?
读写分离是怎么作的?你认为中间件会怎么来操做?这样操做跟事务有什么关系?
分库分表有没有作过?线上的迁移过程是怎么样的?如何肯定数据是正确的?
你知道哪些或者大家线上使用什么GC策略? 它有什么优点,适用于什么场景?
JAVA类加载器包括几种?它们之间的父子关系是怎么样的?双亲委派机制是什么意思?有什么好处?
如何自定义一个类加载器?你使用过哪些或者你在什么场景下须要一个自定义的类加载器吗?
堆内存设置的参数是什么?
HashMap和Hashtable的区别。
实现一个保证迭代顺序的HashMap。
说一说排序算法,稳定性,复杂度。
说一说GC。
JVM如何加载一个类的过程,双亲委派模型中有哪些方法?
TCP如何保证可靠传输?三次握手过程?
京东面试题
金三银四背后,一个JAVA程序员的面试心得
java经常使用的数据结构有哪些?哪些是线程安全的?是怎么保证线程安全的?
Redis中的Lua有没有使用过? 能够用来作什么? 为何能够这么用?
线程池内部工做原理能够说一下么?
死锁是什么意思,造成条件是什么?出现死锁是能够经过什么方式去排查。
在交易过程当中如何放在用户在支付时的重复支付(交叉支付),请写出你了解的方案或使用的过的方案。
数据库索引有哪几种,他们之间的区别。
程序开发时经过开发工具DeBug调试时,控制台显示的内容都包含什么?哪些内容能够帮助你发现问题和解决问题。
RPC通讯过程当中,假设A系统提供了一个方法入参是一个JavaBean,出参也是一个JavaBean。另外两个系统B系统、C系统调用接口,调用方B想让提供方A增长一个返回参数,假设服务提供方A增长了返回参数,请问C系统调用方须要作什么处理?
了解哪些设计模式,用伪代码实现一个你熟悉的设计模式。
讲一下怎么使用分布式锁。
说说HashMap的原理, 以及HashMap如何扩充bucket的大小。
Redis的Pipeline是用来干什么的?
Mysql索引的分类(Btree, hash),各自使用什么状况 。
说说Myisam, Innodb区别。
知道哪些负载均衡算法。
说一下Btree的查找原理。
简述三次握手,若是c端发起握手请求,s端没法马上创建链接应该回应什么?
去哪儿网面试题
金三银四背后,一个JAVA程序员的面试心得
自我介绍,项目介绍。
mysql数据库调优。
sql优化。
like能用索引吗?
java对象四种引用。
GC原理。
jvm内存结构。
说一下你学过jvm 在书写代码上对你有什么帮助和提升。
千万数据量的查询你会怎么作?
HashMap在jdk1.7和1.8的区别,为何引入这个概念?hash碰撞怎么解决,为何1.8要比1.7更好,好在哪?
关于你的项目,若是并发很大,你会怎么改造。
方法区里什么样的对象有可能被回收。
线上cpu飙升100%你怎么处理。
频繁FullGC怎么处理。
线程池建立有几种,为何建立定长的线程池个数最好是5,10,15这样的数字。
linux命令。
伊甸区和幸存区可动态变化吗?
redis和memcached区别。
说几个jdk命令,jmap是什么意思。
若是并发很大,你对数据的正确性怎么保证。
饿了么面试题
金三银四背后,一个JAVA程序员的面试心得
http和https的区别,https原理,http2.0与1.0的区别。
Java的垃圾回收机制,Java文件加载机制,tomcat类加载机制,锁机制,jvm原理及线上调优,jvm内存模型。
多线程,有哪些能够保持进程同步的方法,建立线程的几种方法,对i++多线程访问你会怎么作。
Java的设计模式,单例有什么模式,懒汉为何加volotile,volotile的内存屏障,如何避免死锁。
考虑单例模式的编写,要线程安全且内存消耗小(剑指offer原题)。
String、StringBuilder、StringBuffer区别;String类能被继承吗?为何?
在白纸上手写二分法排序算法(lintcode上原题);二分查找的思想。
查找单链表中倒数第k个节点的算法,手写(lintcode上原题);最多见的排序算法你见过哪些,快排的基本思想及时间复杂度。
常见的数据结构有哪些。
hashmap、hashcode同样,不equals怎么处理 ;hashcode实现原理,currentHashMap原理,实现细节,怎么实现同步的;类为何要有hascode方法,是否是主要在集合类中都要实现hashcode方法;equals方法怎么实现;两个不一样的对象可能有相同的hashcode值吗;经常使用集合有哪些。
tcp三次握手,四次挥手协议。
架构设计一个开发性问题,设计一个Nginx管理的中间件,怎么设计。
全部的类都继承与object,你用过object类的直接子类有哪些,object类经常使用的方法有哪些。
Java会出现内存泄漏吗,若是回,在哪一种状况下?
抽象类和接口的区别。
平时怎么扩展本身的专业知识水平。
百度面试题
金三银四背后,一个JAVA程序员的面试心得
什么是 Java 的反射机制。
Cookie 和 Session的区别。
get 和 post请求的区别。
IOC的优势是什么。
IO 和 NIO的区别,NIO优势。
JRE、JDK、JVM 及 JIT 之间有什么不一样。
Hashcode 的做用。
简述一致性 Hash 算法。
创一个小群,供你们学习交流聊天
若是有对学JAVA方面有什么疑惑问题的,或者有什么想说的想聊的你们能够一块儿交流学习一块儿进步呀。
也但愿你们对学JAVA可以锲而不舍
JAVA爱好群,
若是你想要学好JAVA最好加入一个组织,这样你们学习的话就比较方便,还可以共同交流和分享资料,给你推荐一个学习的组织:快乐学习JAVA组织 能够点击组织二字,能够直达
为何在重写 equals 方法的时候须要重写 hashCode 方法?equals与 hashCode 的异同点在哪里。
为何 Map 接口不继承 Collection 接口。
说出几点 Java 中使用 Collections 的最佳实践?
GC是什么?为何要有GC。
何时会致使垃圾回收。
GC 有几种方式?怎么配置。
何时一个对象会被GC? 如何判断一个对象是否存活。
垃圾回收器的基本原理是什么?
Serial 与 Parallel GC之间的不一样之处。
JVM 中一次完整的 GC 流程是怎样的? 对象如何晋升到老年代。
吞吐量优先和响应优先的垃圾收集器选择。
说说你知道的几种主要的jvm 参数。
Java中存在内存泄漏问题吗?请举例说明。
什么是线程,多线程的优势是什么?以及简单说一下多线程的几种实现方式。
ThreadLocal 用途是什么,原理是什么,用的时候要注意什么?
线程池是什么?为何要使用它?如何建立一个Java线程池?
ThreadPool用法与优点能够说一下么?
synchronized 的原理是什么?synchronized 和 ReentrantLock 有什么不一样?
有T1,T2,T3三个线程,怎么确保它们按顺序执行?怎样保证T2在T1执行完后执行,T3在T2执行完后执行同步块内的线程抛出异常会发生什么?
什么是乐观锁(Optimistic Locking)?如何实现乐观锁?如何避免ABA问题。
Java中活锁和死锁有什么区别?
Executors类是什么? Executor和Executors的区别?
什么是设计模式(Design Patterns)?你用过哪一种设计模式?用在什么场合?
你能写出三种单例模式实现么?
你知道Google是如何在一秒内把搜索结果返回给用户?
高并发下,如何作到安全的修改同一行数据?
如何避免浏览器缓存。
大型网站在架构上应当考虑哪些问题?
最近有在看什么书么,印象最深入的是什么?
大家线上应用的 JVM 参数有哪些?
能简单说下你对算法的理解么?
面试心得
准备要充分,知识面要尽可能的广,同时深度也要够。
面试安排上,若是不着急,尽可能给本身留多时间,两天一家,及时作总结和补充。
心态要放平,当作一次技术交流,面试要看一部分的运气,也要看一些眼缘,有的面试官一张嘴你就能感受到你此次面试完了。想去的公司没有面试好,不要气馁,继续加油准备。
简历投递方面,拉勾上投了不少常常不匹配,多是我学历问题(自考本),有一些打击自信心,若是有一样感觉的,不妨换BOSS或者其余平台。避免打击自信心。
写简历必定要体现本身的优点,最好能体现相似于,用到了什么技术,解决了什么问题。简历上写到的必定要成竹在胸。
相似于你的优点是什么,你以为你项目中作的比较好的地方有哪些,你能给公司带来什么,这种问题内心要先想一些,省得临场发挥容易紧张说很差。
我所经历的面试,通常技术面最少是两轮。若是一轮后让你走了,而你还自我感受良好,那我以为你有必要回顾一下面试内容,并一条一条找找该问题的相关内容,大部分问题就在于你没有答到点子上,多是深度不够,也多是扩展不够,继续加油。
我本身收集了一些Java资料,里面就包涵了一些BAT面试资料,以及一些 Java 高并发、分布式、微服务、高性能、源码分析、JVM等技术资料
因为平台规则限制,须要获取资料的朋友们能够关注小编,后台私信“架构资料”获取。
合理利用本身每一分每一秒的时间来学习提高本身,不要再用"没有时间“来掩饰本身思想上的懒惰!趁年轻,使劲拼,给将来的本身一个交代!