下面我就说一下我自己知道的一些方法,不过应该也涵盖了大部分获取面试机会的方法。
关注大厂官网,随时投递简历(走流程的网申);
找到师兄师姐或者认识的前公司的技术牛人,帮忙内推(能够让你避开网申简历筛选,笔试筛选,还是挺不错的,不过也还是需要你的简历够棒);
求职类网站投递简历(不是太推荐)。
除了这些方法,我也遇到过这样的经历:有些大公司的一些部门可能暂时没招够人,然后如果你的亲戚或者朋友刚好在这个公司,而你正好又在寻求 offer,那么面试机会基本上是有了,而且这种面试的难度好像一般还普遍比其他正规面试低很多。
想要取得一份自己满意的 offer,前提是自己要有过硬的实力作为资本,下面就如何提高个人硬实力给大家提几点建议!
如何提高个人硬实力及大厂 Java 后端面试主要问些什么??
我在这里所说的个人硬实力更多的指的是个人的专业能力,比如构建高质量网站的能力或者是对专业知识的掌握程度。
我觉得不论是对于新手还是老手,想要提高个人硬实力最重要的就是不断深入学习并且将理论实践,最好可以将理论在具体项目中实践一下。
想要提高个人硬实力,那么学习一门新技术的方法一定是至关重要了。下面分享一下《 Java 工程师修炼之道》一书对于学习一门新技术的一些要点(在这以图片的方式整理了出来,更加方便阅读):
一定要有自己的技术优势,可能你懂得不是最多的,但是别人不会的你却会,那么你就是厉害的!然而如何准备大厂面试?我觉得最关键的一点之一就是搞清楚大厂面试主要在问些什么。下面我将分解每一个知识点,给大家简单说一下大厂面试主要会问些什么?
首先你要明确的是面试官所问的内容一定和你简历所写的东西是紧密联系的,一般你没有记录简历上的技能,面试管很少会去提问。
大厂面试大体上包括下面几方面知识类型:
Java 基础、多线程、IO 与 NIO、虚拟机、设计模式
面试官在多线程这一部分很可能会问你有没有在项目中实际使用多线程的经历。所以,如果你在你的项目中有实际使用 Java 多线程的经历 的话,会为你加分不少哦!
设计模式比较常见的就是让你手写一个单例模式(注意单例模式的几种不同的实现方法)或者让你说一下某个常见的设计模式在你的项目中是如何使用的,另外面试官还有可能问你 “ 抽象工厂 ” 和 “ 工厂方法模式的区别 ” 、“ 工厂模式 ” 的思想这样的问题 ” 。
建议把代理模式、观察者模式、(抽象)工厂模式好好看一下,这三个设计模式很有用。
数据结构与算法(要有手写算法的能力)
数据结构比较常问的就是:二叉树、红黑树(很可能让你手绘一个红黑树出来哦!)、二叉查找树(BST)、平衡二叉树(Self-balancing binary search tree)、B - 树,B + 树与 B * 树的优缺点比较、 LSM 树这些知识点。数据结构很重要,而且学起来也相对要难一些。建议学习数据结构一定要循序渐进的来,一步一个脚印的走好。一定要搞懂原理,最好自己能用代码实现一遍。
计算机网络(TCP 三次握手和四次挥手)
数据通信(RESTful、RPC、消息队列)
如果你的简历上写了你会某个RPC框架(比如:阿里的开源的dubbo)或者消息队列(比如:RabbitMQ、Kafka)的使用的话,面试官一般会以你写在简历上的技术提问,回答的时候最好能结合在项目中的实际使用。
性能优化及操作系统(常见优化方式,Linux 的基本命令以及使用)
主流框架(Spring 底层原理与源码问的很多)
Spring一般是不可避免的,如果你的简历上注明了你会 Spring Boot 或者 Spring Cloud 的话,那么面试官也可能会同时问你这两个技术,比如他可能会问你 springboot 和 spring 的区别。 所以,一定要谨慎对待写在简历上的东西,一定要对简历上的东西非常熟悉。
另外,AOP 实现原理、动态代理和静态代理、Spring IOC 的初始化过程、IOC 原理、自己怎么实现一个 IOC 容器?这些东西都是经常会被问到的。
数据存储(最常见的是 MySQL、Redis)
分布式(分布式锁,事务等)
多线程并发
从架构设计,到应用层调优,再深入了解底层原理,扎实的Java基本功才能让自己变为扫地神僧:内存模型,并发模式,线程模型,锁细节等等…
**除了这
《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》
【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享
些东西还有什么其他问题:**
实际场景题
实际场景题就是对你的知识运用能力以及思维能力的考察。建议在平时养成多思考问题的习惯,这样面试的时候碰到这样的问题就不至于慌了。另外,如果自己实在不会就给面试官委婉的说一下,面试官可能会给你提醒一下。切忌不懂装懂,乱答一气。
面试官可能会问你类似这样的问题:
假设你要做一个银行 app,有可能碰到多个人同时向一个账户打钱的情况,有可能碰到什么问题,如何解决(锁)?
你是怎么保证你的代码质量和正确性的?
下单过程中是下订单减库存还是付款减库存,分析一下两者的优劣。
同时给 10 万个人发工资,怎么样设计并发方案,能确保在 1 分钟内全部发完。
如果让你设计 xxx 系统的话,你会如何设计。
生活
一般到最后的 HR 面的时候,面试官基本就是和你聊聊天。他可能会问你类似如下的问题:
父母是做什么的,具体一点
自己平时是如何学习的
平时的兴趣爱好是什么
性格/其他
主要是看你个人的性格以及价值观是否适合他们公司,比如他会问你类似下面的问题:
遇到压力大的情况自己是如何处理的
遇到很难解决的困难怎么办
遇到不是很喜欢同项目组的某个成员的情况怎么办
如何看待加班
你觉得自己有什么缺点/优点
总结强调
一定要谨慎对待写在简历上的东西,一定要对简历上的东西非常熟悉。因为一般情况下,面试官都是会根据你的简历来问的;能有一个上得了台面的项目也非常重要,这很可能是面试官会大量发问的地方,所以在面试之前好好回顾一下自己所做的项目;和面试官聊基础知识比如设计模式的使用、多线程的使用等等,可以结合具体的项目场景或者是自己在平时是如何使用的;建议提前了解一下自己想要面试的公司的价值观,判断一下自己究竟是否适合这个公司。
最后