阿里巴巴面试题

阿里巴巴面试题

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

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

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

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

范文一:阿里巴巴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://fanwen.wenku1.com/article/28915887.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

范文六:阿里巴巴运营面试题

阿里巴巴非技术类笔经及试题

周四晚上收到了阿里巴巴笔试的通知,于是急忙在网上找人拼车,第二天早上5点多就起来,赶车去参加阿里巴巴非技术类的笔试,笔试地点在电子科大,时间上早上八点。

网上一直都没有阿里巴巴笔试的经验,所以今晚给大家说说阿里巴巴的笔试。阿里巴巴的笔试不是传说中的行测,而是针对于阿里巴巴网站本身的题,所以大家在笔试前,还是多看看阿里巴巴的简介,新闻等,比较有帮助。

具体能记住的的笔试题有这些:

一、论述题

(1)你认为应聘的该职位能为你带来什么?

(2)你最常登录的三个会员制网站是什么?有什么特色?

(3)至今为止你认为对你影响最大的一本书是什么?

二、

(1)预测FACEBOOK全球手机用户

(2)请预测淘宝一天交易额有多少,并说明理由。

(3)阿里巴巴的搜索引擎和谷歌的搜索引擎的异同点。

三 、给出了淘宝网上10件商品进行排序,并说明理由

四、给了几十个英文单词进行排序,主要类别有计算机类、办公类和一般家用类。

总的说来,阿里巴巴笔试还是很有针对性的,看重对它企业的了解度和比较专业的网站知识,虽说是非技术类的,还是考了很多技术方面的信息,所以励志进入网站类的同学,一定要多看你喜欢企业的新闻,多了解相关企业的业务,技术。

最后,到现在还没通知,估计被鄙视了……

祝大家好运,加油@~!

阿里巴巴2014校招-运营专员-在线笔试-题目

昨天收到了邮件,刚刚做完了题目,看到BBS里好像还没有人分享,就先分享了赞一下人品。

整个考试时间100分钟,网上答题,点你收到的邮件链接进去就可以了。

前40分钟是行测题目,后60分钟是论述题部分。

行测:共4个部分,基本每个部分10分钟。

第一部分(10分钟):数字推理,就是比较基础的数列推理,很多答案网上可以查。

第二部分(10分钟):信息处理,就是个一些表格让你算一下数据,增长率什么的。准备好计算器和纸笔,都比较简单。

第三部分(10分钟):图形推理,常见的图形推理,不是很难。

第四部分(10分钟):智力题。大概类型有排列组合,运筹问题,最优解什么的。答案基本网上也搜得到。

小结和技巧:

1. 每个部分之前有练习题,不计分不计时间,可以用来准备各种工具,准备好百度,经典行测题目什么的。

2. 总体来说难度不大,题目也比较旧,时间相对宽裕,稳扎稳打即可。

论述题部分:

(三选一)请从下面的三道题目中选择一道进行作答。请本着诚信原则,独立作答,字数不限。

1)轻松苹果,Adidas,Zara三个品牌中选择一个,分析该品牌的

特性和粉丝特征;并结合该品牌推出的新品,策划一个新品上市的活动。

2)你是否会使用校内,它对你最大的用处是什么?相比微信,对于你的生活中它有什么是微信不可替代的?这两个应用中,你的好友有什么样的区别,为什么不放在同一个IM当中?

3)给你一笔10万元的营销费用,推广“来往”(阿里巴巴旗下的社交平台网站),让尽可能多的人上来使用。请设计一下你的推广方案。

三选一回答,我选的是第二题。

第二题:有没有创业经历,比如开淘宝店,搭一个网站,开水果店等。简述创业背景,过程和成就。

第三题:和同龄人相比,你觉得自己身上最突出的特质是什么?具体表现在什么地方?在你做过的事情中,有哪些事情会让你有很强的成就感和责任感。(貌似有字数限制,大概500字左右吧)

最后是祝大家好运啦!!!

阿里巴巴“运营专员”笔试内容,答题策略

刚做完阿里巴巴笔试题目:

内容两大块:第一部分:逻辑题,分析题等行测题。我是认为我死,基本上不会。这块薄弱同学自求多福吧。

第二部分:主观论述题:我比较喜欢告诉你们题目,自己提前想一想,润色润色该怎么回答:

一.选做题:三个题目选一个

1.几大服装品牌:他们用户群体,粉丝文化分析,怎么在淘宝或者网上做活动。(此题目偏重运营推广。了解这几类服装品牌同学,开过淘宝的人可以试试,建议答题重点是策划网站活动。)

2.校内网做什么?校内网和微信区别?校内网和微信可以做成一个IM

(此题目偏重竞品分析,我选择这个题目,因为三个题目最简单,但是也不太好回答,建议前两问简答,最后一个问题是重点:多多填写,少说虚的,多说产品体验,产品交互方面设想。一定要和运营扯上关系,你生搬硬套也可以。现在就去下个阿里“来往”,这个题目是怎么让用户不用校内,微信用“来往”?)

3,给"来往"设计一个推广。怎么提升用户量,怎么提升注册量,怎么让更多人使用“来往”(有APP推广经验,或者工具运营推广童鞋有福)

选作题目:居然有两个和移动应用有关系?难道这次运营专员阿里“来往”业务?

二.你有牛逼的经历:在淘宝上开网店,自己做网站,搞赚钱项目(建议尽量往淘宝,天猫上靠,比如你在国外旅行看到某某商品,然后联系店家进一批货,挂到淘宝上卖,你要写出怎么设计文案,怎么设计满意价格,怎么摄影。怎么往第三方平台做推广,总之也一句话,你这个创业经历必须有电商,必须有淘宝,必须有阿里。不要真写成牛逼经历。这是我的建议)

三,你的特点,你的取得成就。举一些例子;

亲们,你们既然应聘运营专员,总要明白运营专员做什么,做过运营童鞋尽量谢谢自己运营方面工作,怎么解决用户反馈,怎么和产品讨论产品方向,自己熬到半夜设计运营方案。遇到运营数据不满意我是怎么做的。例子尽量往运营上面靠。

以上是主观题,是我自己反思,还没做笔试童鞋建议大家多想一想。

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

范文七:阿里巴巴Linux面试题2014

阿里巴巴笔试题选解

--9月22日,阿里巴巴北邮站

小题:

1、有三个结点,可以构成多少种树形结构?

2、一副牌52张(去掉大小王),从中抽取两张牌,一红一黑的概率是多少? 编程题:

3、设计一个最优算法来查找一n个元素数组中的最大值和最小值。已知一种需要比较2n次的方法,请给一个更优的算法。情特别注意优化时间复杂度的常数。

4、已知三个升序整数数组a[l], b[m]和c[n]。请在三个数组中各找一个元素,是的组成的三元组距离最小。三元组的距离定义是:假设a[i]、b[j]和c[k]是一个三元组,那么距离为:

Distance = max(|a[ I ] – b[ j ]|, |a[ I ] – c[ k ]|, |b[ j ] –

c[ k ]|)

请设计一个求最小三元组距离的最优算法,并分析时间复杂度。

5、在黑板上写下50个数字:1至50.在接下来的49轮操作中,每次做如下动作:选取两个黑板上的数字a和b,擦去,在黑板上写|b - a|。请问最后一次动作之后剩下数字可能是什么?为什么?

题解:(题解非官方,仅供参考,有错误的地方望指正!谢谢)

1、有三个结点的,可以构成多少个种树形结构?

解:应该是5种;

2、一副牌52张(去掉大小王),从中抽取两张牌,一红一黑的概率是多少? 考察概率论知识

解法一: 52张牌从中抽两张,就是 C(2,52)种情况,一红一黑是C(1,26) * C(1,26)种

P = [C(1,26) * C(1,26) ] / C(2,52) = 26 * 26 / (26 * 51) = 26/51

解法二: 全为黑或者全为红是C(2,26)种情况,由于是黑和红两种,所以要乘以2

P = 1 - C(2,26) / C(2,52) - C(2,26) / C(2,52) = 1 - 2 * (26 * 25)/(51 * 52) = 1 - 25/51 = 26/51

3、设计一个最优算法来查找一n个元素数组中的最大值和最小值。已知一种需要比较2n次的方法,请给一个更优的算法。情特别注意优化时间复杂度的常数。

解:把数组两两一对分组,如果数组元素个数为奇数,就最后单独分一个,然后分别对每一组的两个数比较,把小的放在左边,大的放在右边,这样遍历下来,总共比较的次数是 N/2 次;在前面分组的基础上,那么可以得到结论,最小值一定在每一组的左边部分找,最大值一定在数组的右边部分找,最大值和最小值的查找分别需要比较N/2 次和N/2 次;这样就可以找到最大值和最小值了,比较的次数为

N/2 * 3 = (3N)/2 次

如图会更加清晰:

代码实现:

#include

#include

#define N 7

int main()

{

int arr[N] = {4, 1, 5, 9, 9, 7, 10};

int iter = 0;

int cnt = 0;

for(iter = 0; iter

{

if(++cnt && arr[iter] > arr[iter + 1] )

{

int temp = arr[iter];

arr[iter] = arr[iter + 1];

arr[iter + 1] = temp;

}

}

int myMin = arr[0];

for(iter = 2; iter

{

if(++cnt && arr[iter]

{

myMin = arr[iter];

}

}

int myMax = arr[1];

for(iter = 3; iter

{

if(++cnt && arr[iter] > myMax)

{

myMax = arr[iter];

}

}

if(N % 2 != 0 && ++cnt && myMax

printf(

printf(

return 0;

}

上面的算法比较次数基本上已经是最优了,但是有朋友提出这样的顾虑,在极端的情况下,每次都做交换,可能会导致程序开销很大,这样的顾虑是对的,其实在上面的算法的基础上,可以不做交换就能找到最大值和最小值。

第3题 改进的算法:

依旧把数组两两一组分配,不做交换操作,设置一个最大值Max和最小值Min,依次和每一组的两个数据做比较,把较大的值给Max,较小的值给Min,遍历一次就能找到数组的最大值和最小值。

示例:数组为{(4, 1) , (5, 9) , (9 ,7) ,(10,2)},经过第一组比较得到Max = 4,Min = 1,其中比较了3次;,经过第二组比较得到Max = 9,Min = 1,其中比较了3次;……到最后Max = 10,Min = 1;比较次数是3 * N/2 = (3N)/2,比较次数没有改变!代码实现不难,就不贴了

4、已知三个升序整数数组a[l], b[m]和c[n]。请在三个数组中各找一个元素,是的组成的三元组距离最小。三元组的距离定义是:假设a[i]、b[j]和c[k]是一个三元组,那么距离为:

Distance = max(|a[ I ] – b[ j ]|, |a[ I ] – c[ k ]|, |b[ j ] –

c[ k ]|)

请设计一个求最小三元组距离的最优算法,并分析时间复杂度。 解:这道题目有两个关键点:

第一个关键点: max{|x1-x2|,|y1-y2|} =

(|x1+y1-x2-y2|+|x1-y1-(x2-y2)|)/2 --公式(1)

我们假设x1=a[ i ],x2=b[ j ],x3=c[ k ],则

Distance = max(|x1 – x2|, |x1 – x3|, |x2 – x3|) =

max( max(|x1 – x2|, |x1 – x3|) , |x2 – x3|) --公式(2)

根据公式(1),max(|x1 – x2|, |x1 – x3|) = 1/2 ( |2x1 – x2– x3| + |x2 – x3|),带入公式(2),得到

Distance = max( 1/2 ( |2x1 – x2– x3| + |x2 – x3|) , |x2 – x3| ) =1/2 * max( |2x1 – x2– x3| , |x2 – x3| ) +

1/2*|x2 – x3| //把相同部分1/2*|x2 – x3|分离出来

=1/2 * max( |2x1 – (x2 + x3)| , |x2 – x3| ) + 1/2*|x2 – x3| //把(x2+ x3)看成一个整体,使用公式(1)

=1/2 * 1/2 *((|2x1 – 2x2| + |2x1 – 2x3|) + 1/2*|x2 – x3|

=1/2 *|x1 – x2| + 1/2 * |x1 – x3| + 1/2*|x2 – x3| =1/2 *(|x1 – x2| + |x1 – x3| + |x2 – x3|) //求出来了等价公式,完毕!

第二个关键点:如何找到(|x1 – x2| + |x1 – x3| + |x2 – x3|) 的最小值,x1,x2,x3,分别是三个数组中的任意一个数,这一题,我只是做到了上面的推导,后面的算法设计是由csdn上的两个朋友想出来的方法,他们的CSDN的ID分别为 “云梦泽” 和 “ shuyechengying”.

算法思想是:

用三个指针分别指向a,b,c中最小的数,计算一次他们最大距离的Distance ,然后在移动三个数中较小的数组指针,再计算一次,每次移动一个,直到其中一个数组结束为止,最慢(l+ m + n)次,复杂度为O(l+ m + n)

代码如下:

#include

#include

#include

#define l 3

#define m 4

#define n 6

int Mymin(int a, int b, int c)

{

int Min = a

Min = Min

return Min;

}

int Solvingviolence(int a[], int b[], int c[])

{

//暴力解法,大家都会,不用过多介绍了!

int i = 0, j = 0, k = 0;

int MinSum = (abs(a[i] - b[j]) + abs(a[i] - c[k]) + abs(b[j] - c[k])) / 2; // int store[3] = {0};

int Sum = 0;

for(i = 0; i

{

for(j = 0; j

{

for(k = 0; k

{

Sum = (abs(a[i] - b[j]) + abs(a[i] - c[k]) + abs(b[j] - c[k])) / 2; if(MinSum > Sum)

{

MinSum = Sum;

// store[0] = i;

// store[1] = j;

// store[2] = k;

}

}

}

}

// printf(

// printf(

return MinSum;

}

int MinDistance(int a[], int b[], int c[])

{

int MinSum = 0; //最小的绝对值和

int Sum = 0; //计算三个绝对值的和,与最小值做比较

int MinOFabc = 0; // a[i] , b[j] ,c[k]的最小值

int cnt = 0; //循环次数统计,最多是l + m + n次

int i = 0, j = 0, k = 0; //a,b,c三个数组的下标索引

MinSum = (abs(a[i] - b[j]) + abs(a[i] - c[k]) + abs(b[j] - c[k])) / 2; for(cnt = 0; cnt

{

Sum = (abs(a[i] - b[j]) + abs(a[i] - c[k]) + abs(b[j] - c[k])) / 2; MinSum = MinSum

MinOFabc = Mymin(a[i] ,b[j] ,c[k]);//找到a[i] ,b[j] ,c[k]的最小值 //判断哪个是最小值,做相应的索引移动

if(MinOFabc == a[i])

{

if(++i >= l) break;

}//a[i]最小,移动i

if(MinOFabc == b[j])

{

if(++j >= m) break;

}//b[j]最小,移动j

if(MinOFabc == c[k])

{

if(++k >= n) break;

}//c[k]最小,移动k

}

return MinSum;

}

int main(void)

{

int a[l] = {5, 6, 7};

int b[m] = {13, 14, 15, 17};

int c[n] = {19, 22, 24, 29, 32, 42};

printf(

return 0; }

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

范文八:阿里巴巴销售人员面试题

阿里巴巴销售人员面试题

1、 首先简单做一下自我介绍工作经历、工作内容、销售方式、销售业绩 答本人毕业于福建师大高分子材料系大学时代就对销售工作感兴趣觉的很有意思与人周旋、商务谈判????为此还特地到福州大学听商务谈判的选修课毕业后进入仪器公司接触了真正的生意、实战成功失败的正反两方面经验和教训锻炼了我通过不断的总结和反思销售能力得到了提高在仪器公司我负责专项产品的销售和培训讲师工作通过对客户群进行筛选和准确定位、电话预约、出差、技术沟通、价格谈判、反复洽谈、最后双赢签单这样不间断的经过2年左右的实战使我对销售工作有了新的了解与体会销售就是自我管理自强才能不息善于从复杂局面中抓住问题的实质仔细思考销售战略的可行性与针对性最后富有成就感的为客户提供合适的产品和服务自我介绍完毕。 2、 你的优势是什么自我评价在以前公司是怎么展示的收入 答善于把握复杂局面抓住事务的实质善于通过反思总结提高自己不被表象所迷惑使销售工作的每一步都尽可能有可行性和针对性确保按期、按预算完成销售任务。 08年的时候我曾接手一个项目跟大家简单分享一下由于负责业务员的离职使莆田的一个大客户面临失去的危险我通过研究该业务员留下的拜访记录及业务报表并与上司沟通发现了一个问题该客户与业务员之间老是推杯换盏表面看似很好可就是不见谈判的实质性进展业务员很累估计客户也一样后来证实了这点就是说问题的关键在于该业务员偏离了销售而转到了人力不懂的如何收尾倒逼。后来我通过与客户电话联系深入的交换看法出差面对面交谈通过互相让步协商迅速进入实质性阶段双方都很满意的结束了这一单。 3、 你最成功的案例是什么为什么把他分享最高收入的一个月是多少谈谈这个月的签单情况为什么会这么好一共有几个月拿到这么多 答在做业务的过程中最失败的时候就是一段时期就跟定那么一两个客户导致的结果就是最后掉单就是掉单于是只能拿到低薪了后来通过与上司和优秀销售员交流同期客户量渐渐多了起来一般是同时有10个A级客户存在这样保证了比较稳定的出单所以最成功的案例就是观念的转变销售手段的提高。 4、 模拟一下产品销售过程 答egHR指着一步电话机问你如何销售给他 首先是挖掘需求一步性能稳定的电话机不仅音质高雅而且信号稳定值得您这样的商务人士拥有。 再次是放大需求在电话交谈的过程中在关键时刻电话出现杂音损失也许是巨大的。 再次满足需求本公司的电话机采用先进的工艺优质进口芯片可为您解决这方面的扰人问题。 最后促进成交技术和价格方面的指标显示是同类产品所不可比拟的如若购买大批量售后服务方面还将提供切实的优惠。 5、 你两年内的目标是什么打算如何实现 从事两年的销售工作对基本的销售工作有了比较全面的了解。 未来两年的主要任务是积累实力。主要是四个方面业绩水平、销售技能、客户资源、心理素质。 通过吃苦耐劳的实践和务实的工作作风去实现这些实力的积累。 6、职位描述 主动寻找并上门拜访外贸型企业销售alibaba国际站的年度会员“中国供应商出口通”及增值服务。 职位要求 1、大专以上学历至少1年以上销售工作经验 2、开拓能力强能承受工作压力上进心强敢于挑战高薪

3、有企业直销经验者优先有网络广告、电子商务物流行业保险金融行业快速消费品销售工作经验者。 7、 阶段一:.熟悉产品 好的业务员有着精湛的专业知识而企业往往会忽略这个问题直接把业务员拉入做业务员.这会给企业带来的不但有物质的损失也有名誉上的损失.因为客人总觉得该公司不那么专业不那么值得可信.所以阿里诚信通中国供应商的操作员都必须有熟练的专业知识交流技巧.一个新手很难找到与客人谈话的感觉常常答非所问啼笑皆非也最易破坏一个企业的形象. 所以做为一个新的行业接触者就必须从生产车间开始学起学习包装材料组成规格品质等.除了产品本身的品质特点我们也要了解样品制作时间样品制作费用交样时间下大货需要的生产时间日产量有多少机器车间大小车间员工的作息时间管理制度等.因为在接见外国客人时他是非常关心这些问题的. 只有在做好了第一个阶段后我们才会更易进入第二步第三步最终获得客户的信任.有了信任才有了生意的基础.每一个大型企业都会让员工在最基层锻炼一段时间就是让员工成为该企业长久的人才更能激起员工工作

的激情.我有时也常常陷入这样的迷惘自己不清楚产品怎么办只有拖到老板回来后才能给予一个确切的答复这样大大浪费了客人的时间.客人认为该企业办事效率低不够专业.客人很难再继续关心你尤其是对有潜力的新客人. 阶段二:熟悉产品报价和回复邮件 这里把报价单独列出来是因为报价的确能体现我们很多的东西.这不但对于我们对产品的认知度因为涉及材料组成规格和外箱尺寸等一系列因素.往往看到业务员的是直接根据客人的图片报价或者在产品库里面选择产品直接报给客人.但客人的要求是不同的有些客人认为你报得太高超乎了他们的想像认为你又大赚了一笔.其实不然价格高低是因为所选材质的不同而致所以我们首先要做得就是客人目前经营产品的种类品质档次这样才能报一个适合他口味的价格. 数量调整:价格不但要根据他的材质要求来报也要根据他要求的数量做适当的调整.有时客人也无法确认具体的数量我们往往给的却是一个最高的价钱.我们何不分数量的报给他呢给他多一份价格空间就多一份贸易机会. 产品报价单:大部份的业务员都有这个毛病总想把报价简单化可有些细节我们不能轻易的去掉的.因为客人不但要知道产品价格具体规格型号选用的材质尺寸大小外箱规格包装方法交易条件产品所对应的图片.这种报价方式做得非常的完整不会直接在邮件中写上:ND-2155:2.52/PC FOB Shanghai这样也会让客人觉得你不够专业不够认真. 回复报价时间:常常要求在接到邮件内一个小时回应这当然只对于我们的工作时间.亚洲客人放在早上回复欧州客人放在下午回复美国客人放在晚上回复.对于客人的大小确定该邮箱是否为该司的企业邮箱企业邮箱先回应免费邮箱的后回复.这样给客人一种及时的回复信息的习惯让客人也更加看重你的办事 方法.现在软件的日益发达更加的让我们不会每两小时就打开邮箱一次因为它会自动收取的.这加快了我们办事的效率. 阶段三:处理客人样品 当客人看中了我们的产品后会要求我们寄样.这也是交易前的必备过程.但国内生产企业中很少有能达到客人要求的常常以替代品代之材料要换外形要换 因为中国企业舍不得投资开发新客人只想以现有的产品打开市场.这种开发客人是艰难的.因为我们满足不了外国客户的要求所以十个寄样就有八个石沉大海 我个人以为企业的因素占得太大.所以我们要审视自己是否能做这样的产品如果能做当然更好.如果不能做我们也要如实相告不应欺瞒客人.因为一旦交货后不但会给客人带来痛苦也会给自己带来痛苦因为客人要索赔.我们的信誉也大打折扣我们就很难与客人再有生意做.如果长期下去整个企业就只会停顿业绩停滞不前.所以我们一定要保证产品的品质.这不但给企业带来名声也带来了业绩.我相信那些知名企业是靠质量撑起来的不是靠低价竞争得来的.这样的企业才能被客户接受才能发展得更加壮大. 除了保证品质外我们一定要收样品费的.因为为客人做一个样品是耗时也耗财才的我们也没有必要完全都由自己承担.但我们一定要承诺:因为和客人第一次做生意所以要收样品费用.但下单后一定会如数退还的.我相信外国客人不会那么吝啬样品费的.这样下单的机会也比较大的因为客人在付样费前一定也会思考该定单的成功率到底有多大.这样下单率也提高到80因为样品收费.当然除了势力较大的企业外小企业都是这样操作的因为小企业在财力上是无法与大企业相抗衡的. 阶段四:确认样品下定单 在我们走完了关键的一步后客人确认了样品并给我们下了很小的一笔定单.我们一定要把握生产期交货期和产品的质量控制.及时的反馈生产消息给客人及时的租船定舱这样我们能保证交期也保证了品质. 8、阿里巴巴价值观 客户第一客户是衣食父母 -团队合作共享共担平凡人做非凡事 -拥抱变化迎接变化勇于创新 -诚信诚实正直言行坦荡 -激情乐观向上永不放弃 -敬业专业执着精益求精。 阿里巴巴企业文化--六脉神剑 客户第一 ·客户是衣食父母 ·尊重他人随时随地维护阿里巴巴形象 ·微笑面对投诉和受到的委屈积极主动地在工作中为客户解决问题 ·与客户交流过程中即使不是自己的责任也不推诿 ·站在客户的立场思考问题在坚持原则的基础上最终达到客户和公司都满意 ·具有超前服务意识防患于未然 团队合作 ·共享共担平凡人做非凡事 ·积极融入团队乐于接受同事的帮助配合团队完成工作 ·决策前积极发表建设性意见充分参与团队讨论决策后无论个人是否有异议必须从言行上完全予以支持 ·积极主动分享业务知识和经验主动给

予同事必要的帮助善于利用团队的力量解决问题和困难 ·善于和不同类型的同事合作不将个人喜好带入工作充分体现“对事不对人”的原则 ·有主人翁意识积极正面地影响团队改善团队士气和氛围 拥抱变化 ·迎接变化勇于创新 ·适应公司的日常变化不抱怨 ·面对变化理性对待充分沟通诚意配合 ·对变化产生的困难和挫折能自我调整并正面影响和带动同事 ·在工作中有前瞻意识建立新方法、新思路 ·创造变化并带来绩效突破性地提高 诚信 ·诚实正直言出必践 ·诚实正直言行一致不受利益和压力的影响 ·通过正确的渠道和流程准确表达自己的观点表达批评意见的同时能提出相应建议直言有讳 ·不传播未经证实的消息不背后不负责任地议论事和人并能正面引导 ·勇于承认错误敢于承担责任客观反映问题对损害公司利益的不诚信行为严厉制止 ·能持续一贯地执行以上标准 激情 ·乐观向上永不言弃 ·喜欢自己的工作认同阿里巴巴企业文化 ·热爱阿里巴巴顾全大局不计较个人得失 ·以积极乐观的心态面对日常工作不断自我激励努力提升业绩 ·碰到困难和挫折的时候永不放弃 不断寻求突破并获得成功 ·不断设定更高的目标今天的最好表现是明天的最低要求 敬业 ·专业执着精益求精 ·上班时间只做与工作有关的事情没有因工作失职而造成的重复错误 ·今天的事不推到明天遵循必要的工作流程 ·持续学习自我完善做事情充分体现以结果为导向 ·能根据轻重缓急来正确安排工作优先级做正确的事 ·遵循但不拘泥于工作流程化繁为简用较小的投入获得较大的工作成果 9、根本的离职原因是什么 我根本的离职原因挑战自我挑战高薪丰富自己的人生阅历寻找一个更好的平台站在电子商务领航者巨人的肩膀上以便看的更远这也是我选择阿里巴巴的原因喜欢阿里巴巴的企业文化与自己的日常点滴感悟不谋而合。 10、对阿里巴巴、中国供应商了解吗 有一定的了解 1、关于阿里巴巴集团 阿里巴巴集团是全球电子商务的领导者是中国最大的电子商务公司。自1999年成立以来阿里巴巴集团茁壮成长现已拥有5家子公司。截至2009年8月底集团超过16000人 1、阿里巴巴B2B公司----阿里巴巴集团的旗舰公司是世界领先的B2B电子商务公司2007年11月6日于香港上市 2、淘宝----中国最大的个人网络购物市场。 3、支付宝----中国领先的在线支付服务 4、雅虎口碑----国内领先的搜索引擎和社区 5、阿里软件----服务于中国中小企业者的以互联网为平台的商务管理软件公司。 关于阿里巴巴B2B公司 阿里巴巴B2B公司为来自中国和全球的买家、卖家搭建高效、可信赖的贸易平台。我们的国际贸易网站www.alibaba.com 主要针对全球进出口贸易中文网站www.alibaba.com.cn针对国内贸易买家和卖家与软银的合资企业 - 日文阿里巴巴平台alibaba.co.jp则致力于为日本的进出口贸易提供服务。这三个平台为来自超过240个国家和地区的4000万阿里巴巴注册会员提供了交流平台。 总部位于中国杭州在中国大陆超过40个城市设有销售中心在香港、台湾、伦敦和美国设有办事处。截至2009年8月底阿里巴巴拥有超过10000名的全职员工。 2007年11月6日阿里巴巴B2B公司于香港上市股票代码1688创下多项之最 全球最大的科技股融资额16.9亿美元 香港有史以来机构认购1800亿美元、冻资4500亿港元最大 中国首个超过200亿美元市值的互联网公司 市值居全球互联网公司第六位 香港10年来首日涨幅最大的新股193 阿里巴巴国际站 拥有来自200余个国家和地区全球买家和进口商的英文网上交易市场 http://www.alibaba.com/ 阿里巴巴中国站 为中国内地网上交易而设的中文网上平台 http://www.alibaba.com.cn/ 阿里巴巴总部位于中国历史文化名城、世界著名的风景游览胜地—浙江省杭州市。新的总部大楼已建成完工8月份投入使用可容纳9000人同时办公。 奠基仪式从左至右依次为杭州市委副书记、市长蔡奇阿里巴巴集团董事局主席兼首席执行官马云浙江省委常委、杭州市委书记、杭州市人大常委会主任王国平杭州市政协主席孙忠焕。 阿里巴巴新办公大楼 雇主品牌 2005CCTV中国十大最佳雇主之一 2007CRF中国杰出雇主 2007大学生最佳雇主 2008大学生最佳雇主 2009大学生十大最佳雇主之一 2、“出口通”是帮助中小企业拓展国际贸易的出口营销推广服务它基于全球领先的企业间电子商务网站阿里巴巴国际站贸易平台-www.alibaba.com通过向海外买家展示、推广供应商的企业和产品进而获得贸易商机和订单

是出口企业拓展国际贸易的首选网络平台。 中国供应商出口通是国际贸易首选服务基于alibaba国际网站B2B贸易平台通过向海外买家展示、推广企业和产品获得贸易商机和订单是出口企业拓展国际贸易的首选网络平台。 11、阿里巴巴的压力很大你为何想加入想通过阿里巴巴得到什么 个人认为压力是一种常态特别是对于做销售的人来说关键是客观做事不要悲观或过于乐观。 阿里巴巴是全球知名公司对我来说是一个很好的发展平台电子商务是未来的发展趋势符合我选择职业的价值观期待阿里巴巴录用我哈 想通过在阿里巴巴的实践进一步提高自己的各方面能力销售技巧客户基础等等通过努力得到应有的薪资让生活更加幸福美好人生更加充实。 12、 电话沟通需要注意的事项 1、两分钟的时间做一下自我介绍了解年龄学历工作经历该条主要是判断表达能力和逻辑思维 2、做陌生客户的开发有多长时间一般情况下每天会拜访多少家客户群是哪些这主要是判断工作的相关度 3、你的业绩做的怎么样在公司的排名月收入平均多少钱这条主要是判断你的业务能力 4、如果你有足够的机会现在会选择做什么工作这条主要是判断你的业务素质 5、离职原因最根本的原因这条主要是判断你的工作心态 注意:不适合的人选沟通时间不会超过3分钟. 应对技巧:日常中你就该把这些问题的答案和理解牢牢的记在心里不断的总结和更新人力资源经理每天往往要面试十多个人乃至上百人他们是没有时间来分析你说的话语的只能够凭第一印象给你做个基本的评价来决定是否PASS你所以你的答案一定要记住两条: 第一、实事求是有什么说什么把你的能力和技能说全面到位就可以了不要夸大其辞如果你的能力已经展示出来了仍然没有录取不要气馁再接再厉因为这就是你的能力所及靠谎言或欺骗找到的工作不是那么容易完成的 第二、不要中规中距的回答这样在成百上千的面试者中是显不出你的要在自己的话语中提炼到位加入自己对于销售的理解这其实并不难有的时候一句自己总结的话语都能够让你的面试官眼前一亮产生共鸣那成功就非你莫属了因为你要明白面试本身就是一种销售销售你自己如果你连自己都推销不出去何来销售产品呢

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

范文九:阿里巴巴和华为笔试和面试题[1]

软件测试工程师面试题

阿里巴巴旗下各公司测试笔试和面试如下:

支付宝:

B2B:

 笔试题: 根据下图,写出所有的备选流和输出流各个路径

类似下面这篇文章 给出需求设计测试用例:

给出一段需求文档画出流程流程图,并设计出测试用例,例子是留言板功能,从用户登陆到发送消息这样一些流程。

BUG描述中都包括哪些内容

数据库语句查询,主要包括三张表进行关联查询,表1:学生表,表2:班级表,表3:教师表。

淘宝网

阿里软件

面试试题: 笔试题: 计算机网络和硬件知识。 计算机相关的文件存储和备份等知识。 数据库SQL查询 设计测试用例 逻辑思维题 面试题: 讲述一下自己最熟悉的一个项目是怎么做的?具体用什么方法和测试工具? 简述一下整个项目的测试流程和BUG管理流程? BUG描述中都包括那些内容? 讲述一个BUG的生命周期? 讲述自己在项目中发现最有意义的一个BUG,是什么导致出现这个问题。 LAODRUNERR 如何分析系统瓶颈,都要检测那些系统指标。    

 谈一下项目整体架构。 自己在项目中处于角色,工作流程。 如何保证测试的整体覆盖率。 回归测试都要考虑哪些因素,如何设计相关测试用例。 编写一段程序,实现0-100之间递归。 数据库设计,链接查询。

华为科技面试试题(华为浙江总公司,华为杭州分公司)

 简单介绍一下项目结构,模块功能,主业务流程,并且用笔将项目内容描述出来。 谈一下对测试工具的认识,自己在项目中比较常用的工具是那种,具体怎么操作。 如何进行BUG分配和管理。 自己对编程语言的了解程度。 对通信电子信息的了解程度。

以上都是自己面试后,总结的一些内容,大家可以参考一下。

糊涂的爱 刘欢

爱有几分能说清楚

还有几分是糊里又糊涂 情有几分是温存

还有几分是涩涩的酸楚

忘不掉的一幕一幕

却留不住往日的温度 意念中的热热乎乎

是真是假是甜还是苦 这就是爱 说也说不清楚 这就是爱 糊里又糊涂

这就是爱 他忘记了人间的烦恼 这就是爱 能保持着糊涂的温度

忘不掉的一幕一幕

却留不住往日的温度 意念中的热热乎乎

是真是假是甜还是苦 这就是爱 说也说不清楚 这就是爱 糊里又糊涂

这就是爱 他忘记了人间的烦恼 这就是爱 能保持着糊涂的温度 这就是爱 说也说不清楚 这就是爱 糊里又糊涂

这就是爱 能抛弃人间的脆弱 这就是爱 他再累也不觉得苦

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

范文十:2015阿里巴巴产品面试题

作为互联网企业,是非常讲究创新的,百度作为中文搜索引擎的巨头,它的出色产品有 百度地图 百度知道 百度搜索,所以产品经理的问题往往从这些地方产生,百度经常问的问题有一 你觉得百度地图有哪些地方还需要改进?

二 你觉得百度搜索在哪些地方需要改进 ?

三 你觉得微信号和百度直达号的区别是什么?它们各自的优点和缺点?

四 有没有了解互联网的发展趋势,谈谈你的看法

五 你觉得百度和其他互联网企业相比 ,有哪些优点?有哪些地方需要改进

百度毕竟是做技术的,问的还是比较严谨的,比较看重一个人对互联网行业的认知,对各个产品的了解以及个人的思维逻辑。

而腾讯是偏向应用的,所以腾讯问的最多的就是对应用的见解

作为互联网企业,是非常讲究创新的,百度作为中文搜索引擎的巨头,它的出色产品有 百度地图 百度知道 百度搜索,所以产品经理的问题往往从这些地方产生,百度经常问的问题有一 你觉得百度地图有哪些地方还需要改进?

二 你觉得百度搜索在哪些地方需要改进 ?

三 你觉得微信号和百度直达号的区别是什么?它们各自的优点和缺点?

四 有没有了解互联网的发展趋势,谈谈你的看法

五 你觉得百度和其他互联网企业相比 ,有哪些优点?有哪些地方需要改进

百度毕竟是做技术的,问的还是比较严谨的,比较看重一个人对互联网行业的认知,对各个产品的了解以及个人的思维逻辑。

而腾讯是偏向应用的,所以腾讯问的最多的就是对应用的见解

腾讯产品面试之我见

百度产品经理面试之我见

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