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

正文內(nèi)容

計(jì)算機(jī)專(zhuān)業(yè)畢業(yè)設(shè)計(jì)文獻(xiàn)翻譯--一切都是對(duì)象-文庫(kù)吧

2025-04-16 17:32 本頁(yè)面


【正文】 己內(nèi)存塊以外的數(shù)組,或者在初始化之前使用內(nèi)存(屬于常規(guī)編程錯(cuò)誤),會(huì)產(chǎn)生不可預(yù)測(cè)的后果 。 Java 的一項(xiàng)主要設(shè)計(jì)目標(biāo)就是安全性。所以在 C 和 C++里困擾程序員的許多問(wèn)題都未在 第 5頁(yè) Java 里重復(fù)。一個(gè) Java 可以保證被初始化,而且不可在它的范圍之外訪問(wèn)。由于系統(tǒng)自動(dòng)進(jìn)行范圍檢查,所以必然要付出一些代價(jià):針對(duì)每個(gè)數(shù)組,以及在運(yùn)行期間對(duì)索引的校驗(yàn),都會(huì)造成少量的內(nèi)存開(kāi)銷(xiāo)。但由此換回的是更高的安全性,以及更高的工作效率。為此付出少許代價(jià)是值得的。 創(chuàng)建對(duì)象數(shù)組時(shí),實(shí)際創(chuàng)建的是一個(gè)句柄數(shù)組。而且每個(gè)句柄都會(huì)自動(dòng)初始 化成一個(gè)特殊值,并帶有自己的關(guān)鍵字: null(空)。一旦 Java 看到 null,就知道該句柄并未指向一個(gè)對(duì)象。正式使用前,必須為每個(gè)句柄都分配一個(gè)對(duì)象。若試圖使用依然為 null 的一個(gè)句柄,就會(huì)在運(yùn)行期報(bào)告問(wèn)題。因此,典型的數(shù)組錯(cuò)誤在 Java 里就得到了避免。 也可以創(chuàng)建主類(lèi)型數(shù)組。同樣地,編譯器能夠擔(dān)保對(duì)它的初始化,因?yàn)闀?huì)將那個(gè)數(shù)組的內(nèi) 存 劃分成零。 ( 5) 絕對(duì)不要清除對(duì)象 在大多數(shù)程序設(shè)計(jì)語(yǔ)言中,變量的 “存在時(shí)間 ”( Lifetime)一直是程序員需要著重考慮的題。變量應(yīng)持續(xù)多長(zhǎng)的時(shí)間?如果想清除它,那么何時(shí)進(jìn)行 ?在變量存在時(shí)間上糾纏不清造成大量的程序錯(cuò)誤。在下面的小節(jié)里,將 闡釋 Java 如何幫助我們完成所有清除工作, 從 而極大了簡(jiǎn)化了這個(gè)問(wèn)題。 作用域 大多數(shù)程序設(shè)計(jì)語(yǔ)言都提供了 “作用域 ”( Scope)的概念。對(duì)于在作用域里定義的名字, 作 用域同時(shí)決定了它的 “可見(jiàn)性 ”以及 “存在時(shí)間 ”。在 C, C++和 Java 里,作用域是由花括號(hào) 的 位置決定的。 作為在作用域里定義的一個(gè)變量,它只有在那個(gè)作用域結(jié)束之前才可使用。 在上面的例子中,縮進(jìn)排版使 Java 代碼更易辨讀。由于 Java 是一種形式自由的語(yǔ)言,所 以 額外的空格、制表位以及回車(chē) 都不會(huì)對(duì)結(jié)果程序造成影響。編譯器會(huì)認(rèn)為變量x已被定義。所以 C 和 C++能將一個(gè)變量 “隱藏 ”在一個(gè)更大的作用域里。但這種做法在Java 里是不允許的 。 對(duì)象的作用域 Java 對(duì)象不具備與主類(lèi)型一樣的存在時(shí)間。用 new 關(guān)鍵字創(chuàng)建一個(gè) Java 對(duì)象的時(shí)候,它會(huì)超出作用域的范圍之外。 那么句柄 s 會(huì)在作用域的終點(diǎn)處消失。然而, s 指向的 String 對(duì)象依然占據(jù)著內(nèi)存空間。在上面這段代碼里,我們沒(méi)有辦法訪問(wèn)對(duì)象,因?yàn)橹赶蛩奈ㄒ?一個(gè) 句柄已超出 第 6頁(yè) 了作用域的邊界。在后面的章節(jié)里,大家還會(huì)繼續(xù)學(xué)習(xí)如何在程序運(yùn)行期間傳遞和復(fù)制對(duì)象句柄。 這樣造成的結(jié)果便是:對(duì)于用 new 創(chuàng)建的對(duì)象,只要我們?cè)敢?,它們就?huì)一直保留下去。這個(gè)編程問(wèn)題在 C 和 C++里特別突出。看來(lái)在 C++里遇到的麻煩最大:由于不能從語(yǔ)言獲得任何幫助,所以在需要對(duì)象的時(shí)候,根本無(wú)法確定它們是否可用。而且更麻煩的是,在 C++里,一旦工作完成,必須保證將對(duì)象清除。 這樣便帶來(lái)了一個(gè)有趣的問(wèn)題。假如 Java 讓對(duì)象依然故我,怎樣才能防止它們大量充斥 內(nèi) 存,并最終造成程序的 “凝固 ”呢。在 C++里,這個(gè)問(wèn)題最令程序員頭痛。但 Java以后,情況卻發(fā)生了改觀。 Java 有一個(gè)特別的 “垃圾收集器 ”,它會(huì) 查找用 new 創(chuàng)建的所有對(duì)象,并辨別其中哪些不再被引用。隨后,它會(huì)自動(dòng)釋放由那些閑置對(duì)象占據(jù)的內(nèi)存,以便能由新對(duì)象使用。這意味著我們根本不必操心內(nèi)存的回收問(wèn)題。只需簡(jiǎn)單地創(chuàng)建對(duì)象,一旦不再需要它們,它們就會(huì)自動(dòng)離去。這樣做可防止在 C++里很常見(jiàn)的一個(gè)編程問(wèn)題:由于程序員忘記釋放內(nèi)存造成的 “內(nèi)存溢出 ”。 摘自: 王瑞 著 . C++數(shù)據(jù)庫(kù)系統(tǒng)開(kāi)發(fā)詳解 [M].北京:電子工業(yè)出版社. 2020. 第 7頁(yè) 附:英文原文 Everything is an Object Wang Rui Although it is based on C++, Java is more of a “pure” objectoriented language. Both C++ and Java are hybrid languages, but in Java the designers felt that the hybridization was not as important as it was in C++. A hybrid language allows multiple programming styles。 the reason C++ is hybrid is to support backward patibility with the C language. Because C++ is a superset of the C language, it includes many of that language?s undesirable features, which can make some aspects of C++ overly plicated. The Java language assumes that you want to do only objectoriented programming. This means that before you can begin you must shift your mindset into an objectoriented world (unless it?s already there). The benefit of this initial effort is the ability to program in a language that is simpler to learn and to use than many other OOP languages. Alown we?ll see the basic ponents of a Java program and we?ll learn that everything in Java is an object, even a Java program. You manipulate objects with references Each programming language has its own means of manipulating data. Sometimes the programmer must be constantly aware of what type of manipulation is going on. Are you manipulating the object directly, or are you dealing with some kind of indirect representation (a pointer in C or C++) that must be treated with a special syntax? All this is simplified in Java. You treat everything as an object, using a single consistent syntax. Although you treat everything as an object, the identifier you manipulate is actually a “reference” to an object.[10] You might imagine this scene as a television (the object) with your remote control (the reference). As long as you?re holding this reference, you have a connection to the television, but
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1