阿里巴巴的一些面试题(无答案)

Java基础

【异常处理】

1、Try catch如果找到了一个匹配的catch,finally还会执行吗?--4
2、java异常大致分类,并举出相应异常类及在实际项目各层是如何处理异常的?--5 6

【泛型】

1. 泛型的实现原理? 伪泛型 --5

【reflection】

1、什么是反射?如何使用的?

【annotation】

1、java注解的实现原理? --5

【Java基本类库:io, util, lang 】

1、String, StringBuffer和StringBuilder区别?Stringbuffer初始容量是多少,如何做扩容?--5
2. hashcode()和equals()是作用是什么?使用注意事项
3. 能将int强制转换成byte类型么,为什么
4. “a==b”和”a.equals(b)
5. 使用什么样的数据类型来描述金额

【集合】

1、遍历 ArrayList 时移除一个元素
2、List和Set的区别 -- 重复、索引、null
3、ArrayList,LinkedList,HashMap这三个常用集合类的不同特点及适用场景,及其底层实现的数据结构?--5 6
4、HashSet是如何判断新添加的对象是否已经存在的??如果已存在,它是不再放进去,还是放进去覆盖之前的??
5、Map如何遍历?那种方式效率最好?

高级:class loader,bytecode,nio, juc

1、java并发编程包,用过哪些,怎么用?--5 6
2. 什么是并发?在单JVM下如何控制并发,在多JVM下如果控制并发?--6
2、synchronized和java.util.concurrent.locks.Lock的异同?--5 6
3、Threadlocal是什么?是否用到过,注意事项是什么?--5 6

其他:

1、详细描叙一次远程调用的过程?hessian有什么限制?描叙一个wsdl文档的关键元素?--6
2、Java 中,抽象类与接口之间有什么不同
3、继承和组合之间有什么不同

程序设计和开发

【数据结构和算法:常用数据结构,排序,检索】

1、有几种排序算法?效率分析?--5
2、描叙下hash算法?什么是一致性hash?--5

【面向对象分析设计能力:UML、设计模式】

1、使用过哪些设计模式,线程安全的单例模式要注意什么?--5 6
2、代理、适配器、模板模式是否了解 ? 描述一下类结构?-- 6
3、在项目中是否采用分层的结构,是怎样划分的,各层之间采用了哪些相关技术?--6 7

【其他】

1、好代码的标准是什么?--5 6
2、您通过哪些手段,来保障产品的质量?--5 6
3、常用的加密算法有哪些?签名算法呢?
4、如何实现数据源动态切换?


开源/框架

1、spring AOP解决了什么问题,spring如何实现AOP?--5
2、spring分几个模块,各个模块之间的关系?--6
3、spring bean初始化的过程?static 代码块、构造函数、init方法、afterPropertiesSet顺序?单例?spring的单例和设计模式中单例模式区别?设计模式中的单例模式使用过程中的注意点?如何实现?(多线程、序列化) --6 7
4、spring 提供了哪两种事物处理方式,采用了java的什么技术?--6
5. spring声明式事务处理时如何实现的?(这个问题可以涵盖AOP的概念、代理模式、线程、JDBC事务处理等)
6、IOC的设计理念在spring中是怎么体现的?--6
7. Hibernate的理解(如果有写到可以问),一级缓存、二级缓存的作用,项目中是如何应用的?Hibernate域ibatis区别?哪个性能高??
8、osgi了解吗?优缺点?

JVM相关

1、jvm加载class的过程?--5
2、内存泄露的原因是什么?如何避免?
3、jvm调优策略?--6
4、常用的jvm监控命令?--6
5、如何做内存dump?--6
6、JVM对于新生代和旧生代的垃圾回收机制?--5 6
7、Java 中 WeakReference 与 SoftReference的区别
8、Java 中堆和栈有什么区别
9、是否遇到到内存泄露的案例? 如何解决的 ? --6 7

Web开发

【协议】

DNS
什么是A记录、CNAME ?
HTTP

1. get 和post区别 ? --5
2 描述一下一个web请求的处理过程?--5
3. session和cookie的区别?HTTP请求中Session实现原理?如果客户端禁止Cookie能实现Session吗?跨域cookie如何访问?--5 6
4. 分别采用cookie和session如何实现web集群,他们分别适用哪些应用场景?--6 7

【Java Servlet API】

1. forward() 与redirect()区别 ? --5
2. servlet的生命周期,是否有线程安全问题,如何解决?(单例,不允许在servlet中定义全局的类对象) --5 6
3. 过滤器拦截器的区别? --5
4. 过滤器、拦截器、servlet的顺序?

【Velocity/JSP等模板引擎】

1. velocity是如何渲染vm文件的 ?
2. 比较一下velocity和JSP技术 ?

【主流Web开发框架:SpringMVC,Struts等】

1. 如何实现一个多语言版本的网站?语言切换如何处理?--6 7
2. 请描述一下SpringMVC中DispatchServelet的请求处理过程 ? -- 6 7

【Web服务器部署和配置:Apache,Tomcat,JBoss,Jetty等】

1. apache和nginx的区别? --5 6
2. tomcat 、jetty、jboss的区别?--5 6
3. jboss的线程大小如何调整?--6


操作系统

【linux服务器基本操作命令】

1、如何统计集群中的pv?
2、grep 、awk
3、查看系统进程/查找指定进程?
4、linux的内存分配策略?
5、如何查看系统负载?性能监测工具有哪些?
6、如何查看一个文件?cat、vi、less、more区别?
7、如何跨机器copy?
8、如何查看磁盘分区空间使用情况,如何查看目录及内容大小 ?

网络安全

【网络安全知识:DDOS,Firewall,HTTPS,数字签名等】

1. http和https的区别?https如何保证链接的安全?一个网站如何部署成https过程?描述一次完整的https请求的过程,客户端、服务端都做了啥?单向认证?双向认证?--6 7

【常见Web安全问题解决方案:XSS,CSRF】

1. 如何做表单防篡改、防重复提交?--6
2. 解释 XSS、 XSRF、sql注入,及举例说明?--5 6

数据库

【数据库接口编程:JDBC,O/R Mapping,DAO,iBatis, Hibernate等】
1、JDBC的执行过程? --5 6
2. db连接池的原理?解决什么问题?--6
3. ibatis如何实现批量插入?--6
4. 简述spring封装了ibatis的SqlMapClientTemplate类中,执行一个数据库查询语句的主要过程?--5

【数据库使用和设计:Oracle,Mysql】

1. 什么是死锁,如何避免死锁?乐观锁和悲观锁各自的使用场景?有哪些方案实现乐观锁?时间戳、版本、全部copy到内存,提交时比对。--6 7
2. 事务的特点?采用什么技术实现分布式事务,如何实现,讲讲原理,为什么需要两阶段提交,能解决哪些问题,哪些问题不能解决。spring 提供了哪两种事物处理方式,采用了java的什么技术?--6 7
3. 表关联时,内连接,左连接,右连接怎么理解?--5
4. 数据库操作的性能瓶颈通常在哪里,1000万级别访问,在数据库和java程序上考虑哪些来进行性能优化?--6
5. oracle三层分页的实现?--5
6. oracle中rownum和rowid的理解

【数据结构优化,SQL调优】

1. 常用sql优化策略?如何查看sql资源消耗?如何查看执行计划 ?
2. 索引的怎么建最合适?是否建立了索引查询一定会快?如何走到指定的索引?--5 6
3. 存在A、B字段,以A、B顺序建立联合索引,
SQL语句 where A = ? 是否会走索引 ?
SQL语句 where B = ? 是否会走索引 ?
SQL语句 where B = ? and A = ? 是否会走索引 ?


架构设计

【分层的应用框架设计思想:SOA,事件驱动等】

1. 在项目的架构设计中,对于未来可能发生的需求变更,你是如何考虑的?如何应对?
2. 模块化来降低耦合性时如何把握模块划分的粒度?如何权衡复用性与粒度过细导致依赖复杂的矛盾?

【分布式系统原理:CAP,最终一致性,幂等操作等】

1.什么是分布式系统下CAP理论?
2.如何进行幂等控制?--6


【大型网络应用结构:消息中间件,缓存,负载均衡,集群技术,数据同步】

1. 在高并发应用中,Cache的作用不可忽视,在Cache的使用上,有哪些问题需要去注意?
2. 是否曾经用到过缓存?是单机的还是集群的?如何设计分布式缓存?高并发情况下如何初始化?--6 7
3. 4/7层负载均衡的差别?--7
4. 负载均衡的策略有哪些?如何做到会话保持?--6
5. 有没有做服务器健康检查?怎么做?-- 6 7


【高可用,可容灾分布式系统设计能力】

1. 设计一套系统故障隔离方案?设计一套流量控制方案?
2. 您一般会从哪些方面来保证网站的高可用性?有什么关键措施和经验可以提高系统的可用性?

【大容量数据存储和检索系统设计能力:数据库分区,NoSQL,搜索引擎等】

1. 如何消除DB单点?数据拆分的方案?
2. 在架构设计中如何应对不断出现的超过预估的数据量和访问量?

【服务治理】
1. 系统是否有对内或者对外提供服务,如何管理服务的使用权限,如何做服务升级?


运维能力

【应用发布和运维】

1. 在大规模机器集群上,你们如何实现程序发布上线、配置的管理以及程序和机器的监控和健康检查?
2. TCP建立连接的过程?三次握手过程?--5 6
3. 介绍下OSI七层模型?每一层分别做什么的?TCP建立连接的过程?三次握手过程?--6 7

【线上故障分析和排查】

1. 线上系统出现问题后如何分析排查?
2. 系统中的日志是如何打印的?
3. 系统的异常处理是如何设计的?

性能优化:--6 7

1、对于系统优化,平时如何查找瓶颈,最后又如何确定优化后是有效的?
2、如何做集群的性能调优?
3、如何设置一个应用的最佳请求数和最佳处理线程数?
4、降低了RT是否就能提高TPS?如何减少RT?如何提升QPS?
5、通过什么工具查找热点耗时代码?
6、如何监控代码的执行效率?又是如何来找到瓶颈的?


业务分析能力:
重要业务模块的需求分析及实现
中小规模产品的架构,系统设计和实现
大规模产品或产品线的架构,系统设计和实现

1. UML中包含哪些图? 在项目中如何运用UML进行分析设计的?
2. 是否使用领域模型设计? 领域模型如何设计的?
3. DB的表结构是怎样分析产出的?

传道授业:

1.如何帮助团队成员提升能力的?
2.做过什么分享?分享的内容大纲简短介绍一下?

开放性问题:

1、如何实现一套单点登录的系统?两个系统之间相互免登如何设计?--6 7
2、如何设计一个红包发送系统,支持100w的红包同时发送?
3、你理解的分布式系统是什么样的?
4、如何设计一个分布式缓存?如何进行扩容?
5、设计一个单点登录的系统及流程?
6、提升团队的研发质量上有哪些策略?
7、设计一个秒杀系统?
8、实现转账A——B程序?--7 8
9、存储全国人民的身份证号,并能够按照多维度,提供快速查询功能,如何设计?

原文地址:https://www.cnblogs.com/yanggb/p/10662850.html