阿里巴巴面试题目

阿里巴巴面试题目

【范文精选】阿里巴巴面试题目

【范文大全】阿里巴巴面试题目

【专家解析】阿里巴巴面试题目

【优秀范文】阿里巴巴面试题目

范文一:阿里巴巴电话面试题目

 你对Java的集合框架了解吗? 能否说说常用的类?

Java集合框架类图:

我常用的类:

HashMap,Hashtable,HashSet,ArrayList,Vector,LinkedList,Collections,Arrays;

 说说Hashtable与HashMap的区别(源代码级别)

 最明显的区别在于Hashtable 是同步的(每个方法都是synchronized),而HashMap则不是.

 HashMap继承至AbstractMap,Hashtable继承至Dictionary ,前者为Map的骨干, 其内部已经实现了Map所需要做的大部分工作, 它的子类只需要实现它的少量方法即可具有Map的多项特性。而后者内部都为抽象方法,需要它的实现类一一作自己的实现,且该类已过时

 两者检测是否含有key时,hash算法不一致,HashMap内部需要将key的hash

码重新计算一边再检测,而Hashtable则直接利用key本身的hash码来做验证。

 两者初始化容量大小不一致,HashMap内部为 16*0.75 , Hashtable 为 11*0.75

后续的区别应该还有很多, 这里先列出4点。

 平时除了ArrayList和LinkedList外,还用过的List有哪些?ArrayList和LinkedList的区别?

事实上,我用过的List主要就是这2个, 另外用过Vector.

ArrayList和LinkedList的区别:

1. 毫无疑问,第一点就是两者的内部数据结构不同, ArrayList内部元素容器是一个Object的数组, 而LinkedList内部实际上一个链表的数据结构,其有一个内部类

来表示链表.

2. 两者的父类不同,也就决定了两者的存储形式不同。 ArrayList继承于 AbstractList,

而LinkedList继承于AbstractSequentialList. 两者都实现了List的骨干结构,只是前者的访问形式趋向于 “随机访问”数据存储(如数组),后者趋向于 “连续访问”数据存储(如链接列表)

3. 再有就是两者的效率问题, ArrayList基于数组实现,所以毫无疑问可以直接用下标来

索引,其索引数据快,插入元素设计到数组元素移动,或者数组扩充,所以插入元素要慢。LinkedList基于链表结构,插入元素只需要改变插入元素的前后项的指向即可,故插入数据要快,而索引元素需要向前向后遍历,所以索引元素要慢。

ArrayList的特点,内部容器是如何扩充的?

Properties类的特点? 线程安全?

Properties 继承于Hashtable,,所以它是线程安全的.

其特点是:

它表示的是一个持久的属性集,它可以保存在流中或者从流中加载,属性列表的每一个键和它所对应的值都是一个“字符串”

这里特别的是,实际上,Properties从流中加载属性集合,是通过将流中的字符或者字节分成一行行来处理的。

请说一下Struts2的初始化?和类的创建?(从源代码角度出发) 由于这个问题研究起来可以另外写一篇专门的模块,这里只列出相对简单的流程,后续会希望有时间整理出具体的细节:

首先,Struts2是基于Xwork框架的,如果你有仔细看过Xwork的文档,你会发现,它的初始化过程基于以下几个类:

Configuring XWork2 centers around the following classes:-

• ConfigurationManager

• ConfigurationProvider

• Configuration

而在ConfigurationProvider的实现类XmlConfigurationProvider 的内部,你可以看到下面的代码:

同样的,Struts2的初始化也是这样的一个类,只不过它继承于Xwork原有的类,并针对Struts2做了一些特别的定制。

OK, 整体来说,这个问题说清楚很难,因为你无法记住你追踪到的所有的类,但是有一点是肯定的,那就是流程: 基本上我的理解就是 通过一系列配置文件的初始化,将文件转换成对象,加载进内存中,再在处理请求时候(注意,只有当FilterDispatcher的doFilter第一次被调用时,才会去初始化Action类),加载Action类来进行业务处理。

第二部分:

据你了解,除了反射还有什么方式可以动态的创建对象?

请说一下Struts2 是如何把Action

交给Spring托管的?

它是单例的还是多例? 你们页面的表单对象是多例还是单例?

首先,来看看如何让Spring 来管理Action.

2. 有两种整合方式:

a) 将Struts的业务逻辑控制器类配置在Spring的配置文件中,业务逻辑控制器中引用的业务类一并注入。 (这样的处理,必须将action类的scope配置成property)

的class属性为Spring配置文件中相应bean的id或者name值。示例如下:

b) 第2种方式:

业务类在Spring配置文件中配置,业务逻辑控制器类不需要配置,Struts2的Action

像没有整合Spring之前一样配置,的class属性指定业务逻辑控制器类的全限定名。 Action中引用的业务类不需要自己去初始化,Struts2的Spring插件会使用bean的自动装配将业务类注入进来,其实Action也不是Struts2创建的,而是Struts2的Spring插件创建的。默认情况下,插件使用by name的方式装配,可以通过增加Struts2常量来修改匹配方式:设置方式为:struts.objectFactory.spring.autoWire = typeName,可选的装配参数如下:

name:相当于spring配置的autowrie="byName"(默认)

type:相当于spring配置的autowrie="byType"

auto:相当于spring 配置的autowrie="autodetect"

constructor: 相当于spring配置的autowrie="constructor"

OK,这里说了配置部分,但是,这里有一个问题, 就是

Spring管理Action,如果按照第一方式,那么只要通过scope="property"来配置为每个请求创建一个Action实例。 那么第二种方式,我们并没有指定Action的作用域(好似也没有地方可配„„),那么,这样的整合方式,Action的创建到底是单例还是多例的呢?

答案也是没个请求一个实例,我这里通过一个很笨的办法,来证明它:

我会写一个Action的构造函数, 并在里面打上一句话,加入断点,如果说,每次请求都会进入断点,那么就意味着,每个请求都有一个新的实例是正确的。

第一次进入的时候,是在容器启动的时候:

我们请求

Action,

再次进入断点,说明,每个请求都有一个Action实例来处理。

对于这点的原因,我还是没有弄清楚,为什么按照第2种方式配置,不用指定scope,就会自动的为每个action创建一个实例?(希望懂的朋友,可以指点指点)

对于我们项目中的页面表单对象, 毫无疑问,它也是多例的.

请说一下你们业务层对象是单例还是多例的?

业务层对象是单例的。

请说一下Struts2源代码中有哪些设计模式?

简单罗列一下: 单例模式-- 典型应用: 类:

org.apache.struts2.config.ServletContextSingleton

模版方法模式:

在org.apache.struts2.components包中大量运用

责任连模式:

在拦截器部分使用.

请说一下线程安全出现的原因?

我们都知道线程安全是指什么,我的理解是, 当一个类的“状态”(实例变量)被多个线程所修改时,那么这个类的状态的“正确”性得不到保证,我们就可以理解成线程安全出现。 当然,如果一个没有状态的类,那么它永远都是线程安全的。

再深入一点来看, 我们从Java虚拟机的层面来看这个问题,答案就很明朗了:

Java程序在运行时创建的所有类实例或数组,都存放在同一个堆中,而一个JVM实例中只存在一个堆空间,因此,它被所有的线程共享着,这样的情况下,就可能出现,多个线程访问对象(堆数据)的同步问题了。

请说一下线程池的中断策略(4个)? 各有什么特点?

这里所指的线程池是concurrent包中的ThreadPoolExecutor,而中断策略实际上是指饱和策略(concurent包中的RejectedExecutionHandler接口),

这里需要先解释一下,什么叫饱和策略, 实际就是说, 线程池中的线程容器已经放不下先的任务了,饱和了,必须要有一个相应的策略来处理。

ThreadPoolExecutor内部,已经定义了4种饱和策略:

默认的饱和策略是: (中止), 既如果放不下了,既中止新加入的任务。

源代码中调用如下

如果需要设置饱和策略,可以调用ThreadPoolExecutor的setRejectExecutionHandler方法,JDK提供了4种不同策略的实现(4种实现都定义在ThreadPoolExecutor类中,有兴趣可以查看一下源代码):

下面介绍一下4种实现的特点:

AbortPolicy: (中止)它是默认的策略。

CallerRunsPolicy: (调用者运行), 它既不会丢弃任务,也不会抛出任何异常,它会把任务推回到调用者那里去,以此缓解任务流

DiscardPolicy: (遗弃)策略,它默认会放弃这个任务

DiscardOldestPolicy:(遗弃最旧的),它选择的丢弃的任务,是它本来要执行的(可怜的娃,就这样被新加入的给排挤了),

下面发出这4种策略的源代码:

原文地址:http://fanwen.wenku1.com/article/28915889.html

范文二:阿里巴巴DBA面试题

DBA笔试考题

2007年06月27日 星期三 17:59

一:SQL tuning 类

1 列举几种表连接方式

等连接、非等连接、自连接、外连接(左、右、全)

2 不借助第三方工具,怎样查看sql的执行计划

I) 使用Explain Plan,查询PLAN_TABLE;

EXPLAIN PLAN

SET STATEMENT_ID='QUERY1'

FOR

SELECT *

FROM a

WHERE aa=1;

SELECT operation, options, object_name, object_type, ID, parent_id

FROM plan_table

WHERE STATEMENT_ID = 'QUERY1'

ORDER BY ID;

II)SQLPLUS中的SET TRACE 即可看到Execution Plan Statistics

SET AUTOTRACE ON;

3:如何使用CBO,CBO与RULE的区别

IF 初始化参数 OPTIMIZER_MODE = CHOOSE THEN --(8I DEFAULT)

IF 做过表分析

THEN 优化器 Optimizer=CBO(COST); /*高效*/

ELSE

优化器 Optimizer=RBO(RULE); /*高效*/

END IF;

END IF;

区别:

RBO根据规则选择最佳执行路径来运行查询。

CBO根据表统计找到最低成本的访问数据的方法确定执行计划。

使用CBO需要注意:

I) 需要经常对表进行ANALYZE命令进行分析统计;

II) 需要稳定执行计划;

III)需要使用提示(Hint);

使用RULE需要注意:

I) 选择最有效率的表名顺序

II) 优化SQL的写法;

4 如何定位重要(消耗资源多)的SQL

使用CPU多的用户session

SELECT a.SID, spid, status, SUBSTR (a.program, 1, 40) prog, a.terminal,a.SQL_TEXT,

osuser, VALUE / 60 / 100 VALUE

FROM v$session a, v$process b, v$sesstat c

WHERE c.statistic# = 12 AND c.SID = a.SID AND a.paddr = b.addr

ORDER BY VALUE DESC;

5 如何跟踪某个session的SQL

利用TRACE 跟踪

ALTER SESSION SET SQLTRACE ON;

COLUMN SQL format a200;

SELECT machine, sql_text SQL

FROM v$sqltext a, v$session b

WHERE address = sql_address

AND machine = '&A'

ORDER BY hash_value, piece;

6 SQL调整最关注的是什么

检查系统的I/O问题

sar-d能检查整个系统的iostat(IO statistics)

7 说说你对索引的认识(索引的结构、对dml影响、对查询影响、为什么提高查询性能)

l 索引有B-TREE、BIT、CLUSTER等类型。ORACLE使用了一个复杂的自平衡B-tree结构;

l 通常来说,在表上建立恰当的索引,查询时会改进查询性能。但在进行插入、删除、修改时,同时会进行索引的修改,在性能上有一定的影响。

l 有索引且查询条件能使用索引时,数据库会先度取索引,根据索引内容和查询条件,查询出ROWID,再根据ROWID取出需要的数据。由于索引内容通常比全表内容要少很多,因此通过先读索引,能减少I/O,提高查询性能。

8 使用索引查询一定能提高查询的性能吗?为什么

l 通常,通过索引查询数据比全表扫描要快.但是我

们也必须注意到它的代价.

n 索引需要空间来存储,也需要定期维护, 每当有记录在表中增减或索引列被修改时,

n 索引本身也会被修改. 这意味着每条记录的INSERT,DELETE,UPDATE将为此多付出4,5 次的磁盘I/O. 因为索引需要额外的存储空间和处理,那些不必要的索引反而会使查询反应时间变慢.

l 使用索引查询不一定能提高查询性能,索引范围查询(INDEX RANGE SCAN)适用于两种情况:

n 基于一个范围的检索,一般查询返回结果集小于表中记录数的30%宜采用;

n 基于非唯一性索引的检索

9 绑定变量是什么?绑定变量有什么优缺点?

l 绑定变量是指在SQL语句中使用变量,改变变量的值来改变SQL语句的执行结果。

l 优点:使用绑定变量,可以减少SQL语句的解析,能减少数据库引擎消耗在SQL语句解析上的资源。提高了编程效率和可靠性。减少访问数据库的次数, 就能实际上减少ORACLE的工作量。

l 缺点:经常需要使用动态SQL的写法,由于参数的不同,可能SQL的执行效率不同;

10 如何稳定(固定)执行计划

可以在SQL语句中指定执行计划。使用HINTS;

11 和排序相关的内存在8i和9i分别怎样调整,临时表空间的作用是什么

SORT_AREA_SIZE 在进行排序操作时,如果排序的内容太多,内存里不能全部放下,则需要进行外部排序,

此时需要利用临时表空间来存放排序的中间结果。

12 存在表T(a,b,c,d),要根据字段c排序后取第21—30条记录显示,请给出sql

SELECT *

FROM (SELECT ROWNUM AS row_num, tmp_tab.*

FROM (SELECT a, b, c, d

FROM T

ORDER BY c) tmp_tab

WHERE ROWNUM

WHERE row_num >= 20

ORDER BY row_num;

二:数据库基本概念类

1 Pctused and pctfree 表示什么含义有什么作用

pctused与pctfree控制数据块是否出现在freelist中,

pctfree控制数据块中保留用于update的空间,当数据块中的free space小于pctfree设置的空间时,

该数据块从freelist中去掉,当块由于dml操作free space大于pct_used设置的空间时,该数据库块将

被添加在freelist链表中。

2 简单描述tablespace / segment / extent / block之间的关系

n tablespace : 一个数据库划分为一个或多个逻辑单位,该逻辑单位成为表空间;每一个表空间可能包含一个或多个 Segment;

n Segments : Segment指在tablespace中为特定逻辑存储结构分配的空间。每一个段是由一个或多个extent组成。包括数据段、索引段、回滚段和临时段。

n Extents : 一个 extent 由一系列连续的 Oracle blocks组成.ORACLE为通过extent 来给segment分配空间。

n Data B

locks :Oracle 数据库最小的I/O存储单位,一个data block对应一个或多个分配给data file的操作系统块。

3 描述tablespace和datafile之间的关系

◎ 一个表空间可包含一个或多个数据文件。

◎ 表空间利用增加或扩展数据文件扩大表空间,表空间的大小为组成该表空间的数据文件大小的和。

◎ 一个datafile只能属于一个表空间;

4 本地管理表空间和字典管理表空间的特点,ASSM有什么特点

n 本地管理表空间:(9i默认)

n 空闲块列表存储在表空间的数据文件头。

n 特点:减少数据字典表的竞争,当分配和收缩空间时会产生回滚,不需要合并

n 字典管理的表空间:(8i默认)

n 空闲块列表存储在数据库中的字典表里.

n 特点:片由数据字典管理,可能造成字典表的争用。存储在表空间的每一个段都会有不同的存储字句,需要合并相邻的块;

5 回滚段的作用是什么

回滚段用于保存数据修改前的映象,这些信息用于生成读一致性数据库信息、在数据库恢复和Rollback时使用。一个事务只能使用一个回滚段。

6 日志的作用是什么

日志文件(Log File)记录所有对数据库数据的修改,主要是保护数据库以防止故障,以及恢复数据时使用。其特点如下:

a)每一个数据库至少包含两个日志文件组。每个日志文件组至少包含两个日志文件成员。

b)日志文件组以循环方式进行写操作。

c)每一个日志文件成员对应一个物理文件。

7 SGA主要有那些部分,主要作用是什么

系统全局区(SGA):是ORACLE为实例分配的一组共享缓冲存储区,用于存放数据库数据和控制信息,以实现对数据库数据的管理和操作。

SGA主要包括:

u a)共享池(shared pool) :用来存储最近执行的SQL语句和最近使用的数据字典的数据。

u b)数据缓冲区 (database buffer cache):用来存储最近从数据文件中读写过的数据。

u c)重作日志缓冲区(redo log buffer):用来记录服务或后台进程对数据库的操作。

另外在SGA中还有两个可选的内存结构:

u d)Java pool: 用来存储Java代码。

u e)Large pool: 用来存储不与SQL直接相关的大型内存结构。备份、恢复使用。

8 Oracle系统进程主要有哪些,作用是什么

u 数据写进程(DBWR):负责将更改的数据从数据库缓冲区高速缓存写入数据文件

u 日志写进程(LGWR):将重做日志缓冲区中的更改写入在线重做日志文件

u 系统监控 (SMON): 检查数据库的一致性如有必要还会在数据库打开时启动数据库的恢复

u 进程监控 (PMON): 负责在一个Oracle 进程失败时清理资源

u 检查点进程(CKPT)

:负责在每当缓冲区高速缓存中的更改永久地记录在数据库中时,更新控制文件和数据文件中的数据库状态信息。

u 归档进程 (ARCH):在每次日志切换时把已满的日志组进行备份或归档

u 恢复进程 (RECO): 保证分布式事务的一致性,在分布式事务中,要么同时commit,要么同时rollback;

u 作业调度器(CJQ ): 负责将调度与执行系统中已定义好的job,完成一些预定义的工作.

三:备份恢复类

1 备份如何分类

n 物理备份

u 物理备份是最主要的备份方式。用于保证数据库在最小的数据库丢失或没有数据丢失的情况下得到恢复。

n 冷物理

u 冷物理备份提供了最简单和最直接的方法保护数据库因物理损坏丢失。建议在以下几种情况中使用。

u 对一个已经存在大最数据量的数据库,在晚间数据库可以关闭,此时应用冷物理备份。

u 对需对数据库服务器进行升级,(如更换硬盘),此时需要备份数据库信息,并在新的硬盘中恢复这些数据信息,建议采用冷物理备份。

n 热物理

u 主要是指备份过程在数据库打开并且用户可以使用的情况下进行。需要执行热物理备份的情况有:

u 由于数据库性质要求不间断工作,因而此时只能采用热物理备份。

u 由于备份的要求的时间过长,而数据库只能短时间关闭时。

n 逻辑备份 (EXP/IMP)

u 逻辑备份用于实现数据库对象的恢复。但不是基于时间点可完全恢复的备份策略。只能作为联机备份和脱机备份的一种补充。

n 完全逻辑备份

u 完全逻辑备份是将整个数据库导出到一个数据库的格式文件中,该文件可以在不同的数据库版本、操作系统和硬件平台之间进行移植。

n 指定表的逻辑备份

u 通过备份工具,可以将指定的数据库表备份出来,这可以避免完全逻辑备份所带来的时间和财力上的浪费。

2 归档是什么含义

n 归档是归档当前的联机redo日志文件。

n SVRMGR> alter system archive log current;

n 数据库只有运行在ARCHIVELOG模式下,并且能够进行自动归档,才可以进行联机备份。有了联机备份才有可能进行完全恢复。

3 如果一个表在2004-08-04 10:30:00 被drop,在有完善的归档和备份的情况下,如何恢复

I) 9i 新增的FLASH BACK 应该可以;

II) Logminer应该可以找出DML。

III)有完善的归档和备份,先归档当前数据,然后可以先恢复到删除的时间点之前,把DROP 的表导出来,然后再恢复到最后归档时间;

不过,我没试过,都是理论的说!!

4 rman是什么,有何特点

n RMAN可以用来备份和还原数据库文件、归

档日志和控制文件。它也可以用来执行完全或不完全的数据库恢复。

n RMAN启动数据库上的Oracle服务器进程来进行备份或还原。备份、还原、恢复是由这些进程驱动的。

n 注意:RMAN不能用于备份初始化参数文件和口令文件。

具有如下特点:

n 功能类似物理备份,但比物理备份强大N倍;

n 可以压缩空块;

n 可以在块水平上实现增量;

n 可以把备份的输出打包成备份集,也可以按固定大小分割备份集;

n 备份与恢复的过程可以自动管理;

n 可以使用脚本(存在Recovery catalog 中)

n 可以做坏块监测

5 standby的特点

备用数据库(standby database):ORACLE推出的一种高可用性(HIGH AVAILABLE)数据库方案,

在主节点与备用节点间通过日志同步来保证数据的同步,备用节点作为主节点的备份

可以实现快速切换与灾难性恢复,从920开始,还开始支持物理与逻辑备用服务器。

9i中的三种数据保护模式分别是:

n MAXIMIZE PROTECTION :最大数据保护与无数据分歧,LGWR将同时传送到备用节点,

u 在主节点事务确认之前,备用节点也必须完全收到日志数据。如果网络不好,引起LGWR不能传送数据,将引起严重的性能问题,导致主节点DOWN机。

n MAXIMIZE AVAILABILITY :无数据丢失模式,允许数据分歧,允许异步传送。

u 正常情况下运行在最大保护模式,在主节点与备用节点的网络断开或连接不正常时,自动切换到最大性能模式,

u 主节点的操作还是可以继续的。在网络不好的情况下有较大的性能影响。

n MAXIMIZE PERFORMANCE:这种模式应当可以说是从8i继承过来的备用服务器模式,异步传送,

u 无数据同步检查,可能丢失数据,但是能获得主节点的最大性能。9i在配置DATA GUARD的时候默认就是MAXIMIZE PERFORMANCE

没实践过,只是把答案列出来。

6 对于一个要求恢复时间比较短的系统(数据库50G,每天归档5G),你如何设计备份策略

数据库比较大逻辑备份没什么必要,每天归档5G,每周三/周六自动归档10G,每月RMAN归档全库。

应该有standby。

我对备份和恢复缺少实践机会,JUST PAPER。

四:系统管理类

1 对于一个存在系统性能的系统,说出你的诊断处理思路

I) 做statspack收集系统相关信息

了解系统大致情况/确定是否存在参数设置不合适的地方/查看top 5 event/查看top sql等

II) 查v$system_event/v$session_event/v$session_wait

从v$system_event开始,确定需要什么资源(db file sequential read)等

深入研究v$session_event,确定等待事件涉及的会话

III)从v$session_wait确定详细的资

源争用情况

通过v$sql/v$sqltext/v$sqlarea表确定disk_reads、(buffer_gets/executions)值较大的SQL

2 列举几种诊断IO、CPU、性能状况的方法

top

uptime

vmstat

iostat

statspack

sql_trace/tkprof

查v$system_event/v$session_event/v$session_wait

查v$sqlarea(disk_reads或buffer_gets/executions较大的SQL)

或者第三方的监视工具,TOAD就不错。

3 对statspack有何认识

认识不深。仅限了解。StapSpack是Oracle公司提供的一个收集数据库运行性能指标的软件包。

可以做数据库健康检查报告。

4 如果系统现在需要在一个很大的表上创建一个索引,你会考虑那些因素,如何做以尽量减小对应用的影响

可以先表分析一下,然后测试创建索引前后对应用的性能影响;

需要考虑的是该索引列不经常更新,不是有很多重复值的情况时, 在大表中使用索引特别有效.

创建的索引可以跟数据表分不同表空间存储。

5 对raid10 和raid5有何认识

几乎不懂。没配过磁盘阵列

五:综合随意类

1 你最擅长的是oracle哪部分?

pl/sql及sql优化

2 喜欢oracle吗?喜欢上论坛吗?或者偏好oracle的哪一部分?

喜欢。PL/SQL比较得心应手。

3 随意说说你觉得oracle最有意思的部分或者最困难的部分

我对数据库的备份/恢复和性能调优经验明显不足,自然觉得有些困难。

基于ORACLE的研究应该是个宽广的领域,所以我觉得还是有意思的。

4 为何要选择做DBA呢?

我对数据库的备份/恢复和性能调优经验明显不足,主要是缺乏环境和交流。

因此,算不上什么DBA。不过因此我更需要这样的机会。

不过就整个ORACLE 来说,一直从事与它相关的工作,感情还是颇深的。放弃可惜。而且就技术本身而言我觉得自己还是有学习和创新的能力,它的诸如数据仓库,数据挖掘之类的领域也很广。

转载请注明出自应届生求职招聘论坛 http://bbs.yingjiesheng.com/,本贴地址:http://bbs.yingjiesheng.com/thread-14235-1-1.html

阅读详情:http://www.wenku1.com/news/C5581D54469945E0.html

范文三:阿里巴巴面试问题

阿里巴巴面试问题:

面试分三个环节,第一是我先自我介绍,谈谈自己的学习工作情况,第二他们会对期间我说的她们感兴趣的话题进行询问,第三是我可以向她们问两个问题。大约半小时吧,第一轮面试就结束了。她们告诉我如果有进一步交流的需要的话会在5个工作日内通知我的。晚上回到住所,大约七点左右吧接到了阿里巴巴的电话,明天下午一点原地方和网站前台组的经理见面。从自我介绍,到专业背景,接下来是性格,工作经历,爱好,职业规划,对界面组的看法,对阿里巴巴电子商务的看法等等。认真地学习了阿里巴巴的创业历史,学习了阿里巴巴的企业文化,价值观,远景目标以及选人用人标准等等,

第一个问题: 你们两先自我介绍一下.

第二个问题对我: 你把他(另一个面试的)介绍给我们.

第三个问题: 你觉得自己有什么优点和缺点

毕业后的打算 你最晚几点可以接受 是怎么打算将来的

说一下你以前的工作吧?你的工作还挺丰富的吗? 很好,你认为你胜任这份工作的优点是什么? 你给我个说服我的理由吧? 的,谢谢您参加我们的面试,我们会对你的简历做一个评估,如果可以的话会三天内给你通知的,如果不行我们会把你的资料放在我们档案库里以供参考!

前两天意外收到一个电话,是阿里杭州公司打来的,问我是否在找工作,说阿里需要招聘一些销售的职位,需要的话,周六可以到他们指定的地方去面试。想着目前的处境,还是决定去面试一下。

其次问我有什么问题需要问的 第五是到阿里巴巴你想得到什么?

那你能不能说一下你在大学里面的一些学习工作和实践情况?”

“你在这些实践中遇到的最大的挫折是什么?你怎么克服的?”

)“你平时喜欢看那些方面的书?”

“说下你最喜欢的三本文学书?”“平时看报纸吗?看那些?”(

“对自己的职业生涯有什么规划吗?”

依我的经验我觉得你的素质会在阿里巴巴有比较好的发展,如果将来发展很好的话你还选择自己创业吗?”

“能不能讲下你为什么选择阿里巴巴?”

)“好的,我的问题问完了,你还有什么要问我的吗?”

阿里巴巴:“你好!我是阿里巴巴的***,你的简历我们收到,想就一些问题跟你聊聊,不知道现在是否有时间?”

阿里巴巴:“从你的简历可以看到,你的社会实践比较多,从事执行类的工作比较多,那么请你谈谈两件你最值得一说的社会经历”。

请你说说你是怎么做的?”

阿里巴巴:“那好,我来说下,这个职位主要是要你干些什么。第一是负责阿里软件的服务商管理与运营,经常策划一些活动;然后是进行一些数据的跟踪和分析;此外,适当的时候要进行一些商家店面的维护;.....”

对自己的未来有什么规划;

“我们这里主要是做 „中国供应商‟的...”

“恩,下面我们问你几个问题

1、 你以前也是做销售的,销售模式是什么,了解我们此次招聘的销售代表主要是做

什么的吗?(

2、 2、上一个公司辞职的原因是什么?(

3、 如果你被录用,你知道在前三个月都不出单的情况下你需要花费多少的交通费之

类的,你了解这个情况吗(了解)?有心理准备吗?(有)

4、 你认为自己有什么优势 老客户和新客户你喜欢面对哪一种?(

阅读详情:http://www.wenku1.com/news/40691ACA3F6EAD81.html

范文四:阿里巴巴常用面试题

前几天参加了阿里巴巴的电话面试,把他们问的问题都记录了下来,希望对那些正准备面试的人有用。

一、String,StringBuffer, StringBuilder 的区别是什么?String为什么是不可变的?

二、VECTOR,ARRAYLIST, LINKEDLIST的区别是什么?

三、HASHTABLE, HASGMAQ,TreeMap区别

四、ConcurrentMap和HashMap的区别

五、Tomcat,apache,jboss的区别

六、GET POST区别

七、SESSION, COOKIE区别

八、Servlet的生命周期

九、HTTP 报文包含内容

十、Statement与PreparedStatement的区别,什么是SQL注入,如何防止SQL注入

十一、redirect, foward区别

十二、关于JAVA内存模型,一个对象(两个属性,四个方法)实例化100次,现在内存中的存储状态,

几个对象,几个属性,几个方法。

十三、谈谈Hibernate的理解,一级和二级缓存的作用,在项目中Hibernate都是怎么使用缓存的

十四、反射讲一讲,主要是概念,都在哪需要反射机制,反射的性能,如何优化

十五、谈谈Hibernate与Ibatis的区别,哪个性能会更高一些

十六、对Spring的理解,项目中都用什么?怎么用的?对IOC、和AOP的理解及实现原理

十七、线程同步,并发操作怎么控制

十八、描述struts的工作流程。

十九、Tomcat的session处理,如果让你实现一个tomcatserver,如何实现session机制

二十、关于Cache(Ehcache,Memcached)

二一、sql的优化相关问题

二二、oracle中 rownum与rowid的理解,一千条记录我查200到300的记录怎么查?

二三、如何分析ORACLE的执行计划?

二四、 DB中索引原理,种类,使用索引的好处和问题是什么?

二五、JVM垃圾回收实现原理。垃圾回收的线程优先级。

二六、jvm 最大内存设置。设置的原理。结合垃圾回收讲讲。

阅读详情:http://www.wenku1.com/news/36BB9CC3F56C196D.html

范文五:阿里巴巴常用面试题

前几天参加了阿里巴巴的电话面试,把他们问的问题都记录了下来,希望对那些正准备面试的人有用。

一、String,StringBuffer, StringBuilder 的区别是什么?String为什么是不可变的?

答:String是不可变的,StringBuffer是可变的;StringBuffer是线程安全的,StringBuilder是非线程安全的。

因而在大部分情况下字符串的拼接速度为:StringBuilder>StringBuffer>String

解释如下:

因为String是不可变的(通过ide的debugger可以发现其属性大都为final类型),因此每次对其操作改变其变量值,其实是生成一个新的对象,然后将变量引用指向新对象;因此速度慢。

StringBuffer则不同,对其操作即直接操作对象指向的引用,无需产生新对象,速度很快;它是线程安全的,在维护多线程的同步等也会消耗一点性能。

StringBuilder是jdk5之后新增的,其用法与StringBuffer完全一致,但它是线程不安全的,在单线程中最佳,因为其不需要维护线程的安全,因此是最快的。

内存效率。

字符串重复的概率很高,

当其不可变时,就可以多个变量共享了。

二、VECTOR,ARRAYLIST, LINKEDLIST的区别是什么?

答:1 ArrayList底层是采用数组实现的(并且改数组的类型是Object类型的)2 如果是jdk6的话,采用Array.of()方法来生成一个新的数组,如果是jdk5.0的话,使用的是System.arraycopy方法(将数组拷贝)

3 List list = new ArrayList();时,底层会生成一个长度为10的数组来存放对象,如果预先知道list

会存放多少个对象的话,最好通过new ArrayList(int length)的方式先确定数组的最小长度,如new

ArrayList(50),这样能提高底层的效率。

4 对于ArrayList与Vector来说,底层都是采用数组方式来实现的(该数组是一个Object类型的数组)

5 对于ArrayList,所有方法都不是同步的,对于Vector,大部分是public的方法都是同步的。

6、LinkedList底层是由双向循环链表实现的,对于ArrayList,查找速度非常快,增加和删除操作非常

慢。(本质上是由数组的特点来决定的)

7、对于LinkList,查找速度非常慢,增加和删除操作非常快。(本质上是由双向循环链表的特点来决定

的)

一、同步性

ArrayList,LinkedList是不同步的,而Vestor是的。所以如果要求线程安全的话,可以使用ArrayList或LinkedList,可以节省为同步而耗费开销。但在多线程的情况下,有时候就不得不使用Vector了。当然,也可以通过一些办法包装ArrayList,LinkedList,使他们也达到同步,但效率可能会有所降低。

二、数据增长

从内部实现机制来讲ArrayList和Vector都是使用Objec的数组形式来存储的。当你向这两种类型中增加元素的时候,如果元素的数目超出了内部数组目前的长度它们都需要扩展内部数组的长度,Vector缺省情况下自动增长原来一倍的数组长度,ArrayList是原来的50%,所以最后你获得的这个集合所占的空间总是比你实际需要的要大。所以如果你要在集合中保存大量的数据那么使用Vector有一些优势,因为你可以通过设置集合的初始化大小来避免不必要的资源开销。

三、检索、插入、删除对象的效率

ArrayList和Vector中,从指定的位置(用index)检索一个对象,或在集合的末尾插入、删除一个对象的时间是一样的,可表示为O(1)。但是,如果在集合的其他位置增加或移除元素那么花费的时间会呈线形增长:O(n-i),其中n代表集合中元素的个数,i代表元素增加或移除元素的索引位置。为什么会这样呢?以为在进行上述操作的时候集合中第i和第i个元素之后的所有元素都要执行(n-i)个对象的位移操作。

LinkedList中,在插入、删除集合中任何位置的元素所花费的时间都是一样的—O(1),但它在索引一个元素的时候比较慢,为O(i),其中i是索引的位置。

所以,如果只是查找特定位置的元素或只在集合的末端增加、移除元素,那么使用Vector或ArrayList都可以。如果是对其它指定位置的插入、删除操作,最好选择LinkedList

三、HASHTABLE, HASGMAQ,TreeMap区别

四、ConcurrentMap和HashMap的区别

五、Tomcat,apache,jboss的区别

答:Apache全球应用最广泛的http服务器,免费,出自apache基金组织 Tomcat应用也算非常广泛的web服务器,支持部分j2ee,免费,出自apache基金组织

JBoss开源的应用服务器,比较受人喜爱,免费(文档要收费)

weblogic应该说算是业界第一的app server,全部支持j2ee1.4, 对于开发者,有免费使用一年的许可证,用起来比较舒服,出资BEA公司,呵呵,我用的就是这个,所以比较熟悉

jboss也支持j2ee

JBoss和WebLogic都含有Jsp和Servlet容器,也就可以做web容器, JBoss和WebLogic也包含EJB容器,是完整的J2EE应用服务器

tomcat 只能做jsp和servlet的container

Jboss内嵌Tomcat... 处理静态页面Jboss的速度要比较快。

Jboss作为应用服务器,而Tomcat做web服务器。

六、GET POST区别

答案:(1)get是从服务器上获取数据,post是向服务器传送数据。

(1) 在客户端,Get方式在通过URL提交数据,数据在URL中可以看到;

POST方式,数据放置在HTML HEADER内提交。

(2) 对于get方式,服务器端用Request.QueryString获取变量的值,对

于post方式,服务器端用Request.Form获取提交的数据。

(2) GET方式提交的数据最多只能有1024字节,而POST则没有此限制。

(3) 安全性问题。正如在(1)中提到,使用 Get 的时候,参数会显示

在地址栏上,而 Post 不会。所以,如果这些数据是中文数据而且是

非敏感数据,那么使用 get;如果用户输入的数据不是中文字符而且

包含敏感数据,那么还是使用 post为好。

七、SESSION, COOKIE区别

答:具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。

同时我们也看到,由于才服务器端保持状态的方案在客户端也需要保存一个标识,所以session

机制可能需要借助于cookie机制来达到保存标识的目的,但实际上还有其他选择

八、Servlet的生命周期

答:Servlet是一种可以在Servlet容器中运行的组件,那么理所当然就应该有一个从创建到销毁的过程,这个过程我们可以称之为Servlet生命周期。Servlet的生命周期可以分为加载、实例化、初始化、处理客户请求和卸载五个阶段,体现在方法上主要是init()、service()和destroy()三个方法。生命周期的具体说明如下:

•Servlet容器完成加载Servlet类和实例化一个Servlet对象

•init()方法完成初始化工作,该方法由Servlet容器调用完成

•service()方法处理客户端请求,并返回响应结果

•destroy()方法在Servlet容器卸载Servlet之前被调用,释放一些资源

本文来自CSDN博客,转载请标明出处:

http://blog.csdn.net/luwei42768/archive/2008/10/31/3191455.aspx

九、HTTP 报文包含内容

十、Statement与PreparedStatement的区别,什么是SQL注入,如何防止SQL注入

答:一.代码的可读性和可维护性.

二.PreparedStatement尽最大可能提高性能.

三.最重要的一点是极大地提高了安全性.

SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问没什么区别

十一、redirect, foward区别

Foward(转发)

使用:

HttpServletRequest.getRequestDispatcher(URL).forward(request, response)

或者 HttpServletContext.getRequestDispatcher(URL).forward(request, response)

原理:

当使用转发时, JSP容器将使用一个内部的方法来调用目标页面,新的页面继续处理同一个请求,而浏览器将不会知道这个过程。

特点:

浏览器中所显示的URL不会被修改. 由于

request并没有中止,所以其中的对象仍然可用.

Redirect(重定向)

使用:

HttpServletResponse.sendRedirect(URL);

原理:

重定向方式的含义是第一个页面通知浏览器发送一个新的页面请求

特点:

当你使用重定向时,浏览器中所显示的URL会变成新页面的URL.

由于重定向方式产生了一个新的请求,所以经过一次重定向后,request内的对象将无法使用。

怎么选择是重定向还是转发呢?通常情况下转发更快,而且能保持request内的对象,所以他是第一选择。但是由于在转发之后,浏览器中URL仍然指向开始页面,此时如果重载当前页面,开始页面将会被重新调用。如果你不想看到这样的情况,则选择重定向。

十二、关于JAVA内存模型,一个对象(两个属性,四个方法)实例化100次,现在内存中的存储状态,

几个对象,几个属性,几个方法。

十三、谈谈Hibernate的理解,一级和二级缓存的作用,在项目中Hibernate都是怎么使用缓存的

十四、反射讲一讲,主要是概念,都在哪需要反射机制,反射的性能,如何优化 十五、谈谈Hibernate与Ibatis的区别,哪个性能会更高一些

十六、对Spring的理解,项目中都用什么?怎么用的?对IOC、和AOP的理解

及实现原理

十七、线程同步,并发操作怎么控制

十八、描述struts的工作流程。

十九、Tomcat的session处理,如果让你实现一个tomcatserver,如何实现session机制

二十、关于Cache(Ehcache,Memcached)

二一、sql的优化相关问题

二二、oracle中 rownum与rowid的理解,一千条记录我查200到300的记录怎么查?

二三、如何分析ORACLE的执行计划?

二四、 DB中索引原理,种类,使用索引的好处和问题是什么?

二五、JVM垃圾回收实现原理。垃圾回收的线程优先级。

二六、jvm 最大内存设置。设置的原理。结合垃圾回收讲讲。

1.Spring对action,biz,dao三类对象的bean配置有什么不同?

2.Hibernate对于“有相同ID的不同对象在session中被锁定”的情况,怎么解决?

3.关于有限状态自动机的一个问题。

4.关于后缀表达式的一个问题。

5.Oracle树查询语法。

6.关于设计模式的一个问题。

阅读详情:http://www.wenku1.com/news/54F89435C4736831.html

范文六:阿里巴巴的面试题...

阿里巴巴的面试题

//功能:网上看到道题:用用最小空间度将一个M*N的矩阵旋转90度(顺逆时针均可) // 个人用五个额处空间(两个循环控制三个暂存)实现。

// 大家一起研究,再优化,如果算法有错欢迎指正

// 如果有更好的方法别忘了回贴

//作者:陈昂(http974@163.com)

//算法说明:

//设有一个(M×N)3*4维矩阵A,旋转后成4*3

// 1 2 3 4 9 5 1

// 5 6 7 8 => 10 6 2

// 9 10 11 12 11 7 3

// 12 8 4

//可以发现旋转后矩阵与原矩阵的关系:

// 旋转后 原矩阵

// A[0,0] = A[2,0] = 9

// A[0,1] = A[1,0] = 5

// A[0,2] = A[0,0] = 1

// A[1,0] = A[2,1] = 10

// A[1,1] = A[1,1] = 6

// A[1,2] = A[0,1] = 2

// A[2,0] = A[2,2] = 11

// A[2,1] = A[1,2] = 7

// A[2,2] = A[0,2] = 3

// A[3,0] = A[2,3] = 12

// A[3,1] = A[1,3] = 8

// A[3,2] = A[0,3] = 4

//可以得出对应关系为:旋转后矩阵A[i,j] = 原矩阵A[ M- j -1, i ]

//所以我们可以用同一个矩阵来保存转换前后的值

//用两层循环(注意外层为N,内层为M),

//依次交换A[i,j] 与 A[ M- j -1, i ],

//(交换不用额外存储空间,直接相加交换,如交换a和b的值:a= a+ b; b= a- b; a = a - b) //这样可以求出A[i,j]的值,原来A[i,j]的值则保存在A[ M- j -1, i ]中

//每一个A[i,j]都唯一对应一个A[ M- j -1, i ],所以我们从0开始依次求A[i,j]的值 //要注意的是如果A[ M- j- 1 ,i]在数组中存放的位置在A[i,j]之后,我们才做交换 //如果A[ M- j- 1 ,i]在A[i,j]之前,则说明A[ M- j- 1 ,i]已经交换过,其值存在对应的

//次A中,依次查找,直到找到位于A这后的对应元素即为该交换的值,下面用流程说明 //

// ~A[x,y]表示A[i,j]对应在原矩阵中的元素.

// 处理元素A[0,0](在数组中的位置为0), 其对应原矩阵的~A[2,0](对应位置为8),交换 // 处理元素A[0,1](位置为1),~A[1,0](位置为4),交换

// 处理元素A[0,2](位置为2),~A[0,0](位置为0),不交换,

// 查找到位置为0的元素对应的~~A[2,0](位置为8),在其之后,即A[2,0]与A[0,0]交换过 // 直接交换A[0,2]和A[2,0] 转摘请注明:www.pghome.net

// 依此类推。

// A[1,0](位置3) -> ~A[2,1](位置9)

// A[1,1](位置4) -> ~A[1,1](位置6)

// A[1,2](位置5) -> ~A[0,1](位置1)(交换过) -> ~~A[2,1] = A[1,0] // ...

// A[3,2](位置11) -> ~A[0,3](位置2,对应新矩阵下标[1,0])(交换过) // -> ~~A[2,1](位置9) ...... ~~~~A[2,3] = 4

//为便于理解,可画出下面三个矩阵。

// 原矩阵 (存储方式相同的矩阵) 旋转后

// 1 2 3 4 1 2 3 9 5 1

// 5 6 7 8 => 4 5 6 => 10 6 2

// 9 10 11 12 7 8 9 11 7 3

// 10 11 12 12 8 4

#include

#include

const int M=3;

const int N=4;

main()

{

int Matrix[M][N]={1,2,3,4,5,6,7,8,9,10,11,12};

int i=0 ;

int j=0 ;

int tmpi = 0;

int tmpj = 0;

int u = 0;

printf(

for (i= 0 ;i

{

for(j=0 ; j

printf(

printf(

}

printf(

for (i= 0 ;i

{

for(j= 0 ; j

{

//求该交换元素在原矩阵对应的位置

tmpi = M- j -1;

tmpj = i ;

//循环查找最后交换的位置

while((tmpi * N + tmpj)

{

u= (tmpi * N + tmpj );

tmpi = u / M ;

tmpj = u % M ;

tmpi = tmpi + tmpj;

tmpj = tmpi - tmpj;

tmpi = tmpi - tmpj;

tmpi = (M-tmpi -1);

}

//交换矩元素,后一个作暂存用

if (*(&Matrix[0][0] + i * M + j) != Matrix[tmpi][tmpj]) {

*(&Matrix[0][0] + i * M + j) = *(&Matrix[0][0] + i * M + j) + Matrix[tmpi][tmpj];

Matrix[tmpi][tmpj] = *(&Matrix[0][0] + i * M + j) - Matrix[tmpi][tmpj];

*(&Matrix[0][0] + i * M + j) = *(&Matrix[0][0] + i * M + j) - Matrix[tmpi][tmpj];

}

printf(

}

printf(

}

getch();

return 0;

}

阅读详情:http://www.wenku1.com/news/2AF0254F4C9CD924.html

范文七:阿里巴巴面试题

阿里巴巴实习面试总结:

1、自我介绍

2、C 语言中空指针的作用

防止指针悬空,指向未知地方造成程序崩溃。空指针是一个特殊指针,也是唯一一个对任何指针类型都合法的指针,指针变量具有空指针值,表示它当前处于闲置状态,没有指向任何意义的内容。

3、C 语言中static 关键字在函数内和函数外的区别? 4、C++的智能指针

智能指针(smart pointer)的一种通用实现技术是使用引用计数(reference count)。智能指针类将一个计数器与类指向的对象相关联,引用计数跟踪该类有多少个对象共享同一指针。 智能指针通常使用类模板来实现。

5、文件传输过程

6、进程间的通信方式

进程间通信和同步方式主要有:管道、信号、消息队列、共享内存、信号量和套接字。 # 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。

# 有名管道(named pipe) :有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。

# 信号量( semophore ) :信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。因此,主要作为进程间以及同一进程内不同线程之间的同步手段。

# 消息队列( message queue ) :消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。

# 信号( sinal ) :信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。 # 共享内存( shared memory )

# 套接字( socket ) :套解口也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同及其间的进程通信。

7、进程和线程的区别

1)一个线程必定也只能属于一个进程;而一个进程可以拥有多个并且至少拥有一个线程。

2)属于一个进程的所有线程共享该进程的所有资源,包括打开的文件、创建的Socket等,不同的进程相互独立。

3)线程又被称为轻量级进程。进程有进程控制块,线程也有线程控制块。但线程控制块比进程控制块小得多。线程间切换代价小,进程间切换代价大。

4)进程是程序的一次执行,线程可以理解为程序中的一段程序片段的执行。

5)每个进程都有独立的内存空间,而线程共享其所属进程的内存空间。

8、Java 中string=“Hello”,string=new string(“Hello”);的区别

占用的内存不同,直接赋值的存在栈中,new出来的存放在堆中。

9、链表的使用场景和树的遍历方式

链表应用场景:

1)对线性表的长度或者规模难以估计;

2)频繁做插入删除操作;

3)构建动态性比较强的线性表。

树的遍历方式:

先序遍历、中序遍历、后序遍历、层次遍历

扩展:

1、static函数和普通函数有什么区别?(static主要用来限制作用域)

C语言中函数有内部函数和外部函数之分。内部函数只能被在本文件内调用,也就是函数的作用域被指定了。而外部函数是没有指定作用域的。如果函数什么都没有加,也就是默认情况下是外部函数。

在内核里面有很多函数只供内部使用,故可以将其声明为内部函数,而供外部提供接口的函数就不用声明为内部函数。例如:内核红黑树的实现。

2、必要的时候声明为内部函数有什么好处呢?

1)可以避免重命名的问题。

内核代码这么多,很容易就遇到了重命名问题,如果声明为内部函数即使出现重命名,编译器也不会报错。

2)可以提高代码的健壮性。

有些内部函数指定了作用域相对于对外是透明的,外面就调用不了。所以可以避免代码的错宗复杂引发的错误。

3、static全局变量和普通全局变量有什么区别?

全局变量的空间的开辟在静态区,加static修饰后仍然在静态区。唯一有变化的就是作用域,加static作用域限定在本文件,不加static的全局变量作用域为整个源程序。

4、static局部变量和普通局部变量有什么区别?(主要用于设置存储属性的)

普通局部变量随函数的调用而开辟空间,随函数执行完而释放空间。而static局部变量不会,它的值始终存在,static局部变量只被初始化一次,下次使用的依然是上一次的值。

5、数组应用场景:

1)注重存储密度;

2)经常做的运算是按序号访问数据元素;

3)数组更容易实现,任何高级语言都支持;

4)构建的线性表较稳定。

阅读详情:http://www.wenku1.com/news/6835EF2B508295AD.html

范文八:阿里巴巴面试经历

这是我当时比较满意的一个OFFER,因为公司很有发展前途,还有配股。笔试~~技术面~~HR面。笔试我是霸王笔的,感觉小半JAVA,大半C++,最后有两条C++的编程题,只有一道比较有把握。想不到五六个小时后就有面试通知了。穿上西装冲过去,第一面的面试官是个四五十岁的中年人,一看就知道是杭州人,问了我STL的一些问题(当时我报了搜索引擎),好在平时用得多,还算熟练,基本答上来了,后来给他讲了百度程序竞赛的一道编程题,正好用到STL的,又给他看了我的成绩表,似乎他对我很满意,叫我出去等二面。二面来了,是2V1,右边的HR好像比较拽,不过我也有应对的办法,就是不卑不亢。记得当时他们狂问我如果你与主管有意见不一致,怎么解决,我就说坚持真理,以公司利益为重,通过交流解决问题,他又说如果还解决不了呢,好像想叼难我,我就说请TEAM中的专家,骨干来解决问题,问题一定能解决的。右边的面试官又问我实践重要么,我就说当然重要啦,云云。最后走在车站的时候接到他们的电话,给了OFFER,后来以毁约为由拖了很久,呵呵。

最后,以我自己的一点经历来给07级的师弟师妹们和还没找到工的同学们一点建议。

1.尽早决定自己要考研还是找工,找工的话走技术还是管理,还是销售路线,这就要从自己的性格和优势出发,还得看看自己想在哪里工作和父母的要求。我一开始就确定找工,并走技术路线了,而且一定要研发。不过在哪里工作这点我做得很烂,拿到阿里巴巴,拖了好久,在父母的强烈要求下,还是没去成,真的是有点可惜。在父母的要求下我考过广州公务员,过了笔试,不过面试的时候发现公务员这行根本不适合我,虽然没上,但也并不觉得可惜。

2.找工前把专业复习一次,特别是数据结构和操作系统,如果想过外企还得看看英语,最好过六级。值得注意的是,重点复习重要的模块,太偏的不要看多,偏的公司不考的。比如操作系统重点看看进程和线程,网络重点看TCP/IP,OSI分层,和各层的定义,用处等。数据结构的话,平时最好多编程,写一些小程序来验证书上的程序。链表,树,排序考得比较多,图的话可以少看。这对于笔试是非常重要的,笔试的重要性不言而喻,往往HR就是看中你笔试做得好,面试减少很多阻力的。复习操作系统和网络,软工我有一个好方法,那就是看高程那本书,这书已经给我们总结得很好了,大半都是精要的部分。课本上的最好也看过一下,互相补充,一些比较重要的知识还可以记在笔记本上,平时复习方便。我就做了一本笔记本,记一些概要的知识。 51mianjing.cn

3.搞好简历。网上大把模板,选自己最适合的,个人认为表格形式比较简练,简历在于二练,别人不会用超过三分钟的时间来看的,控制在两页以内。最好分门别类,一条一条地列出来,不要挤在一堆。课程设计,和自己的一些得意之作可以写上去,不过记得写得上去的要有话可说。没大项目不要紧,基础扎实,实践动手能力强就行。把实验和课程设计做好就行了,本科生还能怎么样。不过奉劝师弟师妹们有机会还是做点项目吧,在应聘华为我吃够了没项目的苦头了。简历做好后多留意就业网,BBS,多投简历。

4.面试笔试过程中不断总结。包括技术和非技术的经验。比如把笔试的一些不会的问题 ,事后搞明白它,下次应聘就会了。非技术的想想答得不好的开放性问题怎么答,准备一下事例,比如为什么不考研。

5.服装。印象分挺重要的。不是太拮据的话买套老西吧,把自己搞帅(漂亮)点。

6.心态问题。这个重要性大家都知道了。总的来说,尽全力应聘一家公司,完了后马上忘掉,去应聘下一家公司,以一种韧性而不竭努力的精神去找工,千万不要急躁,也不要想太多得失问题,人生本来就太多未知的因数,能做到宠辱不惊最好,同时不断总结经验,相信总有自己的OFFER的。像我这么笨的人找了六七个月都找到了,师弟师妹们肯定行的。

7.看公司不能只看眼前利益。国企和公务员更加如此。可以看看公司福利如何,吃住方面,还有一个重要的,就是有些公司有配股,如晶门科技,阿里巴巴,迅雷。

真的快找了一年了,经历了无数的笔试和面试,投了百多次简历,感觉自己在这一年中不仅学会了找工,还学到不少做人做事的道理,被打击多了,学会了宠辱不惊,开始成熟一点了。这一年虽不乏收获,但总的来说一路曲曲折折,所幸自己都以韧性的心态及时调整过来了,以平稳的心态和稳定的发挥去迎接新的挑战,或者这也是做人的一个道理吧。

阅读详情:http://www.wenku1.com/news/30C782C179A38362.html

范文九:阿里巴巴面试经验分享

阿里巴巴面试经验

阿里巴巴这个公司想必大家都知道,无论哪个专业的同学。我爸爸妈妈这一辈都还认识马云呢,爷爷那一辈就只认识毛主席了,呵呵。不知道是马云是成就了阿里巴巴,还是阿里巴巴成就了马云,反正提起阿里巴巴就提到马云,提到马云就必然谈到他的阿里巴巴。阿里巴巴这个公司固然是很多应届大学生的向往之地。

我呢,经常混迹在互联网业界,结识了不少所谓的“圈内人士”。阿里巴巴产品运营师周锦增兄弟告诉我,阿里巴巴要招人。于是,我抱着试一试的态度投了简历。

我刚开始直接投了一份简历到HR那里,发现杳无音讯,我投的是阿里巴巴总部杭州。估计是没戏了。后来,通过跟阿里巴巴的周兄弟联系,说要我先把简历给他,他帮我内部推荐,于是我把简历给了他,他又指导我怎么修改下,内容方面整下。听说,阿里巴巴内部推荐的程序非常完善,到了哪一步,相关负责人给出什么评价都可以及时跟踪。以前就听说过,内部推荐并不是推荐关系户,亲戚朋友啥的,而是推荐优秀的人才。

推荐上去之后,周兄弟要我等消息,意思说,公司如果觉得你不错的话,就会联系你。后来,第二天,周兄弟就给我发了条短信,说公司周五下午会对我进行电话面试。我非常激动,很想感受下大公司的面试。于是周五下午我一直在等电话。结果,非常不料,快到两点的时候,我们书记叫我跟她一起去省里办事,没办法,只好硬着头皮跟着上了车。心想,要是阿里巴巴打电话来面试怎么办?果然,车子还没

有上长潭高速公路,一个电话打来了,一看是杭州的区号。想了四五下,我都不敢接,看见书记在觉得有点不好。后来还是接起了,跟书记说我先接个电话。

继续哦!接起电话后…..

阿里巴巴:“你好!我是阿里巴巴的***,你的简历我们收到,想就一些问题跟你聊聊,不知道现在是否有时间?”

胡忠:“你好!现在有时间。”(没时间也得说有时间呀,莫非我说不好意思,我没时间么,汗。)

阿里巴巴:“从你的简历可以看到,你的社会实践比较多,从事执行类的工作比较多,那么请你谈谈两件你最值得一说的社会经历”。我吓了一跳,最怕别人问带“最”的问题。胡忠:“一是,做过海内网,….;二是在学校运营网站,…”

阿里巴巴:“好,既然你做过海内网的团队管理者,请你说说你是怎么做的?”

本来我做过很多形式的推广,但是一到面试的时候就不晓得怎么说了。我傻傻地回答:“能用到的宣传方式我都用到了,比如….”后来想想这样回答太插劲了。

阿里巴巴:“恩,现在我有个问题,看你会怎么解决。假如,你是一个40多人团队的负责人,现在上级下达了新的规章和制度,请你说下,你会怎么做,把公司新修改的规则传达给下面的团队成员,并保证他们能够按照你说的去做?”这个问题就有点挑战了,我该怎么做呢?我实在想不出怎么回答,就把在实践过程中的处理方式跟他描述

了一下。接着他又针对我的回答追问了几个问题。

阿里巴巴:“你觉得什么样的产品算是一个成功的软件产品?”

这个问题也比较棘手。我主要关注的是网络营销、SEO领域,对产品方面不是太熟悉。不过,还好我前段时间研究了一段时间的产品,认真研读了交互设计、用户体验方面的书籍。此外,我在北京中关村祝老师那里实习的时候也策划过产品。

胡忠:“我觉得一个成功的产品,要用最少的元素表现更多的东西,最少的工作和行为能够满足用户的预期目标。让用户感到体验度很好,处于一种‘流’的状态,感觉到运用这个软件产品时间不知不觉地会过去,而不会感到不流畅。”

阿里巴巴:“你平时关注互联网产品吗?你的博客是否经常会对一些新的软件产品写出自己的心得?”

胡忠:“我平时也关注互联网产品,关注互联网业界。但是,我的个人博客主要是网络营销博客,关注网络营销领域,我想把我的个人博客变得尽量专业,争取只写网络营销方面的东西。对于新的产品….”这个问题,我能够感受到,主考官不太满意。但是,我总不能撒谎吧。阿里巴巴:“你做过网页吗,你是否熟悉HTML语言?”

胡忠:“我做过网页,熟悉HTML语言,还了解一些CSS、PS的应用。”

阿里巴巴:“你会用DREAMVEVER软件吗?”

胡忠:“会用”

阿里巴巴:“你什么时候毕业,你是全天上班还是要回来考试之类?”胡忠:“可以全天上班,但是,学校有事就要回来考试之类。”(大四的课应该没课)

阿里巴巴:“那好,我来说下,这个职位主要是要你干些什么。第一是负责阿里软件的服务商管理与运营,经常策划一些活动;然后是进行一些数据的跟踪和分析;此外,适当的时候要进行一些商家店面的维护;…..”

胡忠:“恩,知道了。”

阿里巴巴:“我会把今天面试的情况跟相关部门反映,接下来,如果没有问题的话,我们的HR会给你打电话。那今天就先这样,再见!”胡忠:“好的,那就先这样,再见!”

面试的过程,大概就这样。还有几个小问题忘记了。而且车子在路上开,边打电话信号也

不稳定,加之书记跟我同坐在车里,面试的时候有些话不好讲,感觉放不开,而且我讲话

声音很小。挂了电话后,跟书记说电话打完了。估计到现在,她还不知道,那天我打了半

小时电话其实是一个面试。

不过,也还好。那天跟书记去了团省委、路侨集团后,在长沙冰火楼

吃饭,很爽。一起吃饭的有

央视记者兼湖南卫视记者、湖南经视体育频道主播还有湖南经视新闻360度的策划人。挺

开心,见到了电视里面的主持人,学到了很多东西。尤其跟校友刘航学长。

总结几点阿里巴巴面试经验和教训

1、找人内部推荐,几率更大;

2、最好学点HTML、PS基础知识,如果以后打算从事网络方面的工作,尤其电子商务专业学生;

3、有意识的准备一些面试素材,比如他问经历最深刻的事情呀,最喜欢看的几本书呀之类的常见问题;不要刻意去撒谎,但是我觉得至少不要像我一样没有思路,呵呵。

4、对自己简历中提到的事情,一定要事先有准备,回答起来才收放自如;

5、面试一定要放得开。这个是三翼原CEO陈凯特再三告诫我们的。

阅读详情:http://www.wenku1.com/news/BCE6DDDFA925AF20.html

范文十:阿里巴巴笔试题目

阿里巴巴笔试题

分类: 面试珠玑2011-10-25 11:05172人阅读评论(4)收藏举报

1、有一个虚拟存储系统,若进程在内存中占3页(开始时内存为空),若采用先进先出(FIFO)页面淘汰算法,当执行如下访问页号序列后1,2,3,4,5,1,2,5,1,2,3,4,5,会发生多少缺页?

A、7 B、8 C、9

D、10

2、设有一个顺序栈S,元素s1、s2、s3、s4、s5、s6依次进栈,如果6个元素的出栈顺序为s2、s3、s4、s6、s5、s1,则顺序栈的容量至少应为多少?

A、2 B、3 C、4

D、5

3、下列关于文件索引结构的叙述中,哪一个是错误的?

A、采用索引结构,逻辑上连续的文件存放在连续的物理块中

B、系统为每个文件建立一张索引表

C、索引结构的优点是访问速度快,文件长度可以动态变化

D、索引结构的缺点是存储开销大

4、【0、2、1、4、3、9、5、8、6、7】是以数组形式存储的最小堆,删除堆顶元素0后的结果是()

A、【2、1、4、3、9、5、8、6、7】

B、【1、2、5、4、3、9、8、6、7】

C、【2、3、1、4、7、9、5、8、6】

D、【1、2、5、4、3、9、7、8、6】

5、某页式存储管理系统中,地址寄存器长度为24位,其中页号占14位,则主存的分块大小是()字节。

A、10 B、2^10 C、2^14 D、2^24

6、在一个长为33厘米的光滑凹轨上,在第3厘米、第6厘米、第19厘米、第22厘米、第26厘米处各有一个钢珠,凹轨很细,不能同时通过两个钢珠,开始时,钢珠运动方向是任意的。两个钢珠相撞后,以相同速度反向运动。假设所有钢珠初始速度为每秒运动1厘米,那么所有钢珠离开凹轨的最长可能时间是()

A、30 B、26 C、38 D、33

7、std::vector::iterator重载了下面哪些运算符?

A、++ B、>> C、*(前置) D、==

8、下列运算符,在C++语言中不能重载的是()

A、* B、?: C、:: D、delete

9、在排序方法中,元素比较次数与元素的初始排列无关的是()

A、Shell 排序 B、归并排序 C、直接插入排序 D、选择排序

10、给定如下代码: int x[4]={0}; int y[4]={1}; 数组x和y的值为()

A、{0,0,0,0},{1,1,1,1}

B、{0,0,0,0},{1,0,0,0}

C、{0,不确定},{1,不确定}

D、与编译器相关

10、给出以下定义,下列哪些操作时合法的?

const char *p1 = "hello";

char* const p2 = "world";

A、p1++ B、p1[2]='w'; C、p2[2]='l';

D、p2++

11、假设在n进制下,下面的等式成立,n值是() 567*456=150216

A、9 B、10 C、12 D、18

12、关于struct和class,下列说法正确的是()

A、struct的成员默认是public,class的成员默认是private

B、struct不能继承,class可以继承

C、struct可以有无参构造函数

D、struct的成员变量只能是public

13、定义一个函数指针,指向的函数有两个int形参并且返回一个函数指针,返回的指针指向一个有一个int形参且返回int的函数?

A、int (*(*F)(int, int))(int)

B、int (*F)(int, int)

C、int (*(*F)(int, int))

D、*(*F)(int, int)(int)

14、声明一个指向含有10个元素的数组的指针,其中每个元素是一个函数指针,该函数的返回值是int,参数是int*,正确的是()

A、(int *p[10])(int*);

B、int [10]*p(int *);

C、int (*(*p)[10])(int *);

D、int ((int *)[10])*p;

E、以上选项都不正确

15、一个栈的输入序列为123.....n,若输出序列的第一个元素是n,输出第i(1

A、不确定

B、n-i+1

C、i

D、n-i

16、下列代码编译时会产生错误的是()

 #include using namespace std; struct Foo { Foo() { } Foo(int) { } void fun() { } };

 int main(void)

 {

 Foo a(10); //语句1

 a.fun(); //语句2

 Foo b(); //语句3

 b.fun(); //语句4

 return 0;

 }

A、语句1 B、语句2 C、语句3 D、语句4

17、在32位机器上,下列代码中

 #pragma pack(2)

 class A

 {

 int i;

 union U

 {

 char buff[13];

 int i;

 }u;

 void foo() { }

 typedef char* (*f)(void*);

 enum{red, green, blue} color;

 }a;

sizeof(a)的值是()

A、20 B、21 C、22 D、24 E、非以上选项

18、下面描述中,错误的是()

A、基类定义的public成员在公有继承的派生类中可见,也能在类外被访问

B、基类定义的public和protected成员在私有继承的派生类中可见,在类外可以被访问

C、基类定义的public和protected成员在保护继承的派生类中不可见

D、基类定义的protected成员在protected继承的派生类中可见,也能在类外被访问

19、当很频繁地对序列中部进行插入和删除操作时,应该选择使用的容器是()

A、vector B、list C、deque D、stack

20、判断一个单向链表中是否存在环的最佳方法是()

A、两重遍历 B、快慢指针 C、路径记录 D、哈希表辅助

21、给你1、2、3 这三个数字 可以使用C的各种运算符 你能表示的最大的整数是()

A、2*3*sizeof(1) B、3

sizeof(3)

阅读详情:http://www.wenku1.com/news/318C44D573DD50D1.html