当前位置: 代码迷 >> J2SE >> 阿里爸爸笔试题求解!解决思路
  详细解决方案

阿里爸爸笔试题求解!解决思路

热度:58   发布时间:2016-04-24 01:07:50.0
阿里爸爸笔试题求解!!
1 请编写代码实现快速输出map里的键值对.

2 请写代码造成永久区溢出

3 请列举java中常见的几种远程调用方式,并说明应用场景

4 下面的代码大部分情况下没有问题,在什么情况下会有问题?为什么?
Java code
public class Stack {    LinkedList list = new LinkedList();    public synchronized void push(Object x){       synchronized(this){           list.addLast(x);           notify();       }    }     public synchronized Object pop() throws Exception{       synchronized(this){           if(list.size() <= 0){              wait();           }           return list.removeLast();       }    }    public static void main(String[] args) {     }}


还有一个设计题,感觉非常不好处理~.改天发帖单独求教!

------解决方案--------------------
Java code
1.for(Map.Entry<String, String> entry : map.entrySet()){            System.out.println(entry.getKey()+","+entry.getValue());}
------解决方案--------------------
1.不知道快速是要多快,直接遍历算快吗?(通过Entry对象)
2.永久区是指java虚拟机中的那个方法区吗?如果是那么你一直往运行时常量池里面放数据就好了。并且不要让他回收。
Java code
List<String> list = new ArrayList<String>();int i = 0;while(true){    list.add(String.valueOf(i++).intern());}
------解决方案--------------------
看不懂呢

有待学习
------解决方案--------------------
探讨

引用:

System.out.println(map.toString());
这样算快吗。。。。。

...
这有意义吗?

利用Map.Entry 来迭代也不知道满足不满足笔试题的答案..

------解决方案--------------------
顶一个
探讨
Java code


1.
for(Map.Entry<String, String> entry : map.entrySet()){
System.out.println(entry.getKey()+","+entry.getValue());
}



Java code


2.
//-XX:PermSize=10M -XX:MaxP……

------解决方案--------------------
第四題貌似也沒啥問題,難道是加多了list溢出算問題?
------解决方案--------------------
if(list.size() <= 0) 需要改为 while(list.size() <= 0)

这里必用while 不能用if 否则产生所谓的虚假唤醒。 

------解决方案--------------------
二楼的回答很不错呢
------解决方案--------------------
探讨

if(list.size() <= 0) 需要改为 while(list.size() <= 0)

这里必用while 不能用if 否则产生所谓的虚假唤醒。
  相关解决方案