- Java锁的逻辑(结合对象头和ObjectMonitor)
- 还在用饼状图?来瞧瞧这些炫酷的百分比可视化新图形(附代码实现)⛵
- 自动注册实体类到EntityFrameworkCore上下文,并适配ABP及ABPVNext
- 基于Sklearn机器学习代码实战
众所周知,受疫情影响,互联网迎来了『寒冬』,大厂 HC 骤减,腾讯基本不招人,华为也不再是有手就行,阿里某些部门流传只招 23 所院校,在如此严峻的形势下,上岸大厂变得愈发困难... 。
大家好,我是一枫。本科末流 211,硕士中流 985,均是电子信息专业, 非科班、无实习、无比赛,最终上岸字节跳动,岗位是后端开发.
我是在读研的时候接触到的 Java,在 B 站学习了 Java 基础、MySQL 基础、JavaWeb、SSM、SpringBoot,但是那时候只是懂个皮毛,比如 MySQL 就只会 Insert、Update、Select、Delete,像什么索引、事务、慢查询等都一窍不通.
正式准备秋招是从 2022 年的一月份开始的,经过长达大半年的努力,拿到了 字节、美团、携程 等 offer,虽然说并不多,但也是很满意了.
在我的面试过程中, 基本上技术面都能够通过 ,很多是在 HR 面或排序中挂掉了,如蚂蚁、OPPO、蔚来等,在这里还是提醒一下大家, 如果有机会实习的话,一定要实习 ,因为现在后端开发比较卷,在大家知识面差不多的情况下,企业肯定还是会倾向于招聘有实习经验的同学,比如我在面京东的时候,面试官就很可惜的说,我虽然基础较好,但是前面的几个竞争者都有美团、华为等公司实习,我这方面比较吃亏,还安慰我说可能还有其他部门捞... 。
下面是对秋招整个过程的一点小建议,希望有所帮助.
因为我主要准备的是 Java 后端,下面说一下个人的经验.
在一场面试过程中,一般包括三方面的考察: 基础知识、项目经历、算法能力 ,都比较重要! 。
这方面涉及的内容比较多,我认为以下内容是较为重要的: Java 基础、JVM、Java 并发、MySQL、Redis、计算机网络、操作系统、Spring 。一般情况下,我会先看 B 站上的视频入门,然后再看书籍深入,不懂的或者欠缺的知识点再搜博客看.
Java 基础 。
对于 Java 基础部分,重点是 Java 集合,比如 HashMap,这块我没有看过具体的书籍(《Java 核心技术 卷一》一直在吃灰...),主要是看的博客和源码,也会看一些网上总结的面试指南,如 JavaGuide 、 CS-Notes 、 Java 面试小抄 等,都是非常全面的.
JVM 。
这块我以前也没了解过,一直感觉比较难,但后来面过几场试后发现,问得问题都比较固定,比如 Java 运行时的五大数据区域、垃圾收集算法&垃圾收集器、类加载过程等。推荐如下:
视频: 黑马程序员JVM完整教程,Java虚拟机快速入门,全程干货不拖沓 ,讲的挺不错的,简短精悍! 。
书籍:《深入理解 Java 虚拟机 第 3 版》,必读书籍,基本上面试的东西上面都有! 。
Java 并发 。
这块比较重要,面试高频点,比如 synchronized 锁升级、volatile 原理、ThreadLocal 原理、线程池原理等。推荐如下:
MySQL 。
这块比较重要,作为后端,我们需要经常和数据库打交道,推荐如下:
Redis 。
这块面试题较为固定,比如 Redis 的数据结构、持久化、哨兵、缓存击穿、缓存穿透、缓存雪崩、Mysql 和 Redis 的数据一致性等,推荐如下:
计算机网络 。
这块重点需要掌握以下协议:HTTP、HTTPS、DNS、TCP。推荐如下:
操作系统 。
这块我被问到的很少,基本也就是问一下为什么要有虚拟内存、进程调度有哪些算法等。推荐如下:
Spring 。
对于 Java 开发而言,Spring 肯定是非常重要的,推荐如下:
其他 。
因为没有实习,所以这块我是比较匮乏的,大家 能去实习还是要去实习 !我简历上一共写了两个项目,分别是牛客网的 仿牛客论坛 项目以及读研期间做的一个导师横向课题。因为做的横向课题与后端关系不大,基本没有被问过,大部分面试官都是问我仿牛客论坛项目.
仿牛客论坛这个项目涉及的内容挺丰富的,而且技术栈比较多,非常适合练手。我是在跟着敲完这个项目后,对项目进行了重构,比如它原先使用的是 Kafka,我换成了自己熟悉的 RabbitMQ,比如使用 SpringSecurity 和 JWT 重构了登录部分,又比如将项目重构出了一个前后端分离的版本(前端找的实验室同学做的)。本来还想着将私信功能用 WebSocket 进行重构,但是时间不够,我也不想再折腾了... 。
大家在做项目后,也可以想想能不能 利用自己的所学知识点对项目进行重构 ,同时提前想好如果面试官让介绍项目时应该如何说,问项目的亮点和难点时,应该怎么回答(如果实在没有亮点或难点,也可以说一下自己学到了哪些知识,比如如何限流的、用到了 Redis 的哪些数据结构等).
近些年来,算法是后端面试的重中之重,基本上每场面试都会写至少一道算法题,大家务必重视.
我是先看了《算法 第 4 版》这本书了解了一些基本的知识之后,便开始在力扣刷题了,一共刷了 200 道左右,主要刷的就是 Hot100 和 剑指 Offer ,期间也看了一遍 代码随想录 ,学习了挺多做题套路.
在刷题过程中,Hot100 是超级重点,很多面试官都会出上面的题目,基本上 Hot100 能吃透,面试题目问题不大,我整个秋招一共刷了 3 遍 Hot100 和 2 遍剑指 Offer,后期刷的速度越来越快,比如写快排基本都不用怎么想,几分钟就完整写出来了.
在准备秋招过程中,我觉得最重要的一件事就是 做笔记 了,毕竟后端的知识非常多,某个知识点一旦不回顾,可能很快就忘了,整个过程中,我一共记录了超过二十万字的笔记,有三百多页.
网上总结的知识点笔记一方面可能知识点不全,另一方面可能写的比较难懂,甚至有些错误。而自己整理的笔记,毕竟是写给自己看的,那么肯定是更易于理解的,下次忘了的时候也能够通过看笔记迅速回忆起来.
每隔一段时间,我都会全面复习自己的笔记,甚至『背诵』,而且会经常对自己的笔记进行重新整理,毕竟伴随着学习的深入,很多知识点可能理解的更为透彻.
大家如果需要我的笔记作为参考的话,可以关注或私信『一枫说码』,免费分享哈! 。
最后,大家要稳住心态, 不要放弃任何机会 ,加油,你一定会找到理想的工作! 。
最后此篇关于三无选手上岸大厂的后端校招经验的文章就讲到这里了,如果你想了解更多关于三无选手上岸大厂的后端校招经验的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我有一个使用 css 列的下拉菜单,当我使用 jquery slide() 时,它会调整下拉框的大小,并重排内容直到达到完整高度。 这是一个工作示例 https://codepen.io/peterg
我有一个带有嵌套 ScrollViewer 的 Expander,如下所示: 代码(简化版)
我想在所有 ajax 调用之后调用一些 javascript 函数。我知道如何调用每个单独的 ajax 调用中的函数,如下所示: function xyz() { if (window.XMLHttp
我想将值从应用程序端传递到 api。在此 api 调用中传递图像、名字、电子邮件、电话和位置。在 Debug模式下,检查值不会被传递。 代码下方 File file = null;
我正在尝试在使用reportlab生成的pdf中的表格后插入分页符,我正在使用以下函数生成pdf: def render_to_pdf(template_src, context_dict): t
CBPeripheralManager 是否有推荐的方法来终止连接。到目前为止我发现的最好的方法就是干脆不响应动态值,然后 BLE 堆栈似乎关闭了连接,但这似乎很粗糙。 一定有更好的方法吗? 最佳答案
我的 API 的 REST 端位于以下地址:http://test.jll.aplikacje-dedykowane.pl/rest/warehouse/all 。现在,我尝试返回在此页面准备的 JS
我有以下 CPP 代码。我想做的是,当我的 native 端发生错误时,我会通知 Java 该错误。我用了How can I catch SIGSEGV (segmentation fault) an
限制对象的方法之一是像这样给函数添加限制 def ten_objects(): obj = Model.objects.all()[0:10] # limit to 10 retur
我目前在电信公司实习,这是一个专业,也是本科生。我有很多选择。据我所知,我知道独立应用程序端的 c、c++、c#、java 语言,在移动端我尝试进入 android 世界,也知道 php、mysql、
我想让我的边框底部看起来像这样: 有一个 flex 的末端。目前它看起来像这样: 我尝试使用的 CSS 是 border-bottom-right-radius: 10px;。代码如下所示:
我有一个 Flutter 项目,突然间,据我所知,我没有做任何特别的事情..Android 端开始显示错误,我完全迷路了,我完全不知道哪里出了问题,也不知道为什么会这样。 这就是我打开 android
我有一个自定义对象列表 (List) 。我需要将此数据发送到 React Native 端以显示在平面列表中。我该怎么做?这个列表出现在 类 NativeToReact(reactContext:Re
我有这个代码: #if defined(NOT_STANDALONE) JNIEXPORT void JNICALL sumTraces (JNIEnv* env, jclass caller,
我有一个定义一对多模型关系的 Django 应用程序。模型如下所示: from django.db import models # Create your models here. class Str
我有以下代码,它根据 IFrame 内容的大小调整 IFrame 的大小: function setIframeHeight(id) {
如何创建自定义过滤器 angularjs javascript Controller 端?我想通过 SegmentId 在名为段的数组中搜索,以创建过滤器,该过滤器通过 SegmentId 在段数组搜
我的代码在 netbeans 8.0.2 中我几乎尝试了所有方法,但没有结果。请帮助我。如何在 netbeans 中显示它? 最佳答案 您只需单击源包(源文件),它就会显示您的项目文件。 关于java
我想这是纯 C++ 问题和 OpenGL 问题之间的一种交叉。我有一个统一的缓冲区,并在其中分配 sizeof(ShaderData) 字节的空间。我在着色器的 GPU 端使用 std140 布局。
我对 Hadoop 中 reduce 端的文件合并过程的理解有问题,因为它在“Hadoop:权威指南”(Tom White)中有所描述。引用它: When all the map outputs ha
我是一名优秀的程序员,十分优秀!