广州面试题------百胜软件

部分面试题答案:

1、
ArrayList和LinkedList都间接的实现了List接口,都不是线程安全的(Vector是线程安全的)。
ArrayList和Vector底层是基于数组结构,而LinkedList底层是基于链表(双链表)结构。
ArrayList的查询修改快,LinkedList的增删速度快。
ArrayList扩容是增长原来的一半(Vector是增长原来的2倍),LinkedList是基于节点来扩容的。
ArrayList初始化容量大小是10,vector初始化容量也是10。


2、

public class ManyThreads {

    private int j;

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        ManyThreads many = new ManyThreads();
        Inc inc = many.new Inc();
        Dec dec = many.new Dec();
        for (int i = 0; i < 2; i++) {
            Thread t = new Thread(inc);
            t.start();
            t = new Thread(dec);
            t.start();
        }
    }

    private synchronized void inc() {
        j++;
        System.out.println(Thread.currentThread().getName() + "inc" + j);
    }

    private synchronized void dec() {
        j--;
        System.out.println(Thread.currentThread().getName() + "dec" + j);
    }

    class Inc implements Runnable {

        @Override
        public void run() {
            // TODO Auto-generated method stub
            for (int i = 0; i < 20; i++) {
                inc();
            }
        }

    }

    class Dec implements Runnable {

        @Override
        public void run() {
            // TODO Auto-generated method stub
            for (int i = 0; i < 20; i++) {
                dec();
            }
        }

    }
    
    

4. 服务端:
public class Server {
public static void main(String[] args) {
    BufferedReader bReader=null;
    PrintWriter pWriter=null;
    try {
        ServerSocket server = new ServerSocket(2000);
        Socket socket = server.accept();
        //获取输入流
        bReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
        //获取输出流
        pWriter = new PrintWriter(socket.getOutputStream(),true);
        //获取接收的数据
        String string= bReader.readLine();
        //发送相同的数据给客户端
        pWriter.println(string);
    } catch (Exception e) {
        // TODO: handle exception
        e.printStackTrace();
    }finally {
        try {
            bReader.close();
            pWriter.close();
        } catch (Exception e2) {
            // TODO: handle exception
        }
    }
}
}
    
    客户端:public class Client {
    public static void main(String[] args) {
        BufferedReader brc = null;
        PrintWriter pwc = null;
        try {
            Socket socket = new Socket("127.0.0.1",2000);
            brc = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            pwc = new PrintWriter(socket.getOutputStream(),true);
            pwc.println("Hello");
            String sc = null;
            while (true) {
                sc = brc.readLine();
                if (sc!=null) {
                    break;
                }
            }
            System.out.println(sc);
        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        }finally {
            try {
                brc.close();
                pwc.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

        }
    }

}
    
    
5、
servlet的生命周期分为三个阶段:初始化阶段,调用init()方法,响应客户请求阶段 调用service()方法,销毁阶段 调用destroy()方法

6、
有状态会话session Bean实例有三种状态,不存在,就绪,和钝化。Entitybean有三种状态,不存在,在pool中,就绪

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值