你是否也想过在短时间内通过Java的面试,这些你了解了吗?不要孤军奋战。

201 篇文章 0 订阅
6 篇文章 0 订阅

不论是校招还是社招都避免不了各种面试、笔试,如何去准备这些东西就显得格外重要。不论是笔试还是面试都是有章可循的,我这个“有章可循”说的意思只是说应对技术面试是可以提前准备。 我其实特别不喜欢那种临近考试就提前背啊记啊各种题的行为,非常反对!我觉得这种方法特别极端,而且在稍有一点经验的面试官面前是根本没有用的。建议大家还是一步一个脚印踏踏实实地走。

运筹帷幄之后,决胜千里之外!不打毫无准备的仗,我觉得大家可以先从下面几个方面来准备面试:

  1. 自我介绍。(你可千万这样介绍:“我叫某某,性别,来自哪里,学校是那个,自己爱干什么”,记住:多说点简历上没有的,多说点自己哪里比别人强!)
  2. 自己面试中可能涉及哪些知识点、那些知识点是重点。
  3. 面试中哪些问题会被经常问到、面试中自己改如何回答。(强烈不推荐背题,第一:通过背这种方式你能记住多少?能记住多久?第二:背题的方式的学习很难坚持下去!)
  4. 自己的简历该如何写。

“80%的offer掌握在20%的人手中” 这句话也不是不无道理的。决定你面试能否成功的因素中实力固然占有很大一部分比例,但是如果你的心态或者说运气不好的话,依然无法拿到满意的 offer。运气暂且不谈,就拿心态来说,千万不要因为面试失败而气馁或者说怀疑自己的能力,面试失败之后多总结一下失败的原因,后面你就会发现自己会越来越强大。

另外,大家要明确的很重要的几点是:

  1. 写在简历上的东西一定要慎重,这可能是面试官大量提问的地方;
  2. 大部分应届生找工作的硬伤是没有工作经验或实习经历;
  3. 将自己的项目经历完美的展示出来非常重要。

笔主能力有限,如果有不对的地方或者和你想法不同的地方,敬请雅正、不舍赐教。

面试可能会问哪些问题?

希望通过这些问题,能够让大家学习更有方向,而不是单纯把这些问题都背会了!

另外,内容会继续完善,欢迎你在评论区说出你遇到的高频面试题!

Java

“ Java 基础这部分一些简单的问题就直接没有放上来。

基础:

  1. Java 反射?反射有什么缺点?你是怎么理解反射的(为什么框架需要反射)?
  2. 谈谈对 Java 注解的理解,解决了什么问题?
  3. 内部类了解吗?匿名内部类了解吗?
  4. BIO和NIO区别,4核cpu,100个http连接,用BIO和NIO分别需要多少个线程
  5. 假如我们需要存500个数需要多大的HashMap?
  6. HashMap的负载因子。

jvm:

  1. jvm 内存结构
  2. jvm 调优参数
  3. 什么是类加载?
  4. 何时类加载?
  5. java的类加载流程?
  6. 知道哪些类加载器。类加载器之间的关系?
  7. 类加载器之间的关系?
  8. 类加载器的双亲委派 (结合tomcat说一下双亲委派)
  9. 为什么需要双亲委派
  10. Java内存模型
  11. 栈中存放什么数据,堆中呢?
  12. 大对象放在哪个内存区域
  13. 堆区如何分类
  14. 垃圾回收有哪些算法
  15. GC的全流程
  16. GC中老年代用什么回收方法?

多线程:

  1. Java线程池有哪些参数?阻塞队列有几种?拒绝策略有几种?
  2. 死锁

设计模式:

  1. 阅读Spring源码的时候什么设计模式最让你影响深刻?如何使用?
  2. 单例模式,单例模式的使用场景
  3. 观察者模式,观察者模式的使用场景

Spring

  1. spring boot和spring的区别
  2. ioc 和 aop(ioc流程、aop实现原理)、spring aop异常处理、当一段代码被try catch后再发生异常时,aop的异常通知是否执行,为什么?
  3. spring bean的生命周期说一下
  4. spring data jpa底层是什么?
  5. hibernate和mybatis区别
  6. spring boot 过滤器
  7. spring boot 拦截器
  8. Spring动态代理默认用哪一种
  9. 写出spring jdk动态代理的实现。
  10. 画出spring boot处理一个http请求的全过程

权限认证(答案已经完成)

  1. 认证 (Authentication) 和授权 (Authorization)的区别是什么?
  2. 什么是Cookie ? Cookie的作用是什么?如何在服务端使用 Cookie ?
  3. Cookie 和 Session 有什么区别?如何使用Session进行身份验证?
  4. 如果没有Cookie的话Session还能用吗?
  5. 为什么Cookie 无法防止CSRF攻击,而token可以?
  6. 什么是 Token?什么是 JWT?如何基于Token进行身份验证?
  7. 什么是OAuth 2.0?
  8. 什么是SSO(单点登录)

微服务/分布式(答案已经完成)

  1. 为什么要网关?
  2. 限流的算法有哪些?
  3. 为什么要分布式 id ?分布式 id 生成策略有哪些?
  4. 了解RPC吗?有哪些常见的 RPC 框架?
  5. 如果让你自己设计 RPC 框架你会如何设计?
  6. Dubbo 了解吗?Spring Cloud 了解吗?

数据库

  1. 非关系型数据库和关系型数据库的区别?
  2. 事务的四大特性
  3. MySQL 事务隔离级别?默认是什么级别?
  4. 乐观锁与悲观锁的区别
  5. 数据库两种存储引擎的区别
  6. 最左前缀匹配原则及它的原因
  7. 大表优化的思路
  8. where和having的区别
  9. 分库分表
  10. explain 命令

索引

  1. 如何加快数据库查询速度
  2. 聚集索引和非聚集索引的区别
  3. 什么时候不该使用索引?
  4. 索引底层的数据结构?
  5. B+树做索引比红黑树好在哪里?

Redis:

  1. 项目中 redis 是怎么用的?解决了什么问题?
  2. 说一下有缓存情况下查询的流程以及有缓存情况下修改的流程。
  3. redis有哪些数据结构
  4. redis内存满了怎么办
  5. redis内存淘汰算法除了lru还有哪些
  6. 分布式缓存可能出现的问题
  7. 缓存穿透问题

网络

  1. 计算机网络的一些常见状态码
  2. ping 所使用的协议
  3. TCP的三次握手与四次挥手的内容
  4. TCP为什么连接是三次握手而断开是四次握手
  5. TCP与UDP的区别及使用场景
  6. 一次完整的HTTP请求所经的步骤
  7. http 如何保存登录信息(没太搞懂意思)
  8. Cookie 和 Session的关系

算法和数据结构

算法

  1. LRU 算法了解吗?你能实现一个吗?
  2. 写排序算法(快排、堆排)

数据结构

  1. 布隆过滤器了解吗?

设计题

  1. 假如有10亿个数,只有一个重复,内存只能放下5亿个数,怎么找到这个重复的数字?
  2. 如何设计一个秒杀系统(服务端、数据库、分布式)?分布式系统的设计?
  3. 有一个服务器专门接收大量请求,怎么设计?
  4. 如果让你自己设计 RPC 框架你会如何设计?
  5. 怎么快速出现一个stackoverflow错误?

其他问题

  1. 自我介绍。
  2. 说说你的项目中的亮点有哪些。
  3. 画一下你的项目的架构图。
  4. Restful 了解吗?简单说一下自己对它的认识,如果我要返回一个 boolean 类型的数据怎么办?

经验总结

  1. 多面试,不要害怕失败,多总结经验。
  2. 尽早准备,不论是找工作前、面试前还是面试后。
  3. 熟悉自己的简历。
  4. 电话和视频面试很平常,面试前提前准备一下。
  5. 坚持!offer 虽然可能会迟到,但是只要不放弃,就一定不会缺席。

初中级 Java 程序员必须掌握的知识。

具体的技能要求要看你应聘的公司!

  1. 熟练掌握数据结构、算法、操作系统、计算机网络等基础知识
  2. 熟练掌握Java编程、熟悉Java高并发开发手段、对JVM 虚拟机(Java内存区域、虚拟机垃圾算法、虚拟垃圾收集器、JVM内存管理)有一定研究
  3. 熟练掌握SOA分布式系统开发,具有优化系统性能、提高系统并发量以及系统可用性的实际经验
  4. 熟练掌握Struts2、Spring、Hibernate、Mybatis 等框架的使用,熟悉 Spring 原理
  5. 熟练掌握Dubbo、Zookeeper、常见的消息队列(比如ActiveMq)的使用
  6. 熟悉Linux 系统的使用,在Linux系统下具有实际的开发经验
  7. 熟悉MySQL数据库的使用、常见SQL语句的书写以及常见的优化手段
  8. 掌握 Spring Boot +Spring Cloud +Docker
  9. 了解Hadoop 生态相关技术中的 HDFS、Storm、MapReduce、Hive、Hbase

推荐一个学习过程中看的仓库

笔主自己开源的一个Java学习与面试项目,目前已经几个月是JavaTrending榜第一名了,目前已经有 65k+ star,我自己有点不那么实至名归,我也只是靠平时业余时间来维护,大家可以看一下,因该对大家学习Java有一点没有帮助。

这个仓库里面有常见知识点总结(目前还在继续完善中)、常见面试题、备战面试系列文章以及BATJ真实面经等内容。

  • 对于 Java 初学者来说: 本文档倾向于给你提供一个比较详细的学习路径,让你对于Java整体的知识体系有一个初步认识。另外,本文的一些文章 也是你学习和复习 Java 知识不错的实践;
  • 对于非 Java 初学者来说: 本文档更适合回顾知识,准备面试,搞清面试应该把重心放在那些问题上。要搞清楚这个道理:提前知道那些面试常见,不是为了背下来应付面试,而是为了让你可以更有针对的学习重点。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值