阿里面试重点总结

1.Java基础
 
    ArrayList,HashMap等集合框架类,重要基础类String等的处理。HashMap的底层存储结构等。


   
 (也能够顺带考察下对接口,继承,重载重写的基本理解。以及异常处理的注意事项)。 
2. 数据结构与算法

 
  常见的查找算法及时间复杂度。


 
  常见的排序算法及时间复杂度。 
   
比較重要的数据结构,如链表。队列,栈的基本理解及大致实现。
3. 多线程问题

 
  1)线程安全问题。 HashMap 是否线程安全。为何不安全。 ConcurrentHashMap,线程安全。为何安全。底层实现是怎么样的。


 
  2)J.U.C下的常见类的使用。

 ThreadPool的深入考察; BlockingQueue的使用。(take,poll的差别,put。offer的差别)。原子类的实现。
 
  4)各种常见锁使用
假设上面这些掌握非常好,还能够看看更深一点的 False Sharing。Cache Line。可见性与原子性等。


4. JVM

 
   Java内存分代模型,GC算法。JVM常见的启动參数; CMS算法的过程。
   
 这块回答较好,也能够仅仅是看毕玄的Java分布式开发或网上文章的学习, 能够结合JVM启动參数常见配置,jstat等命令。看下动手能力,意愿。以及实际线上问题排查。

5.Linux使用与问题分析排查

 
   1). grep,awk。sed。 是否自己写过shell脚本;
 
   2). 常见的cpu load过高,us过高,通常是什么问题。

引申出是否用过top,jstat。jstack等。
 
       常见的内存问题一般有哪些。 引申出是否用过free,top。 jmap等。

6. 框架使用

 
   spring aop的底层实验原理。

 aop与cglib,与asm的关系。
 
   spriong ioc的生命周期。(init-method,intilizingbean接口方法afterPropertiesSet的先后顺序)等。


  
 Hibernate对一二级缓存的使用,Lazy-Load的理解。
7. 数据库相关:

 
  1. mysql存储引擎中索引的实现机制。
 
  2.数据库事务的几种粒度;
 
  3.行锁,表锁。乐观锁,悲观锁

8.网络协议:

 
  HTTP协议。
 
  HTTPS协议,SSL协议及完整交互过程;


9. redis

 
  redis,memcache底层client使用一致性Hash。看是否了解;
 
  redis的事件驱动多路复用底层实现。引申到NIO编程, 看对Netty,或mina是否了解。


 
 假设候选者同一时候用过memcache。redis,看下是否了解两者在使用场景上的差别。

以考察使用深度。以及是否有好奇精神。



10. 设计模式与重构

 
   常见设计模式,如singlen。factory。abstract factory。strategy,chain。adaptor,decorator,composite,template,absever等。


 
   重构:重构书籍

11. 学习与进取心

 
   近期上过上哪些技术网站。 近期在看哪些书。



12. 抗压能力及抗压意愿

   
 了解加班情况。了解是否愿意在一段时间996等。
13 稳定性考察

     
 了解家庭婚姻状况, 了解购房及居住地,籍贯情况,了解眼下薪资,评估稳定性。
=======

1.进程和线程的差别
2.什么叫线程安全?举例说明
3.OSI七层模型。包含TCP,IP的一些基本知识
4.数据库的锁
5.DFS,BFS算法
6.另一些诸如collection framework的Java基础

7、http中,get post的差别

其它的面试,感觉问的非常有代表性:

 第一面(仅仅记得这么多了)

  1、笔试题第四题实现又口述了下

  2、有个每秒钟5k个请求,查询手机号所属地的笔试题(记得不完整,没列出),怎样设计算法?请求再多,比方5w。怎样设计整个系统?

  3、比較熟悉什么技术?我说jvm和oracle。就让我画jvm的体系结构,画了之后说各个部分的职责。并扯到执行期优化。

  第二面(没有技术细节,都是泛泛的,可是我回答的比較保守。仅仅认为能滔滔不绝的说上半小时才敢说看过或了解)

  1、是否愿意去杭州

  2、熟悉各种技术框架么?

源代码读过么?

  3、数据库了解什么?mysql了解么

  4、前台技术,看我用的ExtJS。就问是否了解JQuery

  5、进如今的公司,认为对技术是否有提升?

  第三面,此面没有技术问题

  第四面HR(感觉这面问题回答的有点扯,毕竟是这么几年来首次面HR,之前面过2、3个公司。要么非常早就挂了,要么感觉流程太长,自己不愿意面下去)

  1、愿意去杭州发展么?我说要考虑,hr就问主要考虑什么问题

  2、从技术角度来说。你认为你跟你同学比怎么样

  3、你的父母怎么看待你的

      1、jvm性能调优都做了什么

  2、高并发情况下,我们系统是怎样支撑大量的请求的

  3、集群怎样同步会话状态

  4、负载均衡的原理

  5、数据库事务属性

  6、二叉树的遍历算法

  7、hashtable和hashmap的差别

  8、并发、同步的接口或方法

  9、string、stringbuilder、stringbuffer差别

  10、https处理的一个过程,对称加密和非对称加密

  11、线程的几种状态

  12、了解手机开发么

  13、个人优势

  14、与同事沟通的时候,假设遇到冲突了怎样解决

  15、工作中认为哪方面欠缺?

  16、有问题要问么?

  17、期望薪水

  18、为什么要离开如今的公司

  * struts1.2和webwork的差别

  * hibernate和ibatis的差别

  * spring工作机制,IOC容器

  * servlet的一些相关问题

  * webservice相关

  * java基础:jvm,HashSet等等

  * 考察学习新技术的能力


其它:
  
 1.  店铺相关的业务特点决定。有前后端知识是加分项。 假设候选者熟悉javascript。
能够考察:

 
   1) 前后端优化的基本常识。比方js放在后面不堵塞等;原生js的理解。正则,时间冒泡等。
   
 2)firebug,fiddle等调试工具;  
 
   3)假设是基本使用,看下ext框架,jquery等熟悉程度。jquery插件机制。sizzle选择器。


    
 假设以上都不错,能够再深入考察   
   
1)作用域链, 闭包的理解。
  
 2)看下是否了解最新的技术。 augularJS, nodejs,cmd规范,amd规范等。

原文地址:https://www.cnblogs.com/lcchuguo/p/5254005.html