当前位置:编程学习 > JAVA >>

支付宝面试题回忆

问:写一条Oracle语句查询出第10到100条数据。
答:..

问:高并发条件下,如何应对对同一条数据的读写?
答:给对象加Synchronized上锁。
问:但是这样导致性能太差怎么办,还有别的方法吗?
答:给这条记录加上版本信息。
问:乐观锁和悲观锁是怎么回事?
答:..

问:写一下,HashMap里插入数字一到十,然后再逐个取出来。
答:¥#!@%@#¥%¥!@#%@#

问:HashMap在高并发条件下如何?如果你自己实现一个HashMap以适应超高并发,比如同时读写,你如何设计?
答:...

问:Cookie和Session的区别?
答:一个是在客户端,一个是在服务端。
问:一个用户登录论坛之后,转到主站,无须登录,这个是怎么实现的?
答:登录论坛之后,服务端返回一个令牌给客户端的cookie,然后进入主站时再取出来比对。
问:在哪比对?
答:登录服务器
问:Cookie的有域限制吗?
答:有
问:如果想跨域怎么办?
答: ...

问:Spring的事务是怎么实现的?
答:..
问:Spring的AOP有几种实现方式?
答:..
问:Spring的事务级别有哪些?
答:..
问:Spring的IoC注入有哪两种方式?
答:..


考官:好了,我问完了。有进一步消息我们电话通知你。。。


--------------------编程问答-------------------- 好像考框架的比较多哈。我记得一般来说考基础的比较多的!

还有就是估计你没戏咯! --------------------编程问答-------------------- 还有一个

问:wait(), notify() 是否一定要放在 sychrnozied 里? 
答:不是
问:反过来 sychrnozied 是否一定要有 wait(), notify() ?
答:不是 --------------------编程问答--------------------
不简单啊不简单! --------------------编程问答-------------------- 不用怕,死猪不怕开水烫^_^ --------------------编程问答-------------------- wait(), notify() 好像是要放在同步里面吧? --------------------编程问答-------------------- 好了,我问完了。有进一步消息我们电话通知你。。。 --------------------编程问答--------------------
引用 6 楼 e_forrest 的回复:
好了,我问完了。有进一步消息我们电话通知你。。。
哈哈 --------------------编程问答-------------------- --------------------编程问答-------------------- 都看到过。但是说不出。 --------------------编程问答-------------------- 好了,有消息我会明天通知你的(今天星期五) --------------------编程问答-------------------- 偶也感觉LZ没戏啊。。 --------------------编程问答--------------------
引用 6 楼 e_forrest 的回复:
好了,我问完了。有进一步消息我们电话通知你。。。


这句话听多了 --------------------编程问答-------------------- 还有一问

System.gc() 显示调用回收,JVM是否会立即回收?为什么?
--------------------编程问答-------------------- 不要这样打击LZ啊
--------------------编程问答-------------------- 感觉阿里的同学们面试水平确实不怎么样,一般都问得太detail了。
不太像大公司的作风啊. --------------------编程问答--------------------
引用 15 楼 dreamafter 的回复:
感觉阿里的同学们面试水平确实不怎么样,一般都问得太detail了。
不太像大公司的作风啊.

可能是在想 基础决定上层建筑 吧 --------------------编程问答-------------------- 不简单啊 不简单 --------------------编程问答--------------------
引用 13 楼 xiao7cn 的回复:
还有一问

System.gc() 显示调用回收,JVM是否会立即回收?为什么?

不会立即回收。
JAVA回收垃圾是看时间的。虚拟机会有个回收机制。你调用了回收,他不会立即回收,回收机制的优先性很低。也就是说如果系统很忙的话,他会等会回收 --------------------编程问答-------------------- jvm这个垃圾回收吧,里面有个跟美国法院陪审团一样的东西,全凭高兴不高兴,高兴了他就判你可以回收,不高兴了就判你不可以回收 --------------------编程问答-------------------- ..和...是什么意思? 可以详细说下么? --------------------编程问答-------------------- select * from table where id in (select id from table where rownum<100) and sid not in (select id from table where rownum<10)

第一题我能想到的答案。。
感觉好麻烦。应该有更好的答案 --------------------编程问答-------------------- 写一下,HashMap里插入数字一到十,然后再逐个取出来。

HashMap插入数字?应该是插入键值对吧?
还是说HashSet?LZ记错了? --------------------编程问答-------------------- 考官:好了,我问完了。有进一步消息我们电话通知你。。。  --------------------编程问答-------------------- 好了,我问完了。有进一步消息我们电话通知你。。。 --------------------编程问答-------------------- 好东西  收藏了 --------------------编程问答-------------------- 感觉是lz没戏的!spring lz好像都不知道! --------------------编程问答-------------------- 在一个技术封闭的公司呆久了,Server、IDE、DB grammar、platform、framework都是封闭的,出去了什么都不会,不得不说是个悲剧! --------------------编程问答--------------------
引用 2 楼 xiao7cn 的回复:
还有一个

问:wait(), notify() 是否一定要放在 sychrnozied 里? 
答:不是
问:反过来 sychrnozied 是否一定要有 wait(), notify() ?
答:不是


哥们!wait()方法会释放锁,那如果你没有获得锁的话,那还怎么释放锁呢!第二个是答对的,spring知识只是想考一下你知不知道这些原理,如果知道的话对程序设计是有帮助的,基础过关就行!
--------------------编程问答--------------------
引用 15 楼 dreamafter 的回复:
感觉阿里的同学们面试水平确实不怎么样,一般都问得太detail了。
不太像大公司的作风啊.


一般会根据你简历来问的,你熟悉什么问什么,给你自由发挥!这已经让你有优势了,你可以谈你很强势的地方,面试官未必懂,但你要是把他说服,过关也不是没有可能 --------------------编程问答-------------------- 貌似没戏了..... --------------------编程问答--------------------
引用 21 楼 e9876 的回复:
select * from table where id in (select id from table where rownum<100) and sid not in (select id from table where rownum<10)

第一题我能想到的答案。。
感觉好麻烦。应该有更好的答案


select * from (select id,name,rownum num from table where rownum<=100) t where t.num>=10 --------------------编程问答-------------------- HashMap 无法在并发环境下使用,若要并发环境下可以使用线程安全且高效的 ConcurrentHashMap,由于采用分离锁的同步策略使得在多线程并发处理时比 Hashtable 性能高出一大截!

如果仅能在 HashMap 上做处理,那可以采用读写锁将其所有的方法重新包装,但对于 entrySet 和 keySet 两个方法处理就没有办法了,直接忽略掉抛出 java.lang.UnsupportedOperationException 异常。 --------------------编程问答--------------------
引用楼主 xiao7cn 的回复:
问:写一条Oracle语句查询出第10到100条数据。
答:..

问:高并发条件下,如何应对对同一条数据的读写?
答:给对象加Synchronized上锁。
问:但是这样导致性能太差怎么办,还有别的方法吗?
答:给这条记录加上版本信息。
问:乐观锁和悲观锁是怎么回事?
答:..

问:写一下,HashMap里插入数字一到十,然后再逐个取出来。
答:¥#!@%@#¥%¥!@#……


我不知道你打省略号是回答上还是没回答上 所以我就随便说说了..反正我说的大概就是我的第一反应吧

写一条Oracle语句查询出第10到100条数据

用rownum 先查询一百条数据 再根据该结果集的rownum(已查询)查询rownum大于10的数据 比如
select s.rnum from (select rownum as rnum from table where rownum < 101) s where s.rnum > 10

没验证过 错了的话请纠正..


乐观锁和悲观锁是怎么回事?

乐观锁用来限制多用户修改同一条数据的情况 属于业务验证的一种方式吧 悲观锁也一样 只不过悲观锁强调的是数据库记录的安全

问:写一下,HashMap里插入数字一到十,然后再逐个取出来。
如果没加限制条件的话 我会用一个LIST保存KEY 或者用TREEMAP 如果他想强调的是你对HASHCODE或者对HASH表的知识是否了解的话 那实现的方式我就不太清楚了(或者网上有现成答案吧) --------------------编程问答-------------------- Spring我就没办法了 另外第一题注意 rownum不能用大于比较 因为如果记录判断失效的话 rownum也不会增加  --------------------编程问答-------------------- 哪位把spring得都回答下? --------------------编程问答-------------------- 说实话这题目出得蛮有水平的,都不难,但是你没做过,绝对不能给出满意答案。 --------------------编程问答-------------------- 问:Spring的IoC注入有哪两种方式?
答:.. 


依赖注入有三种吧? --------------------编程问答-------------------- IOC你就认为他是一个生产和管理bean的容器就行了,原来需要在调用类中new的东西,现在都是有这个IOC容器进行产生,同时,要是产生的是单利的bean,他还可以给管理bean的生命周期!
   spring的IOC有三种注入方式  第一是根据属性注入  也叫set方法注入;第二种是根据构造方法进行注入;第三种是根据注解进行注入,这种方式我认为比较好,方便,要是bean多的话,使用前两种方式会使得配置文件过于臃肿。
Spring的优点:主要是根据它的IOC和AOP体现的。我感觉他就是把我们以前用到的工厂模式和代理模式进行了一个封装。IOC主要是解决了代码的耦合性问题,而AOP是面向切面编程的最好解释!

--------------------编程问答-------------------- 第一题我会 --------------------编程问答-------------------- 问:写一条Oracle语句查询出第10到100条数据。
答:select * from (任何子查询) where rownum betweent 10 and 100

问:高并发条件下,如何应对对同一条数据的读写?
答:给对象加Synchronized上锁。
问:但是这样导致性能太差怎么办,还有别的方法吗?
答:给这条记录加上版本信息。
问:乐观锁和悲观锁是怎么回事?
答:http://www.hetaoblog.com/pessimistic-optimistic-locking-views/

问:写一下,HashMap里插入数字一到十,然后再逐个取出来。
答:map.put(key, value) [1 - 10]
it = map.iterator()
while(it.hasNext()){
it.next();
}

问:HashMap在高并发条件下如何?如果你自己实现一个HashMap以适应超高并发,比如同时读写,你如何设计?
答:这个真不知道,参考火龙果的答案。。

问:Cookie如果想跨域怎么办?
答:   2种
1.服务器内共享,用cookie.setPath()
2.跨域共享,用cookie.setDomain();

Spring相关的就。。算了吧。 --------------------编程问答-------------------- 回答下spring的吧,答错请指正


问:Spring的事务是怎么实现的? 
答:AOP
问:Spring的AOP有几种实现方式? 
答:两种,1注解 2标签 
问:Spring的事务级别有哪些? 
答:REQUIRED,SUPPORTS什么的...
问:Spring的IoC注入有哪两种方式? 
答:...难道还是注解和标签?

--------------------编程问答--------------------
引用 2 楼 xiao7cn 的回复:
还有一个

问:wait(), notify() 是否一定要放在 sychrnozied 里? 
答:不是
问:反过来 sychrnozied 是否一定要有 wait(), notify() ?
答:不是



wait(),notify()要放在sychrnozied中 --------------------编程问答-------------------- 第一题用集合查询也可以:
select * from table1 where rownum<100 minus select * from table1 where rownum<10 --------------------编程问答--------------------
引用 40 楼 phyerbarte 的回复:
问:写一条Oracle语句查询出第10到100条数据。
答:select * from (任何子查询) where rownum betweent 10 and 100

问:高并发条件下,如何应对对同一条数据的读写?
答:给对象加Synchronized上锁。
问:但是这样导致性能太差怎么办,还有别的方法吗?
答:给这条记录加上版本信息。
问:乐观锁和悲观锁是怎么回事?
答:ht……


map.keySet().iterator();
--------------------编程问答-------------------- 要是我,我绝对没戏~~~~ --------------------编程问答-------------------- lz还是不错的 --------------------编程问答-------------------- 乍一看还有点难度,仔细看看还马马虎虎,不过确实不是很简单。
spring的主要功能无非就是IOC和AOP,分别用于控制反转和面向切面,都可以用配置文件方式和JAVA注释方式进行实现。
spring的事务是利用AOP的方式实现的。
至于事务的级别就是:读未提交、读已提交、可重复读、串行 4种。一般的DBMS都默认为读已提交。
乐观锁和悲观锁的区别在于:乐观锁允许同时读取而悲观锁只能串行读取。
ORACLE查询出第10到100条数据:
select * from table
where rowid not in
      (
         select rowid from table where rownum<=10
      )
  and rownum<=90

回答的不全,请各位高人补全和指正!
--------------------编程问答-------------------- 先收藏此贴了
java的垃圾回收器确实要cpu空闲了才能启动 --------------------编程问答-------------------- Spring IOC 注入共有三种方式,其中两种是最常用的,分别是: 构造注入和setter/getter注入 --------------------编程问答-------------------- Spring IOC有三种注入方式,分别是接口注入,getters和setters注入和构造注入。接口注入已经不被推荐使用,而构造注入从程序设计的角度来说是比较合理的,但是使用时不太方便,所以使用也不是很多。因此使用最多的就是getters和setters注入,也称为属性注入。 --------------------编程问答-------------------- 考了aop了。。 --------------------编程问答-------------------- 不懂 --------------------编程问答-------------------- --------------------编程问答-------------------- 看到面试题目才知道,目前为止自己学到的东西是多么的少! --------------------编程问答-------------------- --------------------编程问答-------------------- Spring IOC有三种注入方式,分别是接口注入,getters和setters注入和构造注入。

Spring的事务是利用AOP的方式实现的。

事务的级别是:读未提交、读已提交、可重复读、串行 4种。一般的DBMS都默认为读已提交。

Spring的AOP有几种实现方式?  答:两种,1注解 2配置 --------------------编程问答-------------------- 我  看到这题 都想跑.... --------------------编程问答-------------------- 汉...挺基础的,但也有好多答不上来 --------------------编程问答-------------------- --------------------编程问答-------------------- 现在的东西都是用过了才知道~~上班后就没怎么看过书了 --------------------编程问答-------------------- 经历过很多次,偶来安慰你

 
--------------------编程问答-------------------- --------------------编程问答-------------------- 好好努力了要! --------------------编程问答-------------------- 还有2年就毕业了,我表示鸭梨灰常大.以后要更加好好学习 --------------------编程问答-------------------- 支付宝的题不简单啊 --------------------编程问答-------------------- --------------------编程问答-------------------- 哈哈,兄弟,spring不熟啊? --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 哈哈,基本没戏啊 --------------------编程问答-------------------- 1. rownum关键字+子查询
2. 乐观vs悲观
    hiber的两种事务级别。对应于ora的四种事务的最后两种,提交读和可重复读

其他的补充。。。 --------------------编程问答--------------------
引用楼主 xiao7cn 的回复:
问:Spring的事务是怎么实现的?
答:..
问:Spring的AOP有几种实现方式?
答:..
问:Spring的事务级别有哪些?
答:..
问:Spring的IoC注入有哪两种方式? 

Spring的事务是怎么实现的?
 这个问题概念不是很清晰..Spring的事务依赖于你Dao层所采用的的技术,如:Hibernate.ibatis,jdbc。。他的事务分为编程式事务和声明式事务...依赖于AOP 来实现

Spring的AOP有几种实现方式?
注解和配置 2 种...
使用注解时需要在配置文件中开启自动代理的功能...  使用配置方式可实现纯POJO的AOP


问:Spring的事务级别有哪些?
好像事务级别跟spring没什么关系吧。。事务级别是数据库的,根框架有鸟关系。。。
所有的事务都有以下几个级别:
   Serializable REPEATABLE READ    READ COMMITTED   Read Uncommitted
我猜他想问的,应该是spring的事务传播行为有那几种:
PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。
PROPAGATION_SUPPORTS--支持当前事务,如果当前没有事务,就以非事务方式执行。
PROPAGATION_MANDATORY--支持当前事务,如果当前没有事务,就抛出异常。
PROPAGATION_REQUIRES_NEW--新建事务,如果当前存在事务,把当前事务挂起。
PROPAGATION_NOT_SUPPORTED--以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
PROPAGATION_NEVER--以非事务方式执行,如果当前存在事务,则抛出异常。 


Spring的IoC注入有哪两种方式?
   严重BS这个面试官,连Spring的Ioc方式有几种都搞不清。。
Spring的注入方式有三种
setter方法注入
构造器注入
方法注入

总结,此面试官对spring的掌握看来也不怎么的....
 
--------------------编程问答-------------------- 看来我也没戏了~~>_<~~ --------------------编程问答-------------------- 我承认,某些问题我回答不上,但是项目中遇到类似问题后,我通过各种方案快速解决!
面试应该问些开放式的问题,考验一个人分析问题决绝问题的能力!
以及情商等综合素质 --------------------编程问答-------------------- 我也觉得太底层的东西了,如果是专门招J2EE程序员还差不多 --------------------编程问答-------------------- Too simple。 --------------------编程问答-------------------- 看来支付宝那边读写锁用得很多。 --------------------编程问答-------------------- 写一条Oracle语句查询出第10到100条数据
select * from (
    select tn.*,rownum rn
    from (select * from tablename) tn
    where rownum <= 100 )
where rn >= 10 --------------------编程问答--------------------
问:写一条Oracle语句查询出第10到100条数据。

答:SELECT *
  FROM (SELECT a.*, ROWNUM rn
          FROM (SELECT *
                  FROM table_name) a
         WHERE ROWNUM <= 100)
 WHERE rn >= 10;
 
问:乐观锁和悲观锁是怎么回事? 
答:乐观所:乐观锁 大多是基于数据版本 (Version)记录机制实现。
即为数据增加一个版本标识,在基于 数据库表的版本解决方案中,一般是通过为数据库表增加一个“version”字段来 实现。
悲观锁:它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)
修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定 状态


问:写一下,HashMap里插入数字一到十,然后再逐个取出来。 

答:package csdn;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class TestMap {
public static void main(String[] args) {
String str;
Map m = new HashMap();
for(int i =1;i<=10;i++){
str ="string"+i;
m.put(new Integer(i), str);
}
for(Iterator it =m.entrySet().iterator();it.hasNext();){
Map.Entry e  =(Map.Entry)it.next();
System.out.println(e.getKey()+":"+e.getValue());
}
}
}

问:HashMap在高并发条件下如何?如果你自己实现一个HashMap以适应超高并发,比如同时读写,你如何设计?

答:因为 HashMap是线程非安全的 所以要手动添加锁机制 

--------------------编程问答-------------------- erabbgdfvb  --------------------编程问答-------------------- 难啊,不会啊
--------------------编程问答-------------------- --------------------编程问答-------------------- 每天回帖即可获得10分可用分! --------------------编程问答--------------------
引用 73 楼 amos1989 的回复:
Spring的AOP有几种实现方式?
注解和配置 2 种...
使用注解时需要在配置文件中开启自动代理的功能... 使用配置方式可实现纯POJO的AOP


严格说起来有三种。
注解,XML,和底层的API.
第三种是为了对Spring 1.2向后兼容而保留下来的。 --------------------编程问答-------------------- 很生气.......... --------------------编程问答--------------------
引用 73 楼 amos1989 的回复:
Spring的事务是怎么实现的?
 这个问题概念不是很清晰..Spring的事务依赖于你Dao层所采用的的技术,如:Hibernate.ibatis,jdbc。。他的事务分为编程式事务和声明式事务...依赖于AOP 来实现

Spring的AOP有几种实现方式?
注解和配置 2 种...
使用注解时需要在配置文件中开启自动代理的功能... 使用配置方式可实现纯POJO的AOP


问:Spring的事务级别有哪些?
好像事务级别跟spring没什么关系吧。。事务级别是数据库的,根框架有鸟关系。。。
所有的事务都有以下几个级别:
  Serializable REPEATABLE READ READ COMMITTED Read Uncommitted
我猜他想问的,应该是spring的事务传播行为有那几种:
PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。
PROPAGATION_SUPPORTS--支持当前事务,如果当前没有事务,就以非事务方式执行。
PROPAGATION_MANDATORY--支持当前事务,如果当前没有事务,就抛出异常。
PROPAGATION_REQUIRES_NEW--新建事务,如果当前存在事务,把当前事务挂起。
PROPAGATION_NOT_SUPPORTED--以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
PROPAGATION_NEVER--以非事务方式执行,如果当前存在事务,则抛出异常。 


Spring的IoC注入有哪两种方式?
  严重BS这个面试官,连Spring的Ioc方式有几种都搞不清。。
Spring的注入方式有三种
setter方法注入
构造器注入
方法注入


1:Spring 的事务实现并不是简简单单的 AOP 就够了,这涉及到事务上下文模式的应用,核心 API 就是一个 ThreadLocal 对象
2:Spring 的 AOP 实现应该是 JDK 的动态代理和 Cglib 的动态代理吧?
3:事务隔离级别是数据库层面的东西,但并不是数据库都支持这些隔离级别。事务传播行为上,我咋感觉你好像漏掉一个?
4:我想问一下 setter 方法注入与方法注入有啥区别? --------------------编程问答-------------------- 接上楼。

如果我把 @Autowired 加到一个 private 的成员变量上,而这个成员变量没有 set/get 方法,那这种算什么注入呀? --------------------编程问答--------------------
引用 87 楼 bao110908 的回复:
2:Spring 的 AOP 实现应该是 JDK 的动态代理和 Cglib 的动态代理吧?


不同意,这里问的是AOP的实现方式而不是指的AOP Proxy的实现方式。 --------------------编程问答-------------------- AOP 核心不就是代理么? --------------------编程问答--------------------
引用 90 楼 bao110908 的回复:
AOP 核心不就是代理么?


是。 --------------------编程问答-------------------- 个人理解spring的注入方式有:
构造注入,
方法注入,
属性注入,
集合注入

@Autowired是属性注入 --------------------编程问答--------------------
引用 73 楼 amos1989 的回复:
引用楼主 xiao7cn 的回复:
问:Spring的事务是怎么实现的?
答:..
问:Spring的AOP有几种实现方式?
答:..
问:Spring的事务级别有哪些?
答:..
问:Spring的IoC注入有哪两种方式?

Spring的事务是怎么实现的?
 这个问题概念不是很清晰..Spring的事务依赖于你Dao层所采用的的技术,如:Hibernate.ibatis,j……

Spring的注入的三种方法是:
属性注入、构造器注入、接口注入。
--------------------编程问答-------------------- --------------------编程问答-------------------- Spring的AOP有几种实现方式?
答:我觉得应该是这样:spring在2.0以前使用的是自己的一套aop机制,实现有的“配置”和“实现接口并注册”两种方式。spring在2.0以后新增了eclipse项目组的一套aop机制(部分实现),叫aspectj,实现有“配置”和“注解”两种方式。 --------------------编程问答-------------------- 这题有难度。
看来侧重的框架。 --------------------编程问答-------------------- 呵呵,看来面试都是差不多的啊 --------------------编程问答--------------------
引用 21 楼 e9876 的回复:
select * from table where id in (select id from table where rownum<100) and sid not in (select id from table where rownum<10)

第一题我能想到的答案。。
感觉好麻烦。应该有更好的答案


oracle 就用limit 10 100 就行了 --------------------编程问答--------------------
引用 98 楼 xiasihua88 的回复:
引用 21 楼 e9876 的回复:
select * from table where id in (select id from table where rownum<100) and sid not in (select id from table where rownum<10)

第一题我能想到的答案。。
感觉好麻烦。应该有更好的答案


oracle 就用limit 1……
这位亮了... --------------------编程问答--------------------
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,