Java Recruitment(1)

本文详细解读了Java研发岗位在阿里巴巴、百度、头条等公司的要求,涵盖了计算机基础(数据结构、算法、操作系统)、编程语言、Spring、数据库(SQL、MySQL、Redis)、微服务与分布式、工具(IDEA、Git、Docker)及实战项目。建议求职者掌握设计模式,熟悉Spring Boot、SpringMVC、MyBatis,以及数据库管理和分布式技术。

Java 秋招,相关资料分析(1)

阿里对Java研发岗的要求:
在这里插入图片描述
百度对Java岗位的要求:
在这里插入图片描述
头条对于Java岗位的要求:
在这里插入图片描述
分析,对于Java研发岗位的要求不单独针对于一门语言或某些技术,更看重对计算机基础的掌握能力,需要有一定的项目经验,对于Linux,Unix系统下的应用开发基本掌握。

一、计算机基础

1.数据结构与算法

非常重要
数据结构是一种具有一定逻辑关系,在计算机中应用某种存储结构,并且封装了相应操作的数据元素集合。 它包含三方面的内容,逻辑关系、存储关系及操作。 不同种类的数据结构适合于不同种类的应用,而部分甚至专门用于特定的作业任务。 例如,计算机网络依赖于路由表运作,B 树高度适用于数据库的封装。
算法:《算法导论》、Leetcode、《算法》
LeetCode Cookbook
Leetcode 300

2.计算机操作系统

在进行服务端高性能编程时,也经常会用到内存、进程、线程、IO相关的知识,也是面试考察的一个重点。
在这里插入图片描述

4. 设计模式

需要结合自己项目,说出常用的几个设计模式,比如:单例、工厂、简单工厂、建造者等。

二、编程语言

虽然岗位要求没有特别强调编程语言,但在校招中,这部分和计算机基础是同等重要的。
通过学习C语言,可以更好地理解Java, 比如为什么Java只有值传递,没有引用传递。
下面是一个链接,关于技术面试必备知识,Leetcode, 计算机操作系统, 计算机网络,系统设计等知识。
CS-Notes
在这里插入图片描述

  • 对于Spring来说,要理解AOP和IOC这两个重要的概念;
  • 对于SpringMVC,要能理清处理请求的流程;
  • 对于MyBatis,要能掌握分页、延迟加载。
  • 对于MyBatis,要能掌握分页、延迟加载。

由于 Spring 的快速发展,它逐渐从一个轻量级的开发框架变成了一个“庞然大物”,越来越笨重,导致搭建一个应用程序的成本越来越高,于是 Spring Boot 就应运而生了,它只需要很少的配置就可以搭建出一个独立应用。Spring Cloud 利用 Spring Boot 的开发便利性,巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等。

三、数据库

SQL: 基础的SQL语句一定要熟,还有数据库的基本知识;
MySQL: MySQL是目前互联网公司用的最多的数据库,要能掌握:索引、事务、锁、存储引擎、主从引擎、主从复制、分库分表等知识。

推荐学习网站:MySQL Tutorial

Redis: 由于数据量越来越庞大,为了减轻数据库的压力,一般都会使用Redis作为缓存,Java工程师一定要能掌握Redis的基本数据类型和持久化方式,还要能理解缓存与数据库一致性的问题,对缓存穿透和缓存雪崩也要有所了解。

四、微服务\分布式

该部分不是校招的必选项,如果不是很擅长的话,尽量不要在简历上突出。
消息队列:消息队列是分布式系统中重要的组成部分,当不需要立即获取结果,但并发量又需要进行控制的时候,消息队列就派上了用场。目前主流的消息队列又RabbitMQ, Kafka等。
在这里插入图片描述
注册中心:注册中心本质上是为了解耦服务提供者和服务消费者,Zoopkeeper是注册中心的典型代表。
分布式框架:目前主流的是Dubbo和Spring Cloud。

五、工具

Intellij IDEA
Git:版本控制
Maven/Gradle: 项目构建, 所谓的项目构建指的是完成工程发布流程需要的一系列步骤,包括编译、测试、打包、部署等,Maven/Gradle 是目前最流行的两款项目构建工具。
Docker:
它将应用程序与该程序的依赖,打包在一个文件里面。只要运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样,这样就不用再担心环境问题了 。

六、实战项目

大学阶段,重视计算机基础的同时,一定要拉出来一个项目自己亲手体验一把,不要纠结这个项目多少人做过 ,通过这个项目来巩固自己学过的基础知识。
推荐的Java练手项目:
SpringBoot完整电商系统Mall
包括前台商城系统及后台管理系统,基于 SpringBoot+MyBatis 实现。

miaosha
秒杀系统设计与实现
vhr
微人事是一个前后端分离的人力资源管理系统,项目采用SpringBoot+Vue开发。
halo
要学会做减法,还有算法题很重要。

七、补充

要学会做减法,还有算法题很重要。

相关链接

1.https://github.com/CyC2018/CS-Notes
2.https://github.com/CyC2018/CS-Notes

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值