前不久刚从阿里面试回来,做的准备工作也是刷题和不断的充实自己的技术,其实目前阿里的面试题并不是现在流传的那样,不过还算好顺利拿到了offer,下面来跟大家分享一下。
在分享阿里巴巴Java面经前,我们不妨来看下Java程序员对于面试,要准备些什么:
一些重点技术
- Java程序员一定要学好重点的技术,如下面这些:
- 并发包:理解 ConcurrentHashMap原理,线程池,异步并发,锁。
- 集合类,线程类。
- http请求。
- json,xml读写。
- 常用api。
- 前端模块javascript、css,熟悉一个前端框架。
- 常用框架、常见的设计模式、面向对象。
知其然知其所以然
在java面试过程中,面试官一定会挑某个点深入考察。
所以,如果你已经过了新手期,学习技术一定要多为什么。
知道技术背后的原理,养成这样的思维习惯,而不是浅尝辄止。
条理化项目的难点和亮点
在面试前,捋清楚自己做过项目发挥的亮点,如何克服那些难点,这是每次面试必问的。
我们来看下阿里巴巴Java工程师面经:
- 自我介绍
- 说说你做过的项目,遇到过哪些问题,后来怎么解决的?
- string中加号连接符是怎么执行的?
- 谈一谈对spring的理解
- spring实现原理
- cookie和session区别是什么?
- Java虚拟机的结构是怎样的?
- Arraylist和linklist有什么区别?
- 实现多线程有哪些方式?
- 说一说对于JVM的结构你的理解
- 阐述一下Mysql事务的四个特性
最后、是我总结出的阿里面试必备知识点:
- 掌握Java编程语言,包含io/nio/socket/multi threads/collection/concurrency等功能的使用;
- 熟练掌握jvm(sun hotspot和ibm j9)内存模型、gc垃圾回收调优等技能;
- 精通JVM,JMM,MVC架构,熟练使用struts2。
- 熟练使用spring、struts、ibatis构建应用系统。
- 熟练使用Servlet,jsp,freemark等前端技术。
- 熟练使用axis搭建基于SOAP协议的WebService服务接口。
- 熟练使用MAVEN构建项目工程。
- 熟练使用tomcat等web服务。
- 熟练使用mysql等关系型数据库,熟悉mysql集群搭建。
- 熟练使用redis等NOSQL技术。
- 熟悉tcp、http协议。
- 熟悉nginx、haproxy等配置。
- 熟悉javascript、ajax等技术。
- 熟悉主流分布式文件系统FastDFS等。
- 熟悉JMS,可熟练使用ActiveMQ。
底层计算机理解内存管理/数据挖掘系统
- 可靠性和可用性如何理解~
- jsp和sever lap对比
- 数据库到界面,字符集转化
- 基栈
- jvm优化cup高的时候如果分析和监控
- java curb突出细节问题
- 分布式缓存文档如何分流
- 迁移数据库垂直分割
- 高并发如何处理前端高并发应用层
- LB设计load balance
- 负载均衡
- 防网络攻击
- 数据日志事件监控后通知
- 数据库事务实现的底层机制
- 字符串空格输入的网络攻击
- Quartz框架的底层原理
- 数据库同步中不通过数据库引擎直接读日志等方式同步数据
1)第一步,面试前整理一个完整知识架构大纲
我将架构体系分为五大模块:并发编程、JVM性能调优、Spring开源框架源码解读、缓存数据库、分布式架构,微服务架构
(2)第二步,通过大纲对面试中的高频技术逐个攻克
1,并发编程(手写笔记:并发编程+并发编程_原理+并发编程_应用+并发编程_模式)
- 并发编程共享模型篇
- 并发编程_模式篇
- 并发编程_应用篇
- 并发编程_原理篇
并发编程共享模型篇
并发编程_模式篇
并发编程_应用篇
并发编程_原理篇
2,性能调优(Java性能调优实战:Java编程性能调优+JVM性能优化+Mysql调优笔记)
- JVM性能优化
JVM性能优化
- JVM性能监测及调优
JVM性能监测及调优
- Mysql调优笔记
3,Spring开源框架源码解读
4,缓存数据库
- Redis核心笔记
Redis核心笔记
- MongDB基础到进阶
MongoDB快速上手
MongoDB集群和安全
5,分布式架构
- Kafka源码解析与实战
6,微服务架构
- Spring Cloud Alibaba技术栈全解
- Spring Cloud微服务笔记
- k8s+Jenkins笔记
(3)第三步,刷面试题,面试字节跳动算法是必问的
团灭 LeetCode的算法刷题宝典
算法刷题小册
25大Java面试专题