Java面试题库之基础类库(二)

9.当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?

不能,一个对象的一个synchronized方法只能由一个线程访问。

对象的synchronized方法不能进入了,但它的其他非synchronized方法还是可以访问的。

[v_notice]当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?(https://www.cnblogs.com/azhqiang/p/4610251.html)[/v_notice]

10.输入输出流的理解:

在java使用流的机制进行数据的传送,从文件到内存是输入流,从内存到文件是输出流,输入流可以通过 read读取,输出流以write或print写入,对于流可以是分为高层流和低层流,低层以一个字节或字符为单位进行处理,高层流以一批数据为单位进行处理。

FileInputStream(System.in)至InputSteamReader至BufferReader
OutputSteam(System.out)至printStream
FileReader至BufferedReader
FileWriter 至 PrintWriter或bufferWriter

分类:
字节(二进制)
* FileInputStream(低层输入流)
* FileOutputStream(低层输出流)
* PrintStream(高层流) System.out.println()

字符(一个char)
* FileReader
* FileWriter

[v_notice]输入/输出流 – 深入理解Java中的流 (Stream)(https://www.cnblogs.com/wangyu2012520/p/4297637.html)[/v_notice]

11.请写一个程序的读写,要求用两种方式一种是低层流另一种是高层流。

import java.io.FileWriter;
import java.io.InputStream;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.FileReader;


public class Untitled1 {
    public static void writeFileChar() throws Exception {
        FileWriter f = new FileWriter("c:\\aa.txt");
        InputStream is = System.in;
        int c = is.read();
        while (((char) c) != 'x') {
            f.write(c);
            c = is.read();
        }
        f.close();
        is.close();
    }

    public static void writeFileString() throws Exception {
        FileWriter f = new FileWriter("c:\\aa.txt");
        BufferedWriter bwr = new BufferedWriter(f);
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        String c = bf.readLine();
        while (!c.equals("stop")) {
            bwr.write(c + "\r\n");
            c = bf.readLine();
        }
        bwr.close();
        f.close();
        bf.close();
    }

    public static void readFileChar() throws Exception {
        FileReader f = new FileReader("c:\\aa.txt");
        int c = f.read();
        while (c != -1) {
            System.out.print((char) c);
            c = f.read();
        }
        f.close();
    }

    public static void readFileString() throws Exception {
        BufferedReader bf = new BufferedReader(new FileReader("c:\\aa.txt"));
        String c = bf.readLine();
        while (c != null) {
            System.out.println(c);
            c = bf.readLine();
        }
        bf.close();
    }


    public static void main(String[] args) throws Exception {
        readFileString();
    }
}

12.如何列出某个目录下的所有文件

Import java.io.File;
File f=new File("C:\\");
        File[] f1=f.listFiles();
        for(int i=0;i=1)
        {
            for(int i=0;i

13.用socket通讯写出客户端和服务器端的通讯,要求客户发送数据后能够回显相同的数据?

public class ServerSocket_1
{
    public static void main(String[] args)
            throws Exception
    {
        ServerSocket ss = new ServerSocket(4001);
        Socket s = ss.accept();
        BufferedReader br = new BufferedReader(new InputStreamReader(s.
                getInputStream()));
        PrintStream ps=new PrintStream(s.getOutputStream());
        String temp = br.readLine();
        while (true)
        {
            System.out.println("客户端:"+temp);
            ps.println(temp);
            if (temp.equals("stop"))
            {
                break;
            }
            temp = br.readLine();
        }
        br.close();
        ps.close();
        ss.close();
    }
}

public class ClientSocket
{
  public static void main(String[] args) throws Exception
  {
      Socket s = new Socket("localhost", 4001);
      PrintStream ps = new PrintStream(s.getOutputStream());
      BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
      BufferedReader br_server = new BufferedReader(new InputStreamReader(s.
              getInputStream()));
      String temp = br.readLine();
      while (true)
      {
          ps.println(temp);
          temp = br_server.readLine();
          System.out.println("服务器的信息:" + temp);
          if (temp.equals("stop"))
          {
              break;
          }
          temp = br.readLine();
      }
      s.close();
      br.close();
      br_server.close();
  }
}

14.介绍JAVA中的Collection FrameWork(包括如何写自己的数据结构)?

答:Collection FrameWork如下:
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set
Map
├Hashtable
├HashMap
└WeakHashMap
Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements)
Map提供key到value的映射

15.请说出你所知道的线程同步的方法

HashTable中的put,get,remove

Vector的相关方法。

本站所有文章均由网友分享,仅用于参考学习用,请勿直接转载,如有侵权,请联系网站客服删除相关文章。若由于商用引起版权纠纷,一切责任均由使用者承担
极客文库 » Java面试题库之基础类库(二)

Leave a Reply

欢迎加入「极客文库」,成为原创作者从这里开始!

立即加入 了解更多