阿里备战--面试搜集

 

摘自:https://blog.csdn.net/belalds/article/details/81193846

 

  1. 技术一面(基础面试题目)
  2. 技术二面(技术深度、技术原理)
  3. 项目实战(项目模拟面试)
  4. JAVA开发技术常问的问题
  5. 阿里必会知识
  6. 阿里面试范畴
  7. 阿里面试总结

一:阿里技术一面(基础掌握牢固)

  1. 常用的异常类型?
    1.  异常类分两大类型:Error类代表了编译和系统的错误,不允许捕获;Exception类代表了标准Java库方法所激发的异常(https://www.cnblogs.com/cvst/p/5822373.html)
    2. 算术异常类:ArithmeticExecption

      空指针异常类:NullPointerException

      类型强制转换异常:ClassCastException

      数组负下标异常:NegativeArrayException

      数组下标越界异常:ArrayIndexOutOfBoundsException

      违背安全原则异常:SecturityException

      文件已结束异常:EOFException

      文件未找到异常:FileNotFoundException

      字符串转换为数字异常:NumberFormatException

    3. 操作数据库异常:SQLException

    4. 输入输出异常:IOException

    5. 方法未找到异常:NoSuchMethodException

  2. session
    1. 发给顾客一张卡片,上面记录着消费的数量,一般还有个有效期限。每次消费时,如果顾客出示这张卡片,则此次消费就会与以前或以后的消费相联系起来。这种做法就是在客户端保持状态。 
    2. 发给顾客一张会员卡,除了卡号之外什么信息也不纪录,每次消费时,如果顾客出示该卡片,则店员在店里的纪录本上找到这个卡号对应的纪录添加一些消费信息。这种做法就是在服务器端保持状态。
    3. 具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。同时我们也看到,由于采用服务器端保持状态的方案在客户端也需要保存一个标识,所以session机制可能需要借助于cookie机制来达到保存标识的目的,但实际上它还有其他选择。 (https://www.cnblogs.com/lonelydreamer/p/6169469.html)
  3. java锁
  4. gc原理
  5. hashmap
  6. listlink arraylist 区别
  7. aop 原理
  8. 多线程
  9. kafka 原理和容错
  10. spark hadoop 原理
  11. redis 同步机制
  12. classLoader 机制
  13. Http 协议
  14. cookie的限制
  15. 如何设计一个分步式登录系统?
  16. Spring加载过程?
  17. 自己有没有写过类似Spring这样的AOP事务?
  18. spring的加载过程?
  19. atomic 与 volatile的区别?
  20. Thread的 notify()给notifyAll()的区别?
  21. notifiy()是唤醒的那一个线程?
  22. Thread.sleep()唤醒以后是否需要重新竞争?
  23. 单例有多少种写法? 有什么区别? 你常用哪一种单例,为什么用这种?
  24. 问一个Thread.join()相关的问题?
  25. 写一个JAVA死锁的列子?
  26. 如何解决死锁?
  27. GC回收算法,及实现原理?
  28. HashMap数据存储结构? key重复了怎么办? 是如何解决的?
  29. Spring AOP的实现原理,底层用什么实现的?

阿里技术二面(技术原理、个人擅长的项目)

重点是面试技术原理,以及对技术的热情和专研程度:

  1. Java的高级知识
  2. 开源框架的原理
  3. JVM
  4. 多线程
  5. 高并发
  6. 中间件
  7. 之前项目经历,运用的技术,遇到的问题,如何解决,个人有什么收获和成长;
  8. 对于技术的热情(平时是否看些技术书籍,逛论坛,写博客,写源代码或程序等);

JAVA开发技术面试可能问到的问题?

  1. 我们主要考核的是网络nio 分布式数据库高并发大数据
  2. 自定义表格的实现?
  3. 动态表单设计?
  4. in-jvm(必考)以及jmm缓存模型如何调优?
  5. 常用的RPC框架
  6. nio和io
  7. 并发编程,设计模式
  8. 地图组件?
  9. hashmap有什么漏洞会导致他变慢?
  10. 如何给hashmap的key对象设计他的hashcode?
  11. 泛型通配符?在什么情况下使用?
  12. 后端方面:redis?分布式框架dubbo(阿里巴巴开源框架)?设计模式?
  13. 场景式的问题:秒杀,能列出常见的排队、验证码、库存扣减方式对系统高并发的影响?
  14. 能根据实际的需要构建缓存结构提高提高网站的访问速度,熟练使用ehcache、oscache,了解memcache。
  15. 了解基于dns轮询的负载均衡,熟练配置web服务器实现负载均衡,程序级能综合使用基于hash或取模等手段实现软负载。
  16. 熟悉分布式数据库设计和优化技术,熟练使用mysql、oracle、SqlServer等主流数据库,熟悉hadoop hbase mangodb redis ehcache、oscache memcache。对于大数据量的数据库处理采用分表分库、数据库读写分离、建立缓存等手段优化性能。
  17. 熟练掌握lucene,能基于lucene开发大型的搜索引擎,并能用lucene来改善和优化数据库的like查询。

项目部分

  • 缓存的使用,如果现在需要实现一个简单的缓存,供搜索框中的ajax异步请求调用,使用什么结构?
  • 内存中的缓存不能一直存在,用什么算法定期将搜索权重较低的entry去掉?
  • TCP如何保证安全性
  • 红黑树的问题,B+数
  • JDK1.8中对HashMap的增强,如果一个桶上的节点数量过多,链表+数组的结构就会转换为红黑树。
  • 项目中使用的单机服务器,如果将它部署成分布式服务器?
  • MySQL的常见优化方式、定为慢查询
  • 手写一个线程安全的单例模式

进阿里必会知识:

  • 算法和数据结构数组、链表、二叉树、队列、栈的各种操作(性能,场景)
  • 二分查找和各种变种的二分查找
  • 各类排序算法以及复杂度分析(快排、归并、堆)
  • 各类算法题(手写)
  • 理解并可以分析时间和空间复杂度。
  • 动态规划(笔试回回有。。)、贪心。
  • 红黑树、AVL树、Hash树、Tire树、B树、B+树。
  • 图算法(比较少,也就两个最短路径算法理解吧)
  • 计算机网络OSI7层模型(TCP4层)每层的协议
  • 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. 类加载机制
  3. GC
  4. JVM调优
  5. 线程池原理
  6. 动态代理
  7. 悲观锁乐观锁
  8. 高并发问题
  9. 事务隔离级别
  10. 索引原理
  11. 限流
  12. 分库分表
  13. 分布式事务提交
  14. 微服务
  15. dubbo原理

阿里面试总结

阿里比较喜欢的人才特点:对技术有热情,强硬的技术基础实力;主动,善于团队协作,善于总结思考。

技术基础以及的问题多看看书准备,不懂的直接说不懂没关系的;在项目细节上多把关一下,根据项目有针对性的谈自己的技术亮点,能表达清楚,可以引导面试官来问你比较擅长的技术问题。

转载于:https://www.cnblogs.com/javallh/p/10473478.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值