共计 3578 个字符,预计需要花费 9 分钟才能阅读完成。
一、阿里技术一面
- Java IO 流的层次结构?
- 请说出罕用的异样类型?
- SKU 的全称是什么,SKU 与 SPU 的区别及关系?
- FileInputStream 在应用完当前,不敞开流,想二次应用能够怎么操作?
- 设计一个分步式登录零碎?
- Spring 加载过程?
- 本人有没有写过相似 Spring 这样的 AOP 事务?
- Java 中 try..catch 敞开流的语法糖?
- 如何设计一个秒杀零碎?要思考什么?
- 有没有遇到进线上 GC,呈现的症状是什么样的,怎么解决的?
- spring 的加载过程?
- atomic 与 volatile 的区别?
- Thread 的 notify 给 notifyAll 的区别?
- notifiy 是唤醒的那一个线程?
- Thread.sleep 唤醒当前是否须要从新竞争?
- 单例有多少种写法? 有什么区别? 你罕用哪一种单例,为什么用这种?
- 问一个 Thread.join 相干的问题?
- 商品相干模块零碎怎么设计数据模型?
- 写一个 JAVA 死锁的列子?
- 如何解决死锁?
- GC 回收算法, 及实现原理?
- HashMap 数据存储构造? key 反复了怎么办? 是如何解决的?
- Spring AOP 的实现原理,底层用什么实现的?
二、阿里技术二面
电话面试次要考查 3 块内容:
- Java 的相干基础知识,开源框架的原理,JVM,多线程,高并发,中间件等;
- 之前我的项目经验,使用的技术,遇到的问题,如何解决,集体有什么播种和成长;
- 对于技术的激情(平时是否看些技术书籍,逛论坛,写博客,写源代码或程序等);
三、JAVA 开发技术面试可能问到的问题
- 咱们次要考核的是网络 nio 分布式数据库高并发大数据
- 自定义表格的实现?
- 动静表单设计?
- in-jvm(必考)以及 jmm 缓存模型如何调优?
- 罕用的 RPC 框架
- nio 和 io
- 并发编程,设计模式
- 地图组件?
- hashmap 有什么破绽会导致他变慢?
- 如何给 hashmap 的 key 对象设计他的 hashcode?
- 泛型通配符? 在什么状况下应用?
- 后端方面:redis? 分布式框架 dubbo(阿里巴巴开源框架)? 设计模式?
- 场景式的问题: 秒杀, 能列出常见的排队、验证码、库存扣减形式对系统高并发的影响?
- 能依据理论的须要构建缓存构造进步进步网站的访问速度,纯熟应用 ehcache、oscache,理解 memcache。
- 理解基于 dns 轮询的负载平衡,纯熟配置 web 服务器实现负载平衡,程序级能综合应用基于 hash 或取模等伎俩实现软负载。
- 相熟分布式数据库设计和优化技术,纯熟应用 mysql、oracle、SqlServer 等支流数据库,相熟 hadoop hbase mangodb redis ehcache、oscache memcache。对于大数据量的数据库解决采纳分表分库、数据库读写拆散、建设缓存等伎俩优化性能。
- 熟练掌握 lucene,能基于 lucene 开发大型的搜索引擎,并能用 lucene 来改善和优化数据库的 like 查问。
四、JAVA 方向技术考察点 (补充):
- 把握 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 框架的底层原理
- 数据库同步中不通过数据库引擎间接读日志等形式同步数据
五、我的项目局部
- 缓存的应用,如果当初须要实现一个简略的缓存,供搜寻框中的 ajax 异步申请调用,应用什么构造?
- 内存中的缓存不能始终存在,用什么算法定期将搜寻权重较低的 entry 去掉?
- TCP 如何保障安全性
- 红黑树的问题,B+ 数
- JDK1.8 中对 HashMap 的加强,如果一个桶上的节点数量过多,链表 + 数组的构造就会转换为红黑树。
- 我的项目中应用的单机服务器,如果将它部署成分布式服务器?
- MySQL 的常见优化形式、定为慢查问
- 手写一个线程平安的单例模式
六、进阿里必会常识:
- 算法和数据结构数组、链表、二叉树、队列、栈的各种操作(性能,场景)
- 二分查找和各种变种的二分查找
- 各类排序算法以及复杂度剖析(快排、归并、堆)
- 各类算法题(手写)
- 了解并能够剖析工夫和空间复杂度。
- 动静布局(口试回回有。。)、贪婪。
- 红黑树、AVL 树、Hash 树、Tire 树、B 树、B+ 树。
- 图算法(比拟少,也就两个最短门路算法了解吧)
- 计算机网络 OSI7 层模型(TCP4 层)每层的协定
- url 到页面的过程
- HTTPhttp/https 1.0、1.1、2.0
- get/post 以及幂等性
- http 协定头相干
- 网络攻击(CSRF、XSS)
- TCP/IP 三次握手、四次挥手
- 拥塞管制(过程、阈值)
- 流量管制与滑动窗口
- TCP 与 UDP 比拟
- 子网划分(个别只有口试有)
- DDos 攻打
- (B)IO/NIO/AIO 三者原理,各个语言是怎么实现的
- Netty
- Linux 内核 select poll epoll
- 数据库(最多的还是 mysql,Nosql 有 redis)索引(包含分类及优化形式,生效条件,底层构造)
- sql 语法(join,union,子查问,having,group by)
- 引擎比照(InnoDB,MyISAM)
- 数据库的锁(行锁,表锁,页级锁,意向锁,读锁,写锁,乐观锁,乐观锁,以及加锁的 select sql 形式)
- 隔离级别,顺次解决的问题(脏读、不可反复读、幻读)
- 事务的 ACID
- B 树、B+ 树
- 优化(explain,慢查问,show profile)
- 数据库的范式。
- 分库分表,主从复制,读写拆散。
- Nosql 相干(redis 和 memcached 区别之类的,如果你相熟 redis,redis 还有一堆要问的)
- 操作系统:过程通信 IPC(几种形式),与线程区别
- OS 的几种策略(页面置换,过程调度等,每个外面有几种算法)
- 互斥与死锁相干的
- linux 常用命令(问的时候都会给具体某一个场景)
- Linux 内核相干(select、poll、epoll)
- 编程语言(这里只说 Java):把我之后的面通过一遍,Java 感觉笼罩的就差不多了,不过上面还是分个类。
- Java 根底(面向对象、四个个性、重载重写、static 和 final 等等很多货色)
- 汇合(HashMap、ConcurrentHashMap、各种 List,最好联合源码看)
- 并发和多线程(线程池、SYNC 和 Lock 锁机制、线程通信、volatile、ThreadLocal、CyclicBarrier、Atom 包、CountDownLatch、AQS、CAS 原理等等)
- JVM(内存模型、GC 垃圾回收,包含分代,GC 算法,收集器、类加载和双亲委派、JVM 调优,内存透露和内存溢出)
- IO/NIO 相干
- 反射和代理、异样、Java8 相干、序列化
- 设计模式(罕用的,jdk 中有的)
- Web 相干(servlet、cookie/session、Spring)
七、面试技巧
1、答非所问:
感觉到答案说进去对方会不待见的时候,能够这么做:有关联性的答非所问,留神强调本人的想法,争取让面试官可能共情,比方深圳的房价能够引人共情、电商相干的大平台、稳固、有回升空间等。
2、面试的状态很重要:
两个例子,上月一个胜利 offer 的候选人,非互联网背景,公司也不是一线的,然而面试时体现出对阿里很强烈的趣味,HR 预先顺便向咱们提到,对这位候选人印象很粗浅;
另一位明天刚挂的候选人,两轮技术都是一举拿下,最初 HR 面挂了,HR 给咱们的反馈是,候选人刚从本人的守业公司到职,貌似情绪很高涨,对本人也没什么想法。
综上所述,面试时既不要气宇轩昂,过于被动,也不要过于夸大,而是在于展示本人对一个不错机会的尊重和争取,让面试官感觉你对他们,对这个岗位有很大的趣味。
答案获取,请关注公众号【不止于编程】,回复:阿里巴巴面试
近 300 页文档,图文并茂,还请你点个赞????
正文完