给北上奋进的你一份礼物(java面试知识储备攻略)

写在前边:

自己带了近俩年的俩个小伙伴要脱离公司,去北上发展,自己其实提供不了太多帮助,想起自己那几年在帝都面试or被面试的场景,在看看他们迷茫的不知道该准备点什么知识去应对面试的情况下,思考了一下午,写到手腕发疼,于是就有了下边的内容。(本来不准备开放,但是想想也会有像他们一样一到俩年认真工作的小伙伴们准备跳槽...只是个人凭个人面试被面经验出发,不一定全面,仅供参考)。

JAVA面试需要注意点。

知识点: 【加粗为必掌握项、斜体为了解项、下划线为加分项[csdn下划线不显示,想了半天就代码块替代吧]】

基础(该项内容掌握越多越优越)

java的集合容器 -> 各自的父类or接口<u>各自底层算法与扩容机制</u>各自工具类方法

多线程 -> 生命周期<u>应用场景or解决方案、并行、并发实现多线程的方式(方法)</u>,死锁高级线程知识eg:线程阻塞、线程锁等

反射与对象拷贝 -> 反射的概念、对象拷贝的概念<u>深浅拷贝的区别,序列化与反序列化</u>对象拷贝的应用场景。

异常 -> 异常概念知识<u>异常与错误的区别</u>,<u>运行时异常与非运行时异常(编译异常?)有哪些</u>。如何在项目中写最大异常类与其应用场景

设计模式 -> 代理模式、工厂模式、单例模式、建造者模式<u>动态工厂模式、动态代理模式的应用场景、如何实现动态代理、如何实现动态工厂模式</u>,spring(spring boot) 为什么要用动态代理模式来设计。

网络 -> 三次握手,http与https的区别<u>300、400、500响应码代表什么、跨域(同源策略)、如何实现跨域(解决跨域的几种方式)。</u>TCP、OSI七层模型、

java web -> 其实这项问的很少了、主要需要 session 与 cookie的区别、get与post的区别<u>session的工作原理(其实基于cookie)</u>

java8新特性 -> 这一项单独写出来,可见其重要性,这里没什么需要掌握的、毕竟代码多,<u>但是需要知道java新特性有些啥</u>,函数式编程(lambda表达式)的优点缺点(理解项)

框架 (该项内容为重点加强项)

Spring -> 注解(越多越好、并且需要知道解决什么问题)注入方式、bean的作用域、如何开启注解<u>底层原理</u>,<u>工作原理</u>,<u>spring的模块有哪些</u>,<u>IOC/DI/AOP</u>spring 中单例bean 的线程问题<u>@Component与@Bean的区别</u>、这里有个超级加分项,不过也是个大坑。-> spring 事务、隔离级别、事务等级、注解、应用场景

Spring Boot -> 注解(越多越好、并且需要知道解决什么问题),<u>如何更改bean的加载顺序、如何解决相同id的bean的注入。</u><u>有哪些start</u>spring 与 spring boot 的区别<u>spring boot启动类的注解由那些注解构成、*各自作用*</u>spring boot中定时任务的实现、spring boot start各自的作用

Spring Cloud -> 注解(越多越好、并且需要知道解决什么问题)<u>spring cloud一般上来会问 有那些组件、各自的用途</u>,<u>分布式、微服务、集群各自区别、概念、</u>应用场景<u>RPC与REST的区别</u>。这里有个超级加分项,不过也是个大坑,弄不好整个面试都丢掉。-> 微服务的事务解决方案

MyBatis -> 注解(越多越好、并且需要知道解决什么问题),这个一般问一个经典问题 -> # 与 $ 的区别,说了区别最好说下是如何防止的二级缓存

MyBatis plus -> 多租户与mybatis的区别

中间件 (该项中有则加分无则扣分)

MQ系列 -> 这东西,队列有几种、区别<u>应用场景</u>。

ELK系列 -> 这东西、随着大数据、高并发一度狂热,眼下成了面试的亲儿子,(注意:应用场景一定要心中有数、比如你用来做搜索引擎,那为什么要用他,又或是日志收集,那你为什么又要用他),搭建不会问你怎么搭,他也不会让你亲自电脑搭建,你只需要知道他的原理,以及用作搜索应用(<u>分词器、高亮</u>)。

shiro -> 单独写出来,可见其重要性,你要知道,没有一个项目是不需要授权模块的,不是Spring Security就是它,你不需要立刻上手了解他,但是你需要知道他的实现方式,最起码类名你得记几个。

activiti -> 这东西如果你会、想加分写就对了、如果不会、那就不要自找麻烦。需要了解那几个工作引擎类

DB(这是你吃饭的家伙,你说呢!)

关系型数据库 -> mysql的聚合函数(<u>需要知道一些特殊的、非常常见的</u>)、左 join,内 join、右 join的区别执行一条查询语句,mysql是如何处理的(其实就是底层的运行机制)<u>mysql的数据库引擎,那俩个(i 与 m)的区别</u>行锁、表锁,超级加分项 -> <u>事务</u>事务的特性<u>如何开启一个事务</u>隔离级别与其对应出现的问题

非关系型数据库 -> redis、mongodb的区别、应用场景,redis的数据类型常问的问题 redis挂掉了怎么办,redis如何落地,等等实际应用问题,你要么说 应用场景简单,要么就背一段高级的,不过毕竟没实际应用场景,所以你觉得怎么来舒服就怎么来。

送命题 (为什么叫送命题呢、这些题看你是否敢写,敢答、工作经验敢够 {悄悄跟你讲,这些都会使简历眼前一亮})

JVM -> 这不用说了,我tm也不太懂,<u>调优、jvm的组成、各自的职责</u>,你不怕死随便写。

大数据 -> 这东西、别了、我反正不敢写、毕竟那些大数据框架我一个也不认识,如果你愿意那就随意找网上的随意写写,可以给简历增加亮点,碰上真大佬你就GG了。

算法 -> 帝都 10家公司,4家可能有机试、或者笔试、这东西、你就练吧、不练也没办法啊,这我怎么给你找标准答案。 <u>位移可以了解,有时候会口头问你,比如 2 向右位移2位 是多少?</u>

项目 -> 这个真的是重点中的重点,第一、你一定要有一个上线的项目(好在你们都有、而且不止一个)。第二、你自己负责过的东西,一定要牢记心中,熟悉每一个业务流程,如果忘了,那就不要继续下去,破坏影响分(但这个指的是前1年左右的项目、而不是最后的项目,最后的你忘了,那你就真凉了),第三、有些复杂的业务、一定要提前说、自己代码上是如何实现的,能套知识点就套知识点,啥切面、拦截器、设计模式、一把套就对了,前提是你对这些都有了解。

逻辑思维或者说现场应答能力

一般分为算法题,比如啥黑皇后,二分、(什么鸡蛋从几楼扔下去会碎啥的),这个可以做了解,现场大胆答就行,有时候面试的提出来,他也不一定就能想好答案,实际考验你的其他方面。

二般就是有个啥样的功能,让你从DB开始设计,这种一定不要慌,一定不要慌,一定不要慌,找笔、找字,往下写就对了,尽量接口驱动DB,这样不会被抓住啥状态忘了、或者设计缺陷啥的。

最后,祝各位相识一场的小伙伴,北上一切顺利,找到自己可以发展提高自己的平台,不论大小,有提升就好.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值