成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Java面試題二

開發 后端
本文總結了一些常見的java面試題。

1.拷貝一個目錄(文件)到指定路徑


   
/** 
    *拷貝一個目錄或者文件到指定路徑下 BR>    *@paramsource
    *@paramtarget
    */
    publicvoid copy(File source,File target)
    {
      File tarpath = new File(target,source.getName());
      if(source.isDirectory())
      {
          tarpath.mkdir();
          File[] dir = source.listFiles();
          for (int i = 0; i < dir.length; i++) {
              copy(dir[i],tarpath);
          }
      }else
      {
          try {
              InputStream is = new FileInputStream(source);
              OutputStream os = new FileOutputStream(tarpath);
              byte[] buf = newbyte[1024];
              int len = 0;
              while((len = is.read(buf))!=-1)
              {
                  os.write(buf,0,len);
              }
              is.close();
              os.close();
          } catch (FileNotFoundException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
          } catch (IOException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
          }
      }
    }

2.用JAVA中的多線程示例銀行取款問題

packagecom.softeem.demo; 

/**
*@authorleno
*賬戶類
*默認有余額,可以取款
*/
class Account {
    privatefloatbalance = 1000;

    publicfloat getBalance() {
      returnbalance;
    }

    publicvoid setBalance(float balance) {
      this.balance = balance;
    }
   
    /**
    *取款的方法需要同步
    *@parammoney
    */
    publicsynchronizedvoid withdrawals(float money)
    {
      if(balance>=money)
      {
          System.out.println("被取走"+money+"元!");
          try {
              Thread.sleep(1000);
          } catch (InterruptedException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
          }
          balance-=money;
      }
      else
      {
          System.out.println("對不起,余額不足!");
      }
    }
   
}

/**
*@authorleno
*銀行卡
*/
class TestAccount1 extends Thread {

    private Account account;
   
   
    public TestAccount1(Account account) {
      this.account = account;
    }


    @Override
    publicvoid run() {
      account.withdrawals(800);
      System.out.println("余額為:"+account.getBalance()+"元!");
    } 
}
/**
*@authorleno
*存折
*/
class TestAccount2 extends Thread {

    private Account account;
    public TestAccount2(Account account) {
          this.account = account;
      }
    @Override
    publicvoid run() {
      account.withdrawals(700);
      System.out.println("余額為:"+account.getBalance()+"元!");
    } 
}

publicclass Test
{
    publicstaticvoid main(String[] args) {
      Account account = new Account();
      TestAccount1 testAccount1 = new TestAccount1(account);
      testAccount1.start();
      TestAccount2 testAccount2 = new TestAccount2(account);
      testAccount2.start();
    }
}

3.用JAVA中的多線程示例火車站售票問題
package com.softeem.demo; 

/**
*@authorleno
*售票類
*/
class SaleTicket implements Runnable {
    inttickets = 100;

    publicvoid run() {
      while (tickets > 0) {
          sale();
//或者下面這樣實現
//        synchronized (this) {
//            if (tickets > 0) {
//                System.out.println(Thread.currentThread().getName() + "賣第"
//                      + (100 - tickets + 1) + "張票");
//                tickets--;
//            }
//        }
      }
    }

    publicsynchronizedvoid sale() {
      if (tickets > 0) {
          System.out.println(Thread.currentThread().getName() + "賣第"
                  + (100 - tickets + 1) + "張票");
          tickets--;
      }
    }

}

publicclass TestSaleTicket {

    publicstaticvoid main(String[] args) {
      SaleTicket st = new SaleTicket();
      new Thread(st, "一號窗口").start();
      new Thread(st, "二號窗口").start();
      new Thread(st, "三號窗口").start();
      new Thread(st, "四號窗口").start();

    }
}


4.用JAVA中的多線程示例生產者和消費者問題
package com.softeem.demo; 

class Producer implements Runnable
{
private SyncStack stack;

    public Producer(SyncStack stack) {
    this.stack = stack;
}

    publicvoid run() {
      for (int i = 0; i < stack.getProducts().length; i++) {
          String product = "產品"+i;
          stack.push(product);
          System.out.println("生產了: "+product);
          try
          {
            Thread.sleep(200);
          }
          catch(InterruptedException e)
          {
            e.printStackTrace();
          }


      }
    }
   
}

class Consumer implements Runnable
{
    private SyncStack stack;

    public Consumer(SyncStack stack) {
    this.stack = stack;
}
    publicvoid run() {
      for(int i=0;i           {
          String product =stack.pop();
          System.out.println("消費了: "+product);
          try
          {
            Thread.sleep(1000);
          }
          catch(InterruptedException e)
          {
            e.printStackTrace();
          }

          }

     
    }
}

class SyncStack
{
    private String[] products = new String[10];
    privateintindex;
    publicsynchronizedvoid push(String product)
    {
      if(index==product.length())
      {
          try {
              wait();
          } catch (InterruptedException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
          }
      }
      notify();
      products[index]=product;
      index++;
    }
   
    publicsynchronized String pop()
    {
      if(index==0)
      {
          try {
              wait();
          } catch (InterruptedException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
          }
      }
      notify();
      index--;
      String product = products[index];
      return product;
    }

    public String[] getProducts() {
      returnproducts;
    }
   
   
}
publicclass TestProducerConsumer {
   
    publicstaticvoid main(String[] args) {
      SyncStack stack=new SyncStack();
      Producer p=new Producer(stack);
      Consumer c=new Consumer(stack);

      new Thread(p).start();
      new Thread(c).start();
      }
    }

【編輯推薦】

  1. IT職場培訓 程序員Java面試中的32個陷阱
  2. 快速啟動一個Java Web編程框架
  3. Java中靜態數組與動態數組
  4. 討論:Java究竟是傳值還是傳引用?
  5. Java編譯器中對String對象的優化
責任編輯:王觀 來源: 站長學院
相關推薦

2015-09-02 09:32:56

java線程面試

2009-06-06 18:34:05

java面試題

2020-06-04 14:40:40

面試題Vue前端

2013-05-29 10:23:36

Android開發移動開發Java面試題

2011-03-24 13:27:37

SQL

2023-11-13 07:37:36

JS面試題線程

2018-03-08 18:40:47

Java百度面試題

2014-09-19 11:17:48

面試題

2021-01-15 07:49:01

嵌入式筆試面試

2018-07-20 09:24:27

Java面試垃圾收集

2017-08-29 14:12:16

Java面試題

2025-02-26 07:58:41

2009-06-16 14:03:16

Hibernate面試Hibernate面試

2020-11-05 10:01:35

系統設計軟件

2021-02-23 12:43:39

Redis面試題緩存

2024-06-04 14:52:28

2023-07-14 08:12:21

計時器unsafecontext

2013-01-05 14:51:34

JavaScriptjQuery面試

2014-07-28 14:00:40

linux面試題

2012-05-25 10:15:06

Java程序員面試題
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文在线一区二区 | 婷婷在线视频 | 国产一级片一区二区 | 伊人国产精品 | 四虎午夜剧场 | 一级毛片视频免费观看 | 亚洲毛片在线 | 日本在线你懂的 | 色www精品视频在线观看 | 欧美一区二区三区 | 97精品一区二区 | 成人精品一区二区 | 亚洲一区在线日韩在线深爱 | 国产视频二区 | 久久高清 | 老妇激情毛片免费 | 午夜电影网| 黄色在线免费观看视频网站 | 国产精品久久久久久中文字 | 天天看片天天干 | 国产精品精品视频一区二区三区 | 一区二区三区国产精品 | 日韩不卡三区 | 国产免费看 | 日韩三级一区 | 成人久久久 | 国产日韩精品一区 | 国产一区二区精华 | 免费国产一区 | 激情久久网 | 国产一区二区久久 | 亚洲 中文 欧美 日韩 在线观看 | 精品亚洲一区二区三区 | 日韩精品视频在线 | 久久伊人影院 | 视频一二三区 | 国产69精品久久久久777 | 久草视频在线播放 | 中文字幕亚洲视频 | 奇米影视在线 | 亚洲午夜视频 |