大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 常見問題 Java編程基礎類庫

Java編程基礎類庫

更新時間:2019-04-10 10:34:32 來源:動力節點 瀏覽2160次

u=1495756089,2899056458&fm=26&gp=0.jpg

  1、Java中有幾種類型的流?JDK為每種類型的流提供了一些抽象類以供繼承,請說出他們分別是哪些類?

  字節流,字符流。字節流繼承于InputStreamOutputStream,字符流繼承于ReaderWriter。

  在java.io包中還有許多其他的流,低層流與調層流,高層流主要是為了提高性能和使用方便。

  2、啟動一個線程是用run()還是start()?

  啟動一個線程是調用start()方法,啟動線程并調用run方法。

  3、線程的基本概念、線程的基本狀態以及狀態之間的關系

  線程是進程內的并發,沒有自已內存空間,共享進程的,線程間的通信成本較低。

  Java中的線程有四種狀態分別是:運行、就緒、掛起、結束。

  4、多線程有幾種實現方法,都是什么?同步有幾種實現方法,都是什么?用什么關鍵字修飾同步方法?

  stop()和suspend()方法為何不推薦使用?

  ExtendsThread

  ImplementsRunnable

  同步

  Publicsynchronizedaa()

  {

  }

  Publicvoidcc(objectaa)

  {

  synchronized(aa)

  {

  }

  }

  用synchoronized修飾同步方法。

  答:多線程有兩種實現方法,分別是繼承Thread類與實現Runnable接口

  同步的實現方面有兩種,分別是synchronized,wait與notify反對使用stop(),是因為它不安全。它會解除由線程獲取的所有鎖定,而且如果對象處于一種不連貫狀態,那么其他線程能在那種狀態下檢查和修改它們。結果很難檢查出真正的問題所在。suspend()方法容易發生死鎖。調用suspend()的時候,目標線程會停下來,但卻仍然持有在這之前獲得的鎖定。此時,其他任何線程都不能訪問鎖定的資源,除非被"掛起"的線程恢復運行。對任何線程來說,如果它們想恢復目標線程,同時又試圖使用任何一個鎖定的資源,就會造成死鎖。所以不應該使用suspend(),而應在自己的Thread類中置入一個標志,指出線程應該活動還是掛起。若標志指出線程應該掛起,便用wait()命其進入等待狀態。若標志指出線程應當恢復,則用一個notify()重新啟動線程。

  5、集合框架有什么?

  CollectionMap

  ListsetHashMap

  ArrayListlinkedListHashSetTreeSet

  6、設計4個線程,其中兩個線程每次對j增加1,另外兩個線程對j每次減少1。寫出程序

  publicclassTestThread

  {

  privateintj;

  publicsynchronizedvoidinc()

  {

  j++;

  System.out.println(Thread.currentThread().getName()+"-inc:"+j);

  }

  publicsynchronizedvoiddec()

  {

  j--;

  System.out.println(Thread.currentThread().getName()+"-dec:"+j);

  }

  publicstaticvoidmain(String[]args)

  {

  TestThreadt=newTestThread();

  for(inti=0;i<2;i++)

  {

  Threadinc=newThread(newInc(t));

  Threaddec=newThread(newDec(t));

  inc.start();

  dec.start();

  }

  }

  }

  classIncimplementsRunnable

  {

  privateTestThreadobj;

  publicInc(TestThreadobj)

  {

  this.obj=obj;

  }

  publicvoidrun()

  {

  //for(inti=0;i<100;i++)

  //{

  this.obj.inc();

  //}

  }

  }

  classDecimplementsRunnable

  {

  privateTestThreadobj;

  publicDec(TestThreadobj)

  {

  this.obj=obj;

  }

  publicvoidrun()

  {

  //for(inti=0;i<100;i++)

  //{

  this.obj.dec();

  //}

  }

  }

  7、同步和異步有和異同,在什么情況下分別使用他們?舉例說明。

  同步:上一段代碼沒的完成,下一段必須等到上一段代碼完成后才可以執行。如買票排隊

  異步:上一段代碼沒的完成,下一段不必等到上一段代碼完成就可以執行。如手機發送短信。

  8、sleep()和wait()有什么區別?

  Sleep是指休眠給定的時間,當這個時間達到之后,線程會再次醒來。

  Wait是等待狀態,多長時間不清楚,由另一個線程將其喚醒。

  9、當一個線程進入一個對象的一個synchronized方法后,其它線程是否可進入此對象的其它方法?

  如只其它方法是同步方法,不可以進入。如果不是可以進入。

  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

  11、請寫一個程序的讀寫,要求用兩種方式一種是低層流另一種是高層流。

  importjava.io.FileWriter;

  importjava.io.InputStream;

  importjava.io.BufferedWriter;

  importjava.io.InputStreamReader;

  importjava.io.BufferedReader;

  importjava.io.FileReader;

  publicclassUntitled1{

  publicstaticvoidwriteFileChar()throwsException{

  FileWriterf=newFileWriter("c:\\aa.txt");

  InputStreamis=System.in;

  intc=is.read();

  while(((char)c)!='x'){

  f.write(c);

  c=is.read();

  }

  f.close();

  is.close();

  }

  publicstaticvoidwriteFileString()throwsException{

  FileWriterf=newFileWriter("c:\\aa.txt");

  BufferedWriterbwr=newBufferedWriter(f);

  BufferedReaderbf=newBufferedReader(newInputStreamReader(System.in));

  Stringc=bf.readLine();

  while(!c.equals("stop")){

  bwr.write(c+"\r\n");

  c=bf.readLine();

  }

  bwr.close();

  f.close();

  bf.close();

  }

  publicstaticvoidreadFileChar()throwsException{

  FileReaderf=newFileReader("c:\\aa.txt");

  intc=f.read();

  while(c!=-1){

  System.out.print((char)c);

  c=f.read();

  }

  f.close();

  }

  publicstaticvoidreadFileString()throwsException{

  BufferedReaderbf=newBufferedReader(newFileReader("c:\\aa.txt"));

  Stringc=bf.readLine();

  while(c!=null)

  {

  System.out.println(c);

  c=bf.readLine();

  }

  bf.close();

  }

  publicstaticvoidmain(String[]args)throwsException{

  readFileString();

  }

  }

  12、如何列出某個目錄下的所有文件

  Importjava.io.File;

  Filef=newFile("C:\\");

  File[]f1=f.listFiles();

  for(inti=0;i<f1.length;i++)

  {

  if(f1[i].isDirectory())

  {

  System.out.println("dirctoryis"+f1[i].getName());

  }

  else

  {

  System.out.println("fileis"+f1[i].getName());

  }

  }

  }

  1.如何列出某個目錄下的所有子目錄

  publicstaticvoidmain(String[]args)throwsException

  {

  getFile(newFile("C:\\entityBean"),"\t");

  }

  publicstaticvoidgetFile(Filef,Stringsem)throwsException

  {

  System.out.println(sem+f.getName());

  Filefl[]=f.listFiles();

  if(fl.length>=1)

  {

  for(inti=0;i<fl.length;i++)

  {

  if(fl[i].isDirectory())

  {

  getFile(fl[i],sem+"\t");

  }

  }

  }

  }

  2.判斷一個文件或目錄是否存在

  Filef=newFile("C:\\entityBean");

  if(f.exists())

  {

  System.out.println("exist");

  }

  else

  {

  System.out.println("notexist");

  }

  Socket

  13、用socket通訊寫出客戶端和服務器端的通訊,要求客戶發送數據后能夠回顯相同的數據?

  publicclassServerSocket_1

  {

  publicstaticvoidmain(String[]args)

  throwsException

  {

  ServerSocketss=newServerSocket(4001);

  Sockets=ss.accept();

  BufferedReaderbr=newBufferedReader(newInputStreamReader(s.

  getInputStream()));

  PrintStreamps=newPrintStream(s.getOutputStream());

  Stringtemp=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();

  }

  }

  publicclassClientSocket

  {

  publicstaticvoidmain(String[]args)throwsException

  {

  Sockets=newSocket("localhost",4001);

  PrintStreamps=newPrintStream(s.getOutputStream());

  BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));

  BufferedReaderbr_server=newBufferedReader(newInputStreamReader(s.

  getInputStream()));

  Stringtemp=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中的CollectionFrameWork(包括如何寫自己的數據結構)?

  答:CollectionFrameWork如下:

  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的相關方法。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 香蕉视频在线观看免费 | 日韩一级在线视频 | 日本阿v精品视频在线观看 日本爱爱免费视频 | 精品视频中文字幕 | 男人看片网站 | 日韩视频在线观看一区 | 日韩一级欧美一级毛片在 | 午夜私人| 国产色综合网 | 九九热在线视频观看 | 成人亚洲网| 日本黄色免费一级片 | 狠狠色欧美亚洲综合色黑a 狠狠色视频 | 成人午夜视频在线 | 亚洲 欧美 国产 中文 | 五月天婷婷网址 | 亚洲乱码中文字幕综合 | 激情影院在线 | 日本在线观看a | 日韩欧美高清在线 | 天天操天天摸天天干 | 国产成人a v在线影院 | 国产中文字幕视频在线观看 | 天天干夜夜艹 | 天天综合天天添夜夜添狠狠添 | 91热国内精品永久免费观看 | 亚洲精品国产综合一线久久 | 手机看片久久国产免费不卡 | 国产精品不卡在线 | 国产一区二区三区免费 | 亚洲精品一区二区深夜福利 | 亚洲欧美精品成人久久91 | 国产精品一区二区三 | 日本中文字幕一区二区有码在线 | 日本不卡二区 | 色色在线| 成人欧美视频在线观看播放 | 国产l精品国产亚洲区在线观看 | 国产中文 | 国产成人精品亚洲777图片 | 国产深夜福利视频在线观看 |