freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

計(jì)算機(jī)類面試專業(yè)問題-文庫(kù)吧

2025-05-23 22:50 本頁(yè)面


【正文】 i=0,j=ij。i++){8argsClass[i]=args[i].getClass()。9}1011Methodmethod=(methodName,argsClass)。1213return(null,args)。14}基本的原理和實(shí)例3相同,不同點(diǎn)是最后一行,invoke的一個(gè)參數(shù)是null,因?yàn)檫@是靜態(tài)方法,不需要借助實(shí)例運(yùn)行。5.新建實(shí)例12publicObjectnewInstance(StringclassName,Object[]args)throwsException{3ClassnewoneClass=(className)。45Class[]argsClass=newClass[]。67for(inti=0,j=ij。i++){8argsClass[i]=args[i].getClass()。9}1011Constructorcons=(argsClass)。1213return(args)。1415}這里說的方法是執(zhí)行帶參數(shù)的構(gòu)造函數(shù)來(lái)新建實(shí)例的方法。如果不需要參數(shù),()來(lái)實(shí)現(xiàn)。ClassnewoneClass=(className):第一步,得到要構(gòu)造的實(shí)例的Class。第5~第9行:得到參數(shù)的Class數(shù)組。Constructorcons=(argsClass):得到構(gòu)造子。(args):新建實(shí)例。6.判斷是否為某個(gè)類的實(shí)例1publicbooleanisInstance(Objectobj,Classcls){2return(obj)。3}7.得到數(shù)組中的某個(gè)元素1publicObjectgetByArray(Objectarray,intindex){2return(array,index)。3}4)在java中怎樣實(shí)現(xiàn)多線程?(瞬聯(lián))與其他語(yǔ)言不一樣的是,線程的觀念在java是語(yǔ)言中是重要的,根深蒂固的,因?yàn)樵趈ava語(yǔ)言中的線程系統(tǒng)是java語(yǔ)言自建的, java中有專門的支持多線程的API庫(kù),所以你可以以最快的速度寫一個(gè)支持線程的程序。在使用java創(chuàng)建線程的時(shí)候,你可以生成一個(gè)Thread類或者他的子類對(duì)象,并給這個(gè)對(duì)象發(fā)送start()消息(程序可以向任何一個(gè)派生自 Runnable 接口的類對(duì)象發(fā)送 start() 消息的),這樣一來(lái)程序會(huì)一直執(zhí)行,直到run返回為止,此時(shí)該線程就死掉了。    在java語(yǔ)言中,線程有如下特點(diǎn):    167。 在一個(gè)程序中而言,主線程的執(zhí)行位置就是main。而其他線程執(zhí)行的位置,程序員是可以自定義的。值得注意的是對(duì)Applet也是一樣。    167。 每個(gè)線程執(zhí)行其代碼的方式都是一次順序執(zhí)行的?!   ?67。 一個(gè)線程執(zhí)行其代碼是與其他線程獨(dú)立開來(lái)的。如果諸線程之間又相互協(xié)作的話,就必須采用一定的交互機(jī)制?!   ?67。 前面已經(jīng)說過,線程是共享地址空間的,如果控制不當(dāng),這里很有可能出現(xiàn)死鎖?!   「骶€程之間是相互獨(dú)立的,那么本地變量對(duì)一個(gè)線程而言就是完全獨(dú)立,私有的。所以呢,線程執(zhí)行時(shí),每個(gè)線程都有各自的本地變量拷貝。對(duì)象變量(instance variable)在線程之間是可以共享的,這也就是為什么在java中共享數(shù)據(jù)對(duì)象是如此的好用,但是java線程不能夠武斷地訪問對(duì)象變量:他們是需要訪問數(shù)據(jù)對(duì)象的權(quán)限的。    二、準(zhǔn)備知識(shí)    在分析這個(gè)例子之前,然我們先看看關(guān)于線程的幾個(gè)概念,上鎖,信號(hào)量,和java所提供的API?!   ∩湘i    對(duì)于大多數(shù)的程序而言,他們都需要線程之間相互的通訊來(lái)完成整個(gè)線程的生命周期,二實(shí)現(xiàn)線程之間同步的最簡(jiǎn)單的辦法就是上鎖。為了防止相互關(guān)聯(lián)的兩個(gè)線程之間錯(cuò)誤地訪問共享資源,線程需要在訪問資源的時(shí)候上鎖和解鎖,對(duì)于鎖而言,有讀鎖,寫鎖和讀寫鎖等不同的同步策略。在java中,所有的對(duì)象都有鎖;線程只需要使用synchronized關(guān)鍵字就可以獲得鎖。在任一時(shí)刻對(duì)于給定的類的實(shí)例,方法或同步的代碼塊只能被一個(gè)線程執(zhí)行。這是因?yàn)榇a在執(zhí)行之前要求獲得對(duì)象的鎖?!   ⌒盘?hào)量    通常情況下,多個(gè)線程所訪問為數(shù)不多的資源,那怎么控制呢?一個(gè)比較非常經(jīng)典而起非常簡(jiǎn)單的辦法就是采用信號(hào)量機(jī)制。信號(hào)量機(jī)制的含義就是定義一個(gè)信號(hào)量,也就是說能夠提供的連接數(shù);當(dāng)有一個(gè)線程占用了一個(gè)連接時(shí),信號(hào)量就減一;當(dāng)一個(gè)線程是放了連接時(shí),信號(hào)量就加一。采用這種方法就可以簡(jiǎn)單有效地控制線程的同步問題,而且實(shí)現(xiàn)起來(lái)也特別方便??聪旅娴拇a:    class Semaphore {  private int count?! ublic Semaphore(int count) {   = count?!     public synchronized void acquire() {  while(count == 0) {  try catch (InterruptedException e) {  //keep trying  }  }  count?!     public synchronized void release() {  count++?! otify()。 //alert a thread that′s blocking on this semaphore  }  }    java中提供了哪些api以編寫多線程程序    這里只列出幾個(gè)常用的方法和屬性值?!   傩灾?,有三個(gè)MAX_PRIORITY,MIN_PRIORITY,NORM_PRIORITY    方法:    Thread()。 //建立一個(gè)線程  void run()。 //對(duì)于一個(gè)繼承了Runnable接口的class而言,  //他運(yùn)行一個(gè)線程,否著他什么都不做  void setPriority(int newPriority)。 //設(shè)置優(yōu)先級(jí)  void start()。 //運(yùn)行一個(gè)程序  void sleep(long millis)。 //線程睡眠millis毫秒  static void yield()。 //臨時(shí)pause一個(gè)程序以便起他線程運(yùn)行    三、程序示例    例一、    讓我們看看下面的例子。取錢的流程是輸入密碼,然后確定要取得金額,如果所取的金額小于或等于可以取出的金額,WITHDRAW則返回TRUE,然后ATM機(jī)出錢,然后打印清單;否則返回FALSE,然后打印清單。如下圖:    public class AutomatedTellerMachine extends Teller {  public void withdraw(float amount) {  Account a = getAccount()?! f ((amount))  dispense(amount)?! rintReceipt()?!   }      public class Account {  private float total?! ublic boolean deduct(float t) {  if (t = total) {  total = t?! eturn true?!   return false?!   }    就這個(gè)例子而言,假設(shè)有這種情況,對(duì)同一個(gè)賬號(hào)可以在不同的地方取錢,在同一時(shí)間,不同地點(diǎn),妻子和丈夫取錢,妻子輸入了賬號(hào)上的最大金額,丈夫也是一樣,假如妻子輸入后已經(jīng)得到true的返回值,但是丈夫的線程所得到的值還沒有更新,這樣丈夫也能夠得到true的返回值,這樣就出現(xiàn)了問題!這個(gè)問題怎么解決呢?在java里面提供了控制機(jī)制以保證deduct操作時(shí)的原子性,那就是關(guān)鍵字synchronized。    在Account的deduct方法加入synchronized就可以解決這個(gè)問題?!   ±ⅰ   ≡谶@里我們用多線程中最典型的例子,生產(chǎn)者與消費(fèi)者問題。在這個(gè)例子里面我們定義了生產(chǎn)者Producer,消費(fèi)者Consumer和倉(cāng)庫(kù)Warehouse三個(gè)類,在整個(gè)程序的生命周期里,生產(chǎn)者隨機(jī)地制造出產(chǎn)品放到倉(cāng)庫(kù)中,消費(fèi)者也是隨即地從倉(cāng)庫(kù)中取出產(chǎn)品。    import 。    /**  *   * Consumer  * By: Jiabo  * Date: Mar 21, 2004  * Time: 2:47:58 PM  */  public class Consumer extends Thread {    private Warehouse warehouse。  private String id?!   ublic Consumer(Warehouse warehouse, String id) {   = warehouse。   = id?!     public void run() {    int tmp = (int) () * 10?!   ry {  (tmp)?! ?Consumer + + get + tmp)?!  catch (ProducerConsumerException e)     try {  sleep((int) (() * 100))?!  catch (InterruptedException e)   }  }    在這個(gè)類中,值得注意的一點(diǎn)是run方法中必須使用trycatch,因?yàn)?,消費(fèi)者從倉(cāng)庫(kù)中取東西時(shí)有可能諸如倉(cāng)庫(kù)中的儲(chǔ)量不夠得異常,在消費(fèi)者里面也是一樣,只不過異常變?yōu)閭}(cāng)庫(kù)已滿?!   mport exception.*。    /**  *   * Producer  * By: Jiabo  * Date: Mar 21, 2004  * Time: 2:47:45 PM  */  public class Producer extends Thread {    private Warehouse warehouse?! rivate String id。    public Producer(Warehouse warehouse, String id) {   = warehouse?! ?= id?!     public void run() {    int tmp = (int) () * 10。    if (tmp != 0) {  try {  (tmp)。  (Consumer + + put + tmp)。  } catch (ProducerConsumerException e)   }    try {  sleep((int) (() * 100))。  } catch (InterruptedException e)   }  }    最重要的一部分在Warehouse類,如上所說為了保證get何set的原子性,在這里使用了synchronized關(guān)鍵字,并且在操作時(shí)拋出了可能跑出的異常。5)你用過哪種設(shè)計(jì)模式?(瞬聯(lián),IBM,aspenTech)MVC模式,靜態(tài)工廠模式, 適配器模式, 門面模式, DAO模式, 單例模式,Template模式. mand模式在網(wǎng)上看見了這篇文章,作者以輕松的語(yǔ)言比喻了java的23種模式,有很好的啟發(fā)作用。創(chuàng)建型模式  FACTORY—追MM少不了請(qǐng)吃飯了,麥當(dāng)勞的雞翅和肯德基的雞翅都是MM愛吃的東西,雖然口味有所不同,但不管你帶MM去麥當(dāng)勞或肯德基,只管向服務(wù)員說“來(lái)四個(gè)雞翅”就行了。麥當(dāng)勞和肯德基就是生產(chǎn)雞翅的Factory  工廠模式:客戶類和工廠類分開。消費(fèi)者任何時(shí)候需要某種產(chǎn)品,只需向工廠請(qǐng)求即可。消費(fèi)者無(wú)須修改就可以接納新產(chǎn)品。缺點(diǎn)是當(dāng)產(chǎn)品修改時(shí),工廠類也要做相應(yīng)的修改。如:如何創(chuàng)建及如何向客戶端提供?! UILDER—MM最愛聽的就是“我愛你”這句話了,見到不同地方的MM,要能夠用她們的方言跟她說這句話哦,我有一個(gè)多種語(yǔ)言翻譯機(jī),上面每種語(yǔ)言都有一個(gè)按鍵,見到MM我只要按對(duì)應(yīng)的鍵,它就能夠用相應(yīng)的語(yǔ)言說出“我愛你”這句話了,國(guó)外的MM也可以輕松搞掂,這就是我的“我愛你” builder。(這一定比美軍在伊拉克用的翻譯機(jī)好賣)  建造模式:將產(chǎn)品的內(nèi)部表象和產(chǎn)品的生成過程分割開來(lái),從而使一個(gè)建造過程生成具有不同的內(nèi)部表象的產(chǎn)品對(duì)象。建造模式使得產(chǎn)品內(nèi)部表象可以獨(dú)立的變化,客戶不必知道產(chǎn)品內(nèi)部組成的細(xì)節(jié)。建造模式可以強(qiáng)制實(shí)行一種分步驟進(jìn)行的建造過程?! ACTORY METHOD—請(qǐng)MM去麥當(dāng)勞吃漢堡,不同的MM有不同的口味,要每個(gè)都記住是一件煩人的事情,我一般采用Factory Method模式,帶著MM到服務(wù)員那兒,說“要一個(gè)漢堡”,具體要什么樣的漢堡呢,讓MM直接跟服務(wù)員說就行了?! 」S方法模式:核心工廠類不再負(fù)責(zé)所有產(chǎn)品的創(chuàng)建,而是將具體創(chuàng)建的工作交給子類去做,成為一個(gè)抽象工廠角色,僅負(fù)責(zé)給出具體工廠類必須實(shí)現(xiàn)的接口,而不接觸哪一個(gè)產(chǎn)品類應(yīng)當(dāng)被實(shí)例化這種細(xì)節(jié)?! ROTOTYPE—跟MM用聊天,一定要說些深情的話語(yǔ)了,我搜集了好多肉麻的情話,需要時(shí)只要copy出來(lái)放到里面就行了,這就是我的情話prototype了。(100塊錢一份,你要不要)  原始模型模式:通過給出一個(gè)原型對(duì)象來(lái)指明所要?jiǎng)?chuàng)建的對(duì)象的類型,然后用復(fù)制這個(gè)原型對(duì)象的方法創(chuàng)建出更多同類型的對(duì)象。原始模型模式允許動(dòng)態(tài)的增加或減少產(chǎn)品類,產(chǎn)品類不需要非得有任何事先確定的等級(jí)結(jié)構(gòu),原始模型模式適用于任何的等級(jí)結(jié)構(gòu)。缺
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)教案相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1