国产中文字幕免费观看_国产高清精品软男同_日韩免费视频播放_亚洲午夜激情

聚集網(wǎng)(jujiwang.com) - 收錄免費(fèi)分類目錄信息軟文發(fā)布網(wǎng)址提交
免費(fèi)加入

深入探究匿名內(nèi)部類的用途:超越事件處理的廣泛應(yīng)用 (深入探究匿名問題)

文章編號:11616時(shí)間:2024-10-01人氣:


深入探究匿名內(nèi)部類的用途 超越事件處理的廣泛應(yīng)用

匿名內(nèi)部類因其在事件處理中的便捷性而廣為人知,但它的用途遠(yuǎn)遠(yuǎn)不止于此。在本文中,我們將深入探究匿名內(nèi)部類的廣泛應(yīng)用,超越事件處理的范疇,揭示其在其他領(lǐng)域中的強(qiáng)大功能。

匿名內(nèi)部類的基本知識

深入探究匿名問題

匿名內(nèi)部類是一種特殊的內(nèi)部類,沒有明確的名稱,而是直接使用它的父類或接口作為名稱。它通常用于創(chuàng)建實(shí)現(xiàn)抽象方法或重寫父類方法的匿名類實(shí)例。其語法如下:


class OuterClass {// 匿名內(nèi)部類Runnable runnable = new Runnable() {@Overridepublic void run() {// 代碼塊}
};
}

超越事件處理的廣泛應(yīng)用

1. 線程創(chuàng)建

匿名內(nèi)部類可以簡化多線程編程,通過實(shí)現(xiàn) Runnable 接口或擴(kuò)展 Thread 類來創(chuàng)建新線程。這比使用傳統(tǒng)的 Thread 子類更簡潔方便。


// 創(chuàng)建新線程
new Thread(new Runnable() {@Overridepublic void run() {// 線程執(zhí)行的代碼}
}).start();

2. 回調(diào)處理

匿名內(nèi)部類在回調(diào)機(jī)制中扮演著至關(guān)重要的角色。它允許將代碼塊作為參數(shù)傳遞給其他方法,并在滿足特定條件時(shí)執(zhí)行。這在異步編程和 UI 事件處理中非常有用。


// 回調(diào)示例
interface Callback {void onResult(int result);
}// 使用匿名內(nèi)部類的回調(diào)
MethodWithCallback(new Callback() {@Overridepublic void onResult(int result) {// 處理結(jié)果}
});

3. 匿名監(jiān)聽器

事件處理是匿名內(nèi)部類的傳統(tǒng)應(yīng)用,它允許直接在事件發(fā)生時(shí)執(zhí)行代碼,而無需創(chuàng)建單獨(dú)的監(jiān)聽器類。匿名監(jiān)聽器簡化了事件處理,提高了代碼的可讀性。


// 匿名按鈕監(jiān)聽器
JButton button = new JButton("點(diǎn)我");
button.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// 按鈕點(diǎn)擊事件}
});

4. 適配器和裝飾器模式

匿名內(nèi)部類在適配器和裝飾器模式中發(fā)揮著關(guān)鍵作用。它允許包裝或擴(kuò)展現(xiàn)有類,而無需創(chuàng)建繼承自原始類的子類。這提供了更高的靈活性,允許動態(tài)修改類行為。


// 適配器示例
class MyAdapter implements TargetInterface {@Overridepublic void method() {// 匿名內(nèi)部類實(shí)現(xiàn)}
}

5. 匿名類集合

匿名內(nèi)部類可以動態(tài)創(chuàng)建并添加到集合中,提供了更靈活和強(qiáng)大的數(shù)據(jù)結(jié)構(gòu)。這在數(shù)據(jù)處理和算法中非常有用,允許根據(jù)需要?jiǎng)?chuàng)建和修改對象。


// 匿名類集合示例
List tasks = new ArrayList<>();
tasks.add(new Runnable() {@Overridepublic void run() {// 任務(wù) 1}
});
tasks.add(new Runnable() {@Overridepublic void run() {// 任務(wù) 2}
});

匿名內(nèi)部類的優(yōu)點(diǎn)

簡潔性:無需創(chuàng)建單獨(dú)的內(nèi)部類,匿名內(nèi)部類提供了更簡潔的代碼。可讀性:將代碼塊直接嵌入到需要的地方,提高了代碼的可讀性和可維護(hù)性。靈活性:匿名內(nèi)部類允許動態(tài)創(chuàng)建和修改對象,提供了更大的靈活性。效率:由于不需要?jiǎng)?chuàng)建和銷毀單獨(dú)的內(nèi)部類實(shí)例,匿名內(nèi)部類還提高了效率。

結(jié)論

匿名內(nèi)部類遠(yuǎn)遠(yuǎn)超出了事件處理的范疇,在多個(gè)領(lǐng)域都有著廣泛的應(yīng)用。通過線程創(chuàng)建、回調(diào)處理、匿名監(jiān)聽器、適配器和裝飾器模式以及匿名類集合,匿名內(nèi)部類提供了一種簡潔、靈活和高效的方式來增強(qiáng) Java 應(yīng)用程序的功能。掌握匿名內(nèi)部類的廣泛用途可以極大地?cái)U(kuò)展開發(fā)人員的工具箱,并創(chuàng)建更強(qiáng)大、更可維護(hù)的代碼。


匿名內(nèi)部類里面不能有靜態(tài)方法嗎??

匿名類與內(nèi)部類

分類:電腦/網(wǎng)絡(luò) >> 程序設(shè)計(jì) >> 其他編程語言 問題描述: 內(nèi)部類的使用有什么優(yōu)點(diǎn),什么情況下應(yīng)考慮使用它呢? 匿名類使用有什么優(yōu)點(diǎn),什么情況下應(yīng)考慮使用它呢? 解析: 提起Java內(nèi)部類(Inner Class)可能很多人不太熟悉,實(shí)際上類似的概念在C++里也有,那就是嵌套類(Nested Class),關(guān)于這兩者的區(qū)別與聯(lián)系,在下文中會有對比。 內(nèi)部類從表面上看,就是在類中又定義了一個(gè)類(下文會看到,內(nèi)部類可以在很多地方定義),而實(shí)際上并沒有那么簡單,乍看上去內(nèi)部類似乎有些多余,它的用處對于初學(xué)者來說可能并不是那么顯著,但是隨著對它的深入了解,你會發(fā)現(xiàn)Java的設(shè)計(jì)者在內(nèi)部類身上的確是用心良苦。 學(xué)會使用內(nèi)部類,是掌握J(rèn)ava高級編程的一部分,它可以讓你更優(yōu)雅地設(shè)計(jì)你的程序結(jié)構(gòu)。 下面從以下幾個(gè)方面來介紹: 第一次見面public interface Contents { int value(); } public interface Destination { String readLabel(); } public class Goods { private class Content implements Contents { private int i = 11; public int value() { return i; } } protected class GDestination implements Destination { private String label; private GDestination(String whereTo) { label = whereTo; } public String readLabel() { return label; } } public Destination dest(String s) { return new GDestination(s); } public Contents cont() { return new Content(); } } class TestGoods { public static void main(String[] args) { Goods p = new Goods(); Contents c = (); Destination d = (Beijing); } } 在這個(gè)例子里類Content和GDestination被定義在了類Goods內(nèi)部,并且分別有著protected和private修飾符來控制訪問級別。 Content代表著Goods的內(nèi)容,而GDestination代表著Goods的目的地。 它們分別實(shí)現(xiàn)了兩個(gè)接口Content和Destination。 在后面的main方法里,直接用 Contents c和Destination d進(jìn)行操作,你甚至連這兩個(gè)內(nèi)部類的名字都沒有看見!這樣,內(nèi)部類的第一個(gè)好處就體現(xiàn)出來了——隱藏你不想讓別人知道的操作,也即封裝性。 同時(shí),我們也發(fā)現(xiàn)了在外部類作用范圍之外得到內(nèi)部類對象的第一個(gè)方法,那就是利用其外部類的方法創(chuàng)建并返回。 上例中的cont()和dest()方法就是這么做的。 那么還有沒有別的方法呢?當(dāng)然有,其語法格式如下: outerObject=new outerClass(Constructor Parameters); innerObject= InnerClass(Constructor Parameters); 注意在創(chuàng)建非靜態(tài)內(nèi)部類對象時(shí),一定要先創(chuàng)建起相應(yīng)的外部類對象。 至于原因,也就引出了我們下一個(gè)話題—— 非靜態(tài)內(nèi)部類對象有著指向其外部類對象的引用 對剛才的例子稍作修改: public class Goods { private valueRate=2; private class Content implements Contents { private int i = 11*valueRate; public int value() { return i; } } protected class GDestination implements Destination { private String label; private GDestination(String whereTo) { label = whereTo; } public String readLabel() { return label; } } public Destination dest(String s) { return new GDestination(s); } public Contents cont() { return new Content(); } } 修改的部分用藍(lán)色顯示了。 在這里我們給Goods類增加了一個(gè)private成員變量valueRate,意義是貨物的價(jià)值系數(shù),在內(nèi)部類Content的方法value()計(jì)算價(jià)值時(shí)把它乘上。 我們發(fā)現(xiàn),value()可以訪問valueRate,這也是內(nèi)部類的第二個(gè)好處——一個(gè)內(nèi)部類對象可以訪問創(chuàng)建它的外部類對象的內(nèi)容,甚至包括私有變量!這是一個(gè)非常有用的特性,為我們在設(shè)計(jì)時(shí)提供了更多的思路和捷徑。 要想實(shí)現(xiàn)這個(gè)功能,內(nèi)部類對象就必須有指向外部類對象的引用。 Java編譯器在創(chuàng)建內(nèi)部類對象時(shí),隱式的把其外部類對象的引用也傳了進(jìn)去并一直保存著。 這樣就使得內(nèi)部類對象始終可以訪問其外部類對象,同時(shí)這也是為什么在外部類作用范圍之外向要?jiǎng)?chuàng)建內(nèi)部類對象必須先創(chuàng)建其外部類對象的原因。 有人會問,如果內(nèi)部類里的一個(gè)成員變量與外部類的一個(gè)成員變量同名,也即外部類的同名成員變量被屏蔽了,怎么辦?沒事,Java里用如下格式表達(dá)外部類的引用: 有了它,我們就不怕這種屏蔽的情況了。 靜態(tài)內(nèi)部類 和普通的類一樣,內(nèi)部類也可以有靜態(tài)的。 不過和非靜態(tài)內(nèi)部類相比,區(qū)別就在于靜態(tài)內(nèi)部類沒有了指向外部的引用。 這實(shí)際上和C++中的嵌套類很相像了,Java內(nèi)部類與C++嵌套類最大的不同就在于是否有指向外部的引用這一點(diǎn)上,當(dāng)然從設(shè)計(jì)的角度以及以它一些細(xì)節(jié)來講還有區(qū)別。 除此之外,在任何非靜態(tài)內(nèi)部類中,都不能有靜態(tài)數(shù)據(jù),靜態(tài)方法或者又一個(gè)靜態(tài)內(nèi)部類(內(nèi)部類的嵌套可以不止一層)。 不過靜態(tài)內(nèi)部類中卻可以擁有這一切。 這也算是兩者的第二個(gè)區(qū)別吧。 局部內(nèi)部類 是的,Java內(nèi)部類也可以是局部的,它可以定義在一個(gè)方法甚至一個(gè)代碼塊之內(nèi)。 public class Goods1 { public Destination dest(String s) { class GDestination implements Destination { private String label; private GDestination(String whereTo) { label = whereTo; } public String readLabel() { return label; } } return new GDestination(s); } public static void main(String[] args) { Goods1 g= new Goods1(); Destination d = (Beijing); } } 上面就是這樣一個(gè)例子。 在方法dest中我們定義了一個(gè)內(nèi)部類,最后由這個(gè)方法返回這個(gè)內(nèi)部類的對象。 如果我們在用一個(gè)內(nèi)部類的時(shí)候僅需要?jiǎng)?chuàng)建它的一個(gè)對象并創(chuàng)給外部,就可以這樣做。 當(dāng)然,定義在方法中的內(nèi)部類可以使設(shè)計(jì)多樣化,用途絕不僅僅在這一點(diǎn)。 下面有一個(gè)更怪的例子: public class Goods2{ private void internalTracking(boolean b) { if(b) { class TrackingSlip { private String id; TrackingSlip(String s) { id = s; } String getSlip() { return id; } } TrackingSlip ts = new TrackingSlip(slip); String s = (); } } public void track() { internalTracking(true); } public static void main(String[] args) { Goods2 g= new Goods2(); (); } } 你不能在if之外創(chuàng)建這個(gè)內(nèi)部類的對象,因?yàn)檫@已經(jīng)超出了它的作用域。 不過在編譯的時(shí)候,內(nèi)部類TrackingSlip和其他類一樣同時(shí)被編譯,只不過它由它自己的作用域,超出了這個(gè)范圍就無效,除此之外它和其他內(nèi)部類并沒有區(qū)別。 匿名內(nèi)部類 java的匿名內(nèi)部類的語法規(guī)則看上去有些古怪,不過如同匿名數(shù)組一樣,當(dāng)你只需要?jiǎng)?chuàng)建一個(gè)類的對象而且用不上它的名字時(shí),使用內(nèi)部類可以使代碼看上去簡潔清楚。 它的語法規(guī)則是這樣的: new interfacename(){......}; 或 new superclassname(){......}; 下面接著前面繼續(xù)舉例子: public class Goods3 { public Contents cont(){ return new Contents(){ private int i = 11; public int value() { return i; } }; } } 這里方法cont()使用匿名內(nèi)部類直接返回了一個(gè)實(shí)現(xiàn)了接口Contents的類的對象,看上去的確十分簡潔。 在java的事件處理的匿名適配器中,匿名內(nèi)部類被大量的使用。 例如在想關(guān)閉窗口時(shí)加上這樣一句代碼: (new WindowAdapter(){ public void windowClosing(WindowEvent e){ (0); } }); 有一點(diǎn)需要注意的是,匿名內(nèi)部類由于沒有名字,所以它沒有構(gòu)造函數(shù)(但是如果這個(gè)匿名內(nèi)部類繼承了一個(gè)只含有帶參數(shù)構(gòu)造函數(shù)的父類,創(chuàng)建它的時(shí)候必須帶上這些參數(shù),并在實(shí)現(xiàn)的過程中使用super關(guān)鍵字調(diào)用相應(yīng)的內(nèi)容)。 如果你想要初始化它的成員變量,有下面幾種方法: 如果是在一個(gè)方法的匿名內(nèi)部類,可以利用這個(gè)方法傳進(jìn)你想要的參數(shù),不過記住,這些參數(shù)必須被聲明為final。 將匿名內(nèi)部類改造成有名字的局部內(nèi)部類,這樣它就可以擁有構(gòu)造函數(shù)了。 在這個(gè)匿名內(nèi)部類中使用初始化代碼塊。 為什么需要內(nèi)部類? java內(nèi)部類有什么好處?為什么需要內(nèi)部類? 首先舉一個(gè)簡單的例子,如果你想實(shí)現(xiàn)一個(gè)接口,但是這個(gè)接口中的一個(gè)方法和你構(gòu)想的這個(gè)類中的一個(gè)方法的名稱,參數(shù)相同,你應(yīng)該怎么辦?這時(shí)候,你可以建一個(gè)內(nèi)部類實(shí)現(xiàn)這個(gè)接口。 由于內(nèi)部類對外部類的所有內(nèi)容都是可訪問的,所以這樣做可以完成所有你直接實(shí)現(xiàn)這個(gè)接口的功能。 不過你可能要質(zhì)疑,更改一下方法的不就行了嗎? 的確,以此作為設(shè)計(jì)內(nèi)部類的理由,實(shí)在沒有說服力。 真正的原因是這樣的,java中的內(nèi)部類和接口加在一起,可以的解決常被C++程序員抱怨java中存在的一個(gè)問題——沒有多繼承。 實(shí)際上,C++的多繼承設(shè)計(jì)起來很復(fù)雜,而java通過內(nèi)部類加上接口,可以很好的實(shí)現(xiàn)多繼承的效果。 本文的目的只是向大家介紹一下內(nèi)部類的概念以及使用方法,在后續(xù)文章里,將會針對本文中的內(nèi)容舉更多具體的例子,以及介紹如何使用內(nèi)部類構(gòu)建一個(gè)Applicaton Framework。

在JAVA中new 和this的作用,用法,在什么情況下使用?

new 在創(chuàng)建對象時(shí)使用 例如String s=new String(abc);java中的this隨處可見,用法也多,現(xiàn)在整理有幾點(diǎn):1. this是指當(dāng)前對象自己。 當(dāng)在一個(gè)類中要明確指出使用對象自己的的變量或函數(shù)時(shí)就應(yīng)該加上this引用。 如下面這個(gè)例子中: public class Hello { String s = Hello; public Hello(String s){ (s = + s); (1 -> this.s = + this.s); this.s = s; (2 -> this.s = + this.s); } public static void main(String[] args) { Hello x=new Hello(HelloWorld!); } }運(yùn)行結(jié)果: s = HelloWorld! 1 -> this.s = Hello 2 -> this.s = HelloWorld!在這個(gè)例子中,構(gòu)造函數(shù)Hello中,參數(shù)s與類Hello的變量s同名,這時(shí)如果直接對s進(jìn)行操作則是對參數(shù)s進(jìn)行操作。 若要對類Hello的成員變量s進(jìn)行操作就應(yīng)該用this進(jìn)行引用。 運(yùn)行結(jié)果的第一行就是直接對構(gòu)造函數(shù)中傳遞過來的參數(shù)s進(jìn)行打印結(jié)果; 第二行是對成員變量s的打印;第三行是先對成員變量s賦傳過來的參數(shù)s值后再打印,所以結(jié)果是HelloWorld!2. 把this作為參數(shù)傳遞 當(dāng)你要把自己作為參數(shù)傳遞給別的對象時(shí),也可以用this。 如: public class A { public A() { new B(this)(); } public void print() { (Hello from A!); } } public class B { A a; public B(A a) { this.a = a; } public void print() { (); (Hello from B!); } } 運(yùn)行結(jié)果: Hello from A! Hello from B! 在這個(gè)例子中,對象A的構(gòu)造函數(shù)中,用new B(this)把對象A自己作為參數(shù)傳遞給了對象B的構(gòu)造函數(shù)。 3. 注意匿名類和內(nèi)部類中的中的this。 有時(shí)候,我們會用到一些內(nèi)部類和匿名類,如事件處理。 當(dāng)在匿名類中用this時(shí),這個(gè)this則指的是匿名類或內(nèi)部類本身。 這時(shí)如果我們要使用外部類的方法和變量的話,則應(yīng)該加上外部類的類名。 如下面這個(gè)例子: public class A { int i = 1; public A() { Thread thread = new Thread() { public void run() { for(;;) { (); try { sleep(1000); } catch(InterruptedException ie) { }} } }; //注意這里有; (); } public void run() { (i = + i); i++; } public static void main(String[] args) throws Exception { new A(); }} 在上面這個(gè)例子中, thread 是一個(gè)匿名類對象,在它的定義中,它的 run 函數(shù)里用到了外部類的 run 函數(shù)。 這時(shí)由于函數(shù)同名,直接調(diào)用就不行了。 這時(shí)有兩種辦法,一種就是把外部的 run 函數(shù)換一個(gè)名字,但這種辦法對于一個(gè)開發(fā)到中途的應(yīng)用來說是不可取的。 那么就可以用這個(gè)例子中的辦法用外部類的類名加上 this 引用來說明要調(diào)用的是外部類的方法 run。 4。 在構(gòu)造函數(shù)中,通過this可以調(diào)用同一class中別的構(gòu)造函數(shù),如public class Flower{ Flower (int petals){} Flower(String ss){} Flower(int petals, Sting ss){ //petals++;調(diào)用另一個(gè)構(gòu)造函數(shù)的語句必須在最起始的位置 this(petals); //this(ss);會產(chǎn)生錯(cuò)誤,因?yàn)樵谝粋€(gè)構(gòu)造函數(shù)中只能調(diào)用一個(gè)構(gòu)造函數(shù) } } 值得注意的是:1:在構(gòu)造調(diào)用另一個(gè)構(gòu)造函數(shù),調(diào)用動作必須置于最起始的位置。 2:不能在構(gòu)造函數(shù)以外的任何函數(shù)內(nèi)調(diào)用構(gòu)造函數(shù)。 3:在一個(gè)構(gòu)造函數(shù)內(nèi)只能調(diào)用一個(gè)構(gòu)造函數(shù)。

信息技術(shù)作業(yè)!~

我們在基本配置中已經(jīng)認(rèn)識了主機(jī)箱、顯示器、鍵盤、鼠標(biāo)、音箱和話筒。 這些我們能夠看得見、摸得著的設(shè)備就是我們常常說起的硬件,它就好比我們?nèi)祟惖拇竽X和身體,是物質(zhì)的,是進(jìn)行一切活動的基礎(chǔ)。 鍵盤、鼠標(biāo)和話筒都是給計(jì)算機(jī)送信號的,于是我們叫它們輸入設(shè)備,而顯示器、音箱是為計(jì)算機(jī)向外界傳達(dá)信息的,于是我們叫它們輸出設(shè)備。 這就好像我們的眼睛、耳朵和鼻子是給我們以視覺、聽覺、嗅覺信息的,而我們的嘴、面部表情和四肢是表達(dá)我們的看法和感情的。 是否還有其他的輸入和輸出設(shè)備呢?不但有,而且還非常多。 事實(shí)上,正是各種功能各異的外圍設(shè)備使我們的計(jì)算機(jī)變得更加豐富多彩。 主要的輸入設(shè)備還有掃描儀、數(shù)碼相機(jī)甚至影碟機(jī),輸出設(shè)備有各種打印機(jī)。 中央處理單元(CPU)CPU這三個(gè)字母是英文Central Processing Unit的縮寫,中文意思是中央處理器。 CPU讀起來省事又好記,所以,很少有人說它的中文全名了。 中央處理器,顧名思義,就是把數(shù)據(jù)收集到一起集中進(jìn)行處理的器件。 CPU是一個(gè)電子元件,直接處理計(jì)算機(jī)的大部分?jǐn)?shù)據(jù),它處理數(shù)據(jù)速度的快慢直接影響著整臺電腦性能的發(fā)揮,所以人們把CPU形象地比喻為電腦的心臟。 CPU的速度是用什么來表的呢?我們常常聽人這樣說:這個(gè)CPU的主頻是166兆赫茲。 CPU有主頻、倍頻、外頻三個(gè)重要參數(shù),它們的關(guān)系是:主頻=外頻×倍頻,主頻是CPU內(nèi)部的工作頻率,外頻是系統(tǒng)總線的工作頻率,倍頻是它們相差的倍數(shù)。 CPU的運(yùn)行速度通常用主頻表示,以赫茲(Hz)作為計(jì)量單位。 兆是10的6次方,兆赫茲寫作MHz。 CPU的工作頻率越高,速度就越快,性能就越好,價(jià)格也就越高。 目前的CPU最高工作頻率已達(dá)到1500MHz以上。 計(jì)算機(jī)之所以能夠在二十幾年中在全世界迅速普及,主要原因是它功能的強(qiáng)大、操作的簡便化和價(jià)格的直線下降。 而計(jì)算機(jī)功能的每一次翻天覆地的變化都是由于CPU功能的大幅度改進(jìn)。 我們常說的286、386、486到今天的586、Pentium Ⅱ都是CPU的型號。 CPU的主要生產(chǎn)廠商Intel公司用80X86系列作為自己生產(chǎn)的CPU名稱,例如,486就是的簡稱。 90年代以后,由于其他CPU廠家的CPU型號也是用486、586來表示的,這就使很多人誤以為凡是標(biāo)明為486、586的CPU都是Intel公司的產(chǎn)品。 為了與其他廠家區(qū)別開來,Intel 公司將自己的586改名為Pentium,中文譯為奔騰。 近年來,Intel公司又相繼推出了Pentium MMX和Pentium Ⅱ。 CPU每一次技術(shù)的革新,都帶來相應(yīng)的名稱變化和計(jì)算機(jī)速度的大幅度提高。 目前,著名的CPU生產(chǎn)廠家除了Intel公司外,還有AMD公司、Cyrix公司等,他們的CPU性能也不錯(cuò),同等檔次的產(chǎn)品價(jià)格較Intel公司的低一些。 內(nèi)存與硬盤您可能經(jīng)常聽別人說,某臺電腦的內(nèi)存不夠了,硬盤太小了之類的話。 這里的不夠、太小都指的是它們的容量,而不是他們的數(shù)量或幾何形狀的大小。 內(nèi)存和硬盤都是計(jì)算機(jī)用來存儲數(shù)據(jù)的,它們的單位就是我們剛剛談過的Bytes。 那么,為什么一個(gè)叫內(nèi)存,一個(gè)叫硬盤呢?我們知道,計(jì)算機(jī)處理的數(shù)據(jù)量是極為龐大的,就好比一個(gè)人在堆滿了谷物的倉庫里打谷子,那怎么施展得開,工作效率又怎會高呢?于是,人們把谷子堆在倉庫中,自己拿了一部分谷子到場院中去打,打完了再送回去。 這下子,可沒什么礙事的東西了,打谷子的速度快多了,內(nèi)效率提高了。 計(jì)算機(jī)也是這樣解決了同類的問題。 它把大量有待處理和暫時(shí)不用的數(shù)據(jù)都存放在硬盤中,只是把需要立即處理的數(shù)據(jù)調(diào)到內(nèi)存中,處理完畢立即送回硬盤,再調(diào)出下一部分?jǐn)?shù)據(jù)。 硬盤就是計(jì)算機(jī)的大倉庫,內(nèi)存就是它干活的場院。 內(nèi)存簡稱RAM,是英文Random Accessmemory的縮寫。 在個(gè)人計(jì)算機(jī)中,內(nèi)存分為靜態(tài)內(nèi)存(SRAM)和動態(tài)內(nèi)存(DRAM)兩種,靜態(tài)內(nèi)存的讀寫速度比動態(tài)內(nèi)存要快。 目前市面上的內(nèi)存條以MB為單位,比如32MB的和64MB的內(nèi)存條。 硬盤容量要比內(nèi)存大得多,現(xiàn)在以GB為單位已屬常見。 當(dāng)然了,內(nèi)存和硬盤容量都是越大越好。 可是容量越大,價(jià)錢就越高。 重要的是,我們要選購夠用而又不造成浪費(fèi)的內(nèi)存條和硬盤。 如圖-5所示為一塊硬盤。 驅(qū)動器要想了解軟盤和光盤中的信息,就必須把他們分別插入到軟盤驅(qū)動器和光盤驅(qū)動器中,供計(jì)算機(jī)對上面的數(shù)據(jù)信息進(jìn)行識別和處理。 軟盤驅(qū)動器和光盤驅(qū)動器都位于機(jī)箱中,只把它們的嘴巴露在外面,隨時(shí)準(zhǔn)備吃進(jìn)軟盤和光盤。 至于硬盤,由于它是不可移動的,所以被固定于驅(qū)動器之中,也就是說,硬盤和硬盤驅(qū)動器是一體的。 將軟盤插入軟盤驅(qū)動器時(shí)要注意方向,3.5吋盤在插入時(shí)應(yīng)該使轉(zhuǎn)軸面向下,金屬片朝前,聽到驅(qū)動器口下方的彈出按鈕喀噠一聲彈出,說明軟盤插好了。 取出時(shí),應(yīng)該先按一下彈出按鈕,軟盤會自動彈出一部分,接著將軟盤抽出。 現(xiàn)在,使用5.25吋盤的人越來越少,計(jì)算機(jī)上已很少安裝5.25吋軟盤驅(qū)動器。 值得注意的是,軟盤驅(qū)動器的上方或下方有一個(gè)小小的指示燈,當(dāng)指示燈亮?xí)r,說明計(jì)算機(jī)正在讀或?qū)戇@個(gè)驅(qū)動器內(nèi)的軟盤,硬盤驅(qū)動器的指示燈也位于主機(jī)箱前面板上,指示燈亮?xí)r,表明計(jì)算機(jī)正在讀或?qū)懹脖P。 驅(qū)動器指示燈亮?xí)r,不能取出相應(yīng)驅(qū)動器內(nèi)的軟盤或關(guān)機(jī),否則可能會對磁盤造成損壞。 一臺計(jì)算機(jī)可能有不止一個(gè)軟、硬盤驅(qū)動器,怎樣區(qū)別它們呢?我們采取給驅(qū)動器取名字的辦法。 驅(qū)動器的名字都是用單個(gè)的英文字母表示的,用A和B來表示軟盤驅(qū)動器,用C、D、E來表示硬盤驅(qū)動器,光盤驅(qū)動器一般用字母H來表示。 這樣,就有了我們常說的A驅(qū)、B驅(qū)、C驅(qū)、D驅(qū),每臺計(jì)算機(jī)一般只有一個(gè)光盤驅(qū)動器,所以經(jīng)常簡稱之為光驅(qū)。 計(jì)算機(jī)之所以能夠具有如此強(qiáng)大的數(shù)據(jù)處理能力,是因?yàn)橹鳈C(jī)箱內(nèi)的重要部件忠實(shí)的各司其職。 想認(rèn)識一下這些功臣嗎?用螺絲刀擰下機(jī)箱殼上的螺絲,輕輕的取下機(jī)箱殼,就可以看見計(jì)算機(jī)的廬山真面目了。 如下圖所示,機(jī)箱中有一塊電源、一個(gè)硬盤驅(qū)動器、一個(gè)光盤驅(qū)動器、一個(gè)軟盤驅(qū)動器、一塊插滿了電子元件的電路板--主板及帶狀的導(dǎo) 線,叫做數(shù)據(jù)線。 下面我們一一介紹它們的作用。 計(jì)算機(jī)電源 如圖-9所示為計(jì)算機(jī)電源。 計(jì)算機(jī)內(nèi)部所需電壓不超過12V,而市電電壓是220V。 計(jì)算機(jī)電源相當(dāng)于一個(gè)變壓器,把220V電壓轉(zhuǎn)化為計(jì)算機(jī)內(nèi)硬件設(shè)備所需的電壓,并向各部件供電。 電源上有一束各種顏色帶接口的導(dǎo)線,它們用來與主板、軟驅(qū)、光驅(qū)、硬盤、CPU風(fēng)扇等部件的電源接口相連,給它們供電。 電源插座 計(jì)算機(jī)需要電才能運(yùn)作。 計(jì)算機(jī)機(jī)箱里有一個(gè)電源,電源上有很多導(dǎo)線及接口。 計(jì)算機(jī)電源是給主機(jī)箱中的各個(gè)硬件設(shè)備供電的。 導(dǎo)線及接口要分別接到主板、硬盤、光驅(qū)、軟驅(qū)的電源插座上。 系統(tǒng)主存插槽與內(nèi)存條 上文說過,內(nèi)存是計(jì)算機(jī)干活的場院,是它處理數(shù)據(jù)的地方。 那么內(nèi)存以何種形式存在呢? 在主板上,有專門用來安插內(nèi)存條的插槽,叫做系統(tǒng)主存插槽。 大部分Socket 7架構(gòu)主板提供72線(白色)和168線(黑色)的內(nèi)存插槽。 72線插槽叫做DRAM插槽,用來插DRAM內(nèi)存條;168線插槽叫做SDRAM插槽,用來插SDRAM內(nèi)存條。 而Slot 1架構(gòu)主板上只提供168線的黑色SDRAM插槽。 通常,DRAM內(nèi)存條又稱作SIMM,SDRAM內(nèi)存條又稱做DIMM。 按容量大小內(nèi)存條可分為8MB、16MB、32MB、64MB等種類。 您可以根據(jù)自己主板上的內(nèi)存插槽類型和個(gè)數(shù)酌情增插SIMM或DIMM擴(kuò)充計(jì)算機(jī)內(nèi)存。 擴(kuò)展槽與擴(kuò)展總線 擴(kuò)展槽為個(gè)人電腦提供了功能擴(kuò)展的接口。 它可以連接聲卡、顯卡等設(shè)備,并把它們的信號傳給主板電路,同時(shí),將主板的信號傳遞給外部設(shè)備。 擴(kuò)展槽成了主板與外界交流的橋梁, 使個(gè)人電腦的用途得以擴(kuò)展。 擴(kuò)展槽的接口有ISA、PCI、AGP三種。 ISA接口用處不大,但仍不可缺少;PCI接口用途較廣;AGP是新興的3D圖形加速端口。 PCI擴(kuò)展槽為白色,AGP和ISA擴(kuò)展槽一般為黑色。 如圖1-12所示為PCI擴(kuò)展槽。 圖1-11 PCI擴(kuò)展槽 總線是主板與插到它上面的板卡的數(shù)據(jù)流通通道。 有了總線,各板卡才能與主板建立聯(lián)系,供計(jì)算機(jī)使用。 擴(kuò)展槽口中的金屬線就是擴(kuò)展總線,板卡插到擴(kuò)展槽中時(shí),其管腳的金屬線與槽口的擴(kuò)展總線相接觸,就達(dá)到了信號互遞的作用。 擴(kuò)展槽有ISA、PCI、AGP三種類型,相應(yīng)的擴(kuò)展總線也分為ISA、PCI和AGP三種類型。 RAM、ROM是什么?它們的特點(diǎn)是什么?區(qū)別是什么?簡單地說,在計(jì)算機(jī)中,RAM 、ROM都是數(shù)據(jù)存儲器。 RAM 是隨機(jī)存取存儲器,它的特點(diǎn)是易揮發(fā)性,即掉電失憶。 ROM 通常指固化存儲器(一次寫入,反復(fù)讀取),它的特點(diǎn)與RAM 相反。 ROM又分一次性固化、光擦除和電擦除重寫兩種類型。 RAM(Random Access Memory)的全名為隨機(jī)存取記憶體,它相當(dāng)于PC機(jī)上的移動存儲,用來存儲和保存數(shù)據(jù)的。 它在任何時(shí)候都可以讀寫,RAM通常是作為操作系統(tǒng)或其他正在運(yùn)行程序的臨時(shí)存儲介質(zhì)(可稱作系統(tǒng)內(nèi)存)。 不過,當(dāng)電源關(guān)閉時(shí)RAM不能保留數(shù)據(jù),如果需要保存數(shù)據(jù),就必須把它們寫入到一個(gè)長期的存儲器中(例如硬盤)。 正因?yàn)槿绱耍袝r(shí)也將RAM稱作“可變存儲器”。 RAM內(nèi)存可以進(jìn)一步分為靜態(tài)RAM(SRAM)和動態(tài)內(nèi)存(DRAM)兩大類。 DRAM由于具有較低的單位容量價(jià)格,所以被大量的采用作為系統(tǒng)的主記憶。 RAM和ROM相比,兩者的最大區(qū)別是RAM在斷電以后保存在上面的數(shù)據(jù)會自動消失,而ROM就不會。 4~8M的RAM對于一般應(yīng)用程序的運(yùn)行已經(jīng)足夠,如果追求多媒體功能,64M的RAM容量也只能夠算是基本要求。 ROM(Read Only Memory)的全名為唯讀記憶體,它相當(dāng)于PC機(jī)上的硬盤,用來存儲和保存數(shù)據(jù)。 ROM數(shù)據(jù)不能隨意更新,但是在任何時(shí)候都可以讀取。 即使是斷電,ROM也能夠保留數(shù)據(jù)。 但是資料一但寫入后只能用特殊方法或根本無法更改,因此ROM常在嵌入式系統(tǒng)中擔(dān)任存放作業(yè)系統(tǒng)的用途。 現(xiàn)在市面上主流的PDA的ROM大小是64MB以及128MB。 RAM和ROM相比,兩者的最大區(qū)別是RAM在斷電以后保存在上面的數(shù)據(jù)會自動消失,而ROM就不會。 電子計(jì)算機(jī)系統(tǒng)包括什么?計(jì)算機(jī)系統(tǒng)是能按照人的要求接受和存儲信息,自動進(jìn)行數(shù)據(jù)處理和計(jì)算,并輸出結(jié)果信息的機(jī)器系統(tǒng)。 計(jì)算機(jī)系統(tǒng)由兩大部分組成:硬件(子)系統(tǒng)和軟件(子)系統(tǒng),其中硬件子系統(tǒng)是系統(tǒng)賴以工作的實(shí)體,它是有關(guān)的各種物理部件的有機(jī)的結(jié)合。 軟件子系統(tǒng)由各種程序以及程序所處理的數(shù)據(jù)組成,這些程序的主要作用是協(xié)調(diào)各個(gè)硬件部件,使整個(gè)計(jì)算機(jī)系統(tǒng)能夠按照指定的要求進(jìn)行工作。 硬件子系統(tǒng)包括中央處理器、主存存儲器、輸人輸出控制系統(tǒng)和各種外圍設(shè)備。 軟件子系統(tǒng)包括 系統(tǒng)軟件 、支援軟件 、應(yīng)用軟件 三個(gè)部分。 計(jì)算機(jī)軟件(Computer Software,也稱軟件,軟體)是指計(jì)算機(jī)系統(tǒng)中的程序及其文檔。 程序是計(jì)算任務(wù)的處理對象和處理規(guī)則的描述;文檔是為了便于了解程序所需的闡明性資料。 程序必須裝入機(jī)器內(nèi)部才能工作,文檔一般是給人看的,不一定裝入機(jī)器。 軟件是用戶與硬件之間的接口界面。 用戶主要是通過軟件與計(jì)算機(jī)進(jìn)行交流。 軟件是計(jì)算機(jī)系統(tǒng)設(shè)計(jì)的重要依據(jù)。 為了方便用戶,為了使計(jì)算機(jī)系統(tǒng)具有較高的總體效用,在設(shè)計(jì)計(jì)算機(jī)系統(tǒng)時(shí),必須通盤考慮軟件與硬件的結(jié)合,以及用戶的要求和軟件的要求。 軟件(中國大陸及香港用語,臺灣作軟體)是一系列按照特定順序組織的計(jì)算機(jī)數(shù)據(jù)和指令的集合。 一般來講軟件被劃分為系統(tǒng)軟件、應(yīng)用軟件和介于這兩者之間的中間件。 其中系統(tǒng)軟件為計(jì)算機(jī)使用提供最基本的功能,但是并不針對某一特定應(yīng)用領(lǐng)域。 而應(yīng)用軟件則恰好相反,不同的應(yīng)用軟件根據(jù)用戶和所服務(wù)的領(lǐng)域提供不同的功能。 軟件并不只是包括可以在計(jì)算機(jī)上運(yùn)行的程序,與這些程序相關(guān)的文件一般也被認(rèn)為是軟件的一部分。 簡單的說軟件就是程序加文檔的集合體。 軟件被應(yīng)用于世界的各個(gè)領(lǐng)域,對人們的生活和工作都產(chǎn)生了深遠(yuǎn)的影響。 軟件的正確含義應(yīng)該是: (1)運(yùn)行時(shí),能夠提供所要求功能和性能的指令或計(jì)算機(jī)程序集合。 (2)程序能夠滿意地處理信息的數(shù)據(jù)結(jié)構(gòu)。 (3)描述程序功能需求以及程序如何操作和使用所要求的文檔。 軟件具有與硬件不同的特點(diǎn): (1)表現(xiàn)形式不同 硬件有形,有色,有味,看得見,摸得著,聞得到。 而軟件無形,無色,無味,看不見,摸不著,聞不到。 軟件大多存在人們的腦袋里或紙面上,它的正確與否,是好是壞,一直要到程序在機(jī)器上運(yùn)行才能知道。 這就給設(shè)計(jì)、生產(chǎn)和管理帶來許多困難。 (2)生產(chǎn)方式不同 軟件是開發(fā),是人的智力的高度發(fā)揮,不是傳統(tǒng)意義上的硬件制造。 盡管軟件開發(fā)與硬件制造之間有許多共同點(diǎn),但這兩種活動是根本不同的。 (3)要求不同 硬件產(chǎn)品允許有誤差,而軟件產(chǎn)品卻不允許有誤差。 (4)維護(hù)不同 硬件是要用舊用壞的,在理論上,軟件是不會用舊用壞的,但在實(shí)際上,軟件也會變舊變壞。 因?yàn)樵谲浖恼麄€(gè)生存期中,一直處于改變(維護(hù))狀態(tài)。 系統(tǒng)軟件 系統(tǒng)軟件是負(fù)責(zé)管理計(jì)算機(jī)系統(tǒng)中各種獨(dú)立的硬件,使得它們可以協(xié)調(diào)工作。 系統(tǒng)軟件使得計(jì)算機(jī)使用者和其他軟件將計(jì)算機(jī)當(dāng)作一個(gè)整體而不需要顧及到底層每個(gè)硬件是如何工作的。 一般來講,系統(tǒng)軟件包括操作系統(tǒng)和一系列基本的工具(比如編譯器,數(shù)據(jù)庫管理,存儲器格式化,文件系統(tǒng)管理,用戶身份驗(yàn)證,驅(qū)動管理,網(wǎng)絡(luò)連接等方面的工具)。 應(yīng)用軟件 應(yīng)用軟件是為了某種特定的用途而被開發(fā)的軟件。 它可以是一個(gè)特定的程序,比如一個(gè)圖像瀏覽器。 也可以是一組功能聯(lián)系緊密,可以互相協(xié)作的程序的集合,比如微軟的Office軟件。 也可以是一個(gè)由眾多獨(dú)立程序組成的龐大的軟件系統(tǒng),比如數(shù)據(jù)庫管理系統(tǒng) 較常見的有: 文字處理軟件 如WPS、Word等 信息管理軟件 輔助設(shè)計(jì)軟件 如AutoCAD 實(shí)時(shí)控制軟件 教育與娛樂軟件 按操作系統(tǒng)分類 BeOS DOS Linux Mac OS Unix Windows軟件開發(fā) 軟件開發(fā)是根據(jù)用戶要求建造出軟件系統(tǒng)或者系統(tǒng)中的軟件部分的過程。 軟件開發(fā)是一項(xiàng)包括需求捕捉,需求分析,設(shè)計(jì),實(shí)現(xiàn)和測試的系統(tǒng)工程。 軟件一般是用某種程序設(shè)計(jì)語言來實(shí)現(xiàn)的。 通常采用軟件開發(fā)工具可以進(jìn)行開發(fā)軟件許可 不同的軟件一般都有對應(yīng)的軟件許可,軟件的使用者必須在同意所使用軟件的許可證的情況下采能夠合法的使用軟件。 從另一方面來講,某種特定軟件的許可條款也不能夠與法律相抵觸。 未經(jīng)軟件版權(quán)所有者許可的軟件拷貝將會引發(fā)法律問題,一般來講,購買和使用這些盜版軟件也是違法的。 二進(jìn)制與十進(jìn)制如何轉(zhuǎn)換1、常用進(jìn)位計(jì)數(shù)制(1)十進(jìn)制數(shù)碼:0、1、…… 8、9基數(shù):10位權(quán): 10i (i=……-2,-1,0,1,2,……)逢10進(jìn)1(2)二進(jìn)制數(shù)碼:0、1基數(shù):2位權(quán): 2i (i=……-2,-1,0,1,2,……)計(jì)算機(jī)語言包括哪些?各自特點(diǎn)是什么?雖說C語言在內(nèi)存管理方面存在嚴(yán)重的缺陷,不過它還是在某些應(yīng)用領(lǐng)域里稱王稱霸。 對于那些要求最高的效率,良好的實(shí)時(shí)性,或者與操作系統(tǒng)內(nèi)核緊密關(guān)聯(lián)的程序來說,C仍然是很好的選擇。 C良好的可移植性也為它加了分。 不過現(xiàn)在很多其他的語言可移植性越來越好,C在這方面的優(yōu)勢可能會逐漸喪失。 現(xiàn)有的很多程序可以產(chǎn)生非常棒的C代碼,比如語法分析器、GUI Builder等,這時(shí)候C語言也是有吸引力的,因?yàn)槟闼枰帉懙拇a只是整個(gè)程序的一小部分。 再有,我們當(dāng)然應(yīng)該認(rèn)識道,C語言對于程序員來說具有無可替代的價(jià)值。 就我這里討論的每一種語言而論,只要你發(fā)掘的足夠深,到最后你會看到它們的內(nèi)核都是用純正的、可移植的C寫成的。 到了今天這個(gè)時(shí)候,我們最好把C看成是UNIX虛擬機(jī)上的高級匯編語言。 就算是其他的高級語言完全可以滿足你的工作需要,抽出時(shí)間來學(xué)習(xí)C語言也仍然有益,它能幫助你在硬件體系的層次上思考問題。 即使到了今天,最好的C語言教程仍然是1988年出版的K&R第二版the C Programming Language. 總結(jié):C最出色的地方在于其高效和貼近機(jī)器,最糟糕的地方在它的內(nèi)存管理地獄。 C++ C++最初發(fā)布于1980年代中期,當(dāng)時(shí)面向?qū)ο笳Z言被認(rèn)為是解決軟件復(fù)雜性問題的銀彈。 C++的面向?qū)ο筇匦钥聪嗳ナ蛊淙娉搅薈,支持者認(rèn)為C++將迅速把上一代語言擠到陳列館里去。 但是歷史并非如此。 究其原因,至少有一部分歸咎于C++本身。 為了與C兼容,C++被迫作出了很多重大的設(shè)計(jì)妥協(xié),結(jié)果導(dǎo)致語言過分華麗,過分復(fù)雜。 為了與C兼容,C++并沒有采用自動內(nèi)存管理的策略,從而喪失了修正C最嚴(yán)重問題的機(jī)會。 另外一部分原因,恐怕要算到面向?qū)ο笊砩稀? 看起來OO并沒有很好的達(dá)成人們當(dāng)年的預(yù)期。 我就這個(gè)問題調(diào)研過,我發(fā)現(xiàn)使用OO方法導(dǎo)致組件之間出現(xiàn)很厚的粘合層,并且?guī)砹藝?yán)重的可維護(hù)性問題。 今天讓我們來看看開放源碼社區(qū),你會發(fā)現(xiàn)C++的應(yīng)用還是集中在GUI,游戲和多媒體工具包這些方面,在其他地方很少用到。 要知道,面向?qū)ο笠仓皇窃谶@些領(lǐng)域被證明非常成功,而開放源碼社區(qū)的選擇,很大程度上體現(xiàn)了程序員的自由意志,而不是公司管理層的胡亂指揮。 也許C++實(shí)現(xiàn)OO的方法有問題。 有證據(jù)表明C++程序在整個(gè)生命周期的開銷高于相應(yīng)的C, Fortran和Ada程序。 不過,究竟這是否應(yīng)該歸咎與C++的OO實(shí)現(xiàn)上,還不清楚。 最近幾年,C++加入了很多非OO的思想,其異常思想類似Lisp,STL的出現(xiàn)是非常了不起的。 其實(shí)C++最根本的問題在于,它基本上只不過是另一種傳統(tǒng)的語言。 STL中的內(nèi)存管理比先前的new/delete和C的方案要好的多,但是還是沒有解決問題。 對于很多應(yīng)用程序而言,其OO特性并不明顯,相比與C,除了增加復(fù)雜度之外沒有獲得很多好處。 總結(jié):C++優(yōu)點(diǎn)在于作為編譯型語言,把效率與泛型和面向?qū)ο筇匦越Y(jié)合起來,其缺點(diǎn)在于過于華麗復(fù)雜,傾向于鼓勵(lì)程過分復(fù)雜的設(shè)計(jì)。 Java Java的設(shè)計(jì)很聰明,它采用了自動內(nèi)存管理,這是最大的改進(jìn),支持OO設(shè)計(jì)帶來的好處雖然不那么突出,不過也很值得贊賞,相比C++,其OO設(shè)計(jì)規(guī)模小而且簡單 。 相對于Python而言,Java有一些明顯的失誤。 有些地方設(shè)計(jì)的還是太復(fù)雜,甚至有缺陷。 Java的類可見性和隱式scoping規(guī)則太復(fù)雜了。 Interface機(jī)制是為了避免多繼承帶來的問題而設(shè)計(jì)的,但是要理解和使用它還是挺難。 內(nèi)部類和匿名類導(dǎo)致令人困惑的代碼。 缺乏有效的析構(gòu)機(jī)制,使得除了內(nèi)存之外的其他資源(比如互斥量和鎖)管理起來很困難。 Java的線程不可靠,其I/O機(jī)制很強(qiáng)大,但是讀取一個(gè)文本文件卻非常繁瑣。 Java沒有管理庫版本的機(jī)制,從而形式上重蹈了了Windows DLL地獄的覆轍。 在類似應(yīng)用服務(wù)器這樣的環(huán)境里,這引起了大量的問題。 總體而言,我們可以說除了系統(tǒng)編程和對效率要求極高的程序之外,Java在大部分領(lǐng)域優(yōu)于C++。 經(jīng)驗(yàn)表明,Java程序員似乎不太容易象C++程序員那樣構(gòu)造過度的OO層,不過在Java中這仍然是個(gè)嚴(yán)重問題。 Java是否優(yōu)于諸如Perl, Python這樣的語言?我們還不是很清楚,很大程度上似乎跟程序規(guī)模有關(guān)。 其擅長的領(lǐng)域基本上于Python相似,在效率上無法跟C/C++相提并論,在小規(guī)模的、大量使用模式匹配和編輯的項(xiàng)目里也無法匹敵Perl。 在小項(xiàng)目里,Java顯得過分強(qiáng)大了。 我們猜測Python更適合小項(xiàng)目,而Java適合大項(xiàng)目,不過這一點(diǎn)并沒有得到有力的證明。 Python Python是一種腳本語言,可以與C緊密整合。 它可以與動態(tài)加載的C庫模塊交換數(shù)據(jù),也可以作為內(nèi)嵌腳本語言而從C中調(diào)用。 其語法類似C和模塊化語言的雜合,不過有一個(gè)獨(dú)一無二的特征,就是以縮進(jìn)來確定語句塊。 Python語言非常干凈,設(shè)計(jì)優(yōu)雅,具有出色的模塊化特性。 它提供了面向?qū)ο竽芰Γ粡?qiáng)迫用戶進(jìn)行面向?qū)ο笤O(shè)計(jì)。 其類型系統(tǒng)提供了強(qiáng)大的表達(dá)能力,類似Perl,具有匿名lambda表達(dá)式,這點(diǎn)又讓Lisp黑客們感到親切。 Python依靠Tk提供方便的GUI界面開發(fā)能力。 在所有的解釋型語言里,Python和Java最適合多名程序員以漸進(jìn)方式協(xié)同開發(fā)大型項(xiàng)目。 在很多方面,Python比Java要簡單,它非常適合與構(gòu)造快速原型,這一點(diǎn)使得它對于Java有獨(dú)特優(yōu)勢:對于那些既不很復(fù)雜,又不要求高效率的程序,Python十分合適。 Python的速度沒法跟C/C++相比,不過在今天的高速CPU上,合理地使用混合語言編程策略使得Python的上述弱點(diǎn)被有效地彌補(bǔ)。 事實(shí)上,Python幾乎被認(rèn)為是主流腳本語言中最慢的一個(gè),因?yàn)樗峁┝藙討B(tài)多態(tài)性。 在大量使用正則表達(dá)式的小型項(xiàng)目,它遜于Perl。 對于微型項(xiàng)目而言,shell和Tcl可能更好,Python顯得太過強(qiáng)大了。 總結(jié):Python最出色的地方在于,它鼓勵(lì)清晰易讀的代碼,特別適合以漸進(jìn)開發(fā)的方式構(gòu)造大項(xiàng)目。 其缺陷在于效率不高,太慢,不但跟編譯語言相比慢,就是跟其他腳本語言相比也顯得慢。

java問題:方法中能有類存在嗎?

匿名內(nèi)部類和內(nèi)部類都可以在方法中申明并實(shí)現(xiàn),抄個(gè)簡單示例:匿名內(nèi)部類可以減少你命名一個(gè)類的煩腦(^^) 其有很多優(yōu)點(diǎn) 比如可以訪問外部類的私有方法 new YourClass{ ... } 這個(gè)例子是一個(gè)多線程的小程序,這里面就應(yīng)用到了匿名內(nèi)部類,實(shí)現(xiàn)了Runnable接口。 匿名內(nèi)部類的一般好處是:是代碼更加簡潔,緊湊,但帶來的是易讀性下降。 他一般用在GUI編程中 實(shí)現(xiàn)事件處理等等。 希望大家一起討論 public class RunnableTest{ public static void main(String[] args){ MyThread1 mt1 = new MyThread1(); MyThread2 mt2 = new MyThread2(); MyThread3 mt3 = new MyThread3(); (); (); (); } } class MyThread1 implements Runnable{ Thread th = new Thread(this); public void run(){ for (int i = 0; i < 10; i++){ (BMW + i); } } } class MyThread2{ Thread th = new Thread(){ public void run(){ for (int i = 0; i < 10; i++){ (i); } } }; } class MyThread3{ Runnable ra = new Runnable(){ public void run(){ for (char ch = 65; ch < 70; ch++){ (ch); } } }; Thread th = new Thread(ra); } 匿名內(nèi)部類可以訪問外部類的私有成員,其他的方式實(shí)現(xiàn)接口和繼承類做不到 實(shí)現(xiàn)方式: SuperType aa = new SuperType(construction parameters){methods and data} 或 InterfaceType aa = new InterfaceType(){methods and data} 具體實(shí)現(xiàn)時(shí)需要把SuperType 和InterfaceType 換成具體的超類和接口。 匿名內(nèi)部類可以訪問外部類的私有成員,其他的方式實(shí)現(xiàn)接口和繼承類做不到 內(nèi)部類應(yīng)該都可以的。 我覺得匿名的應(yīng)該是隱藏實(shí)現(xiàn),而且用完就out的那種。



相關(guān)標(biāo)簽: 深入探究匿名問題超越事件處理的廣泛應(yīng)用深入探究匿名內(nèi)部類的用途

上一篇:匿名內(nèi)部類與lambda表達(dá)式的比較異同以及何

下一篇:匿名內(nèi)部類在事件處理中的應(yīng)用創(chuàng)建響應(yīng)迅速

內(nèi)容聲明:

1、本站收錄的內(nèi)容來源于大數(shù)據(jù)收集,版權(quán)歸原網(wǎng)站所有!
2、本站收錄的內(nèi)容若侵害到您的利益,請聯(lián)系我們進(jìn)行刪除處理!
3、本站不接受違法信息,如您發(fā)現(xiàn)違法內(nèi)容,請聯(lián)系我們進(jìn)行舉報(bào)處理!
4、本文地址:http://www.hudongshop.com/article/49242bc81b4e4f8dc2ec.html,復(fù)制請保留版權(quán)鏈接!


溫馨小提示:在您的網(wǎng)站做上本站友情鏈接,訪問一次即可自動收錄并自動排在本站第一位!
隨機(jī)文章
XML 格式化與其他標(biāo)記語言的比較:探索它們的異同

XML 格式化與其他標(biāo)記語言的比較:探索它們的異同

簡介可擴(kuò)展標(biāo)記語言,XML,是一種標(biāo)記語言,用于組織和存儲數(shù)據(jù),它是一種靈活的格式,可用于各種目的,包括數(shù)據(jù)交換、存儲和顯示,與其他標(biāo)記語言相比,XML具有獨(dú)特的優(yōu)點(diǎn)和缺點(diǎn),本文將探討XML與HTML、JSON和YAML的異同,XML與HTMLHTML,超文本標(biāo)記語言,是一種標(biāo)記語言,用于創(chuàng)建和顯示W(wǎng)eb頁面,它與XML非常相似,但有...。

本站公告 2024-09-27 11:56:51

Zzip 的安全性保障:保護(hù)您的數(shù)據(jù)免受未經(jīng)授權(quán)的訪問 (zip安裝器中文版)

Zzip 的安全性保障:保護(hù)您的數(shù)據(jù)免受未經(jīng)授權(quán)的訪問 (zip安裝器中文版)

Zzip是一款功能強(qiáng)大的文件壓縮和解壓縮軟件,它不僅可以幫助您節(jié)省存儲空間,還可以保護(hù)您的文件免遭未經(jīng)授權(quán)的訪問,通過采用一系列強(qiáng)有力的安全措施,Zzip確保您的數(shù)據(jù)始終處于受保護(hù)狀態(tài),密碼加密Zzip采用AES,256加密算法對文件進(jìn)行加密,這是目前最安全的加密標(biāo)準(zhǔn)之一,這意味著未經(jīng)授權(quán)的用戶即使掌握了您的壓縮文件,也無法訪問其中的...。

最新資訊 2024-09-26 10:34:34

listbox控件揭秘:創(chuàng)建動態(tài)和可定制的列表

listbox控件揭秘:創(chuàng)建動態(tài)和可定制的列表

listbox控件是一種強(qiáng)大的工具,可用于創(chuàng)建動態(tài)且可定制的列表,它可以用來顯示各種數(shù)據(jù),從簡單的文本項(xiàng)到復(fù)雜的對象,本文將深入探討listbox控件,幫助您了解其功能并有效地使用它,創(chuàng)建Listbox控件要?jiǎng)?chuàng)建listbox控件,只需使用以下HTML代碼,<,selectmultiple>,<,optionvalue=值...。

最新資訊 2024-09-23 19:39:51

提高您的網(wǎng)站可維護(hù)性: 通過 W3C 驗(yàn)證確保代碼的易讀性和可重用性 (提高您的網(wǎng)站安全性)

提高您的網(wǎng)站可維護(hù)性: 通過 W3C 驗(yàn)證確保代碼的易讀性和可重用性 (提高您的網(wǎng)站安全性)

網(wǎng)站可維護(hù)性對于確保網(wǎng)站的長期成功至關(guān)重要,可維護(hù)性良好的網(wǎng)站易于更新、擴(kuò)展和修復(fù),從而降低了維護(hù)成本并提高了網(wǎng)站的整體效率,W3C驗(yàn)證是提高網(wǎng)站可維護(hù)性的有效方法,W3C驗(yàn)證是一種驗(yàn)證網(wǎng)站標(biāo)記和結(jié)構(gòu)是否符合W3C標(biāo)準(zhǔn)的流程,通過使代碼符合標(biāo)準(zhǔn),您可以提高代碼的可讀性和可重用性,從而使維護(hù)變得更容易,W3C驗(yàn)證的好處提高代碼的可讀性,...。

互聯(lián)網(wǎng)資訊 2024-09-14 17:14:48

釋放兄弟連之力:深入了解 PHP 中的進(jìn)程間通信 (兄弟連解散)

釋放兄弟連之力:深入了解 PHP 中的進(jìn)程間通信 (兄弟連解散)

在PHP中,進(jìn)程間通信,IPC,允許進(jìn)程之間交換數(shù)據(jù)和信息,這對于需要協(xié)調(diào)活動或共享資源的應(yīng)用程序非常有用,PHP提供了多種IPC方法,包括管道、套接字、共享內(nèi)存和信號,管道管道是一種將一個(gè)進(jìn)程的輸出連接到另一個(gè)進(jìn)程的輸入的機(jī)制,在PHP中,管道使用pipe,函數(shù)創(chuàng)建,該函數(shù)返回一個(gè)包含兩個(gè)文件描述符的數(shù)組,一個(gè)用于讀,一個(gè)用于寫,...。

互聯(lián)網(wǎng)資訊 2024-09-12 21:51:22

淘寶導(dǎo)航代碼揭秘:打開店鋪流量寶庫的大門 (淘寶基礎(chǔ)版導(dǎo)航代碼)

淘寶導(dǎo)航代碼揭秘:打開店鋪流量寶庫的大門 (淘寶基礎(chǔ)版導(dǎo)航代碼)

前言在淘寶這個(gè)龐大的電商平臺上,獲得流量是店鋪能否成功經(jīng)營的關(guān)鍵,而淘寶導(dǎo)航代碼則是賣家提高店鋪流量的一種重要工具,本文將深入解析淘寶導(dǎo)航代碼,揭開其背后的原理,幫助賣家打造高效的店鋪導(dǎo)航,吸引更多潛在顧客,什么是淘寶導(dǎo)航代碼淘寶導(dǎo)航代碼是一種HTML代碼,通過嵌入到店鋪首頁或其他指定頁面中,可以為店鋪創(chuàng)建自定義導(dǎo)航,它由一系列標(biāo)簽和...。

互聯(lián)網(wǎng)資訊 2024-09-10 21:57:41

PHP 5 的最佳實(shí)踐: 構(gòu)建安全、高效和可維護(hù)的應(yīng)用程序 (php 5)

PHP 5 的最佳實(shí)踐: 構(gòu)建安全、高效和可維護(hù)的應(yīng)用程序 (php 5)

PHP5是一種廣泛使用的編程語言,用于構(gòu)建各種網(wǎng)絡(luò)應(yīng)用程序,為了確保您的PHP5應(yīng)用程序的安全、高效和可維護(hù),遵循最佳實(shí)踐至關(guān)重要,本文將探討PHP5中一些重要的最佳實(shí)踐,以幫助您構(gòu)建健壯可靠的應(yīng)用程序,安全實(shí)踐使用參數(shù)化查詢,參數(shù)化查詢可防止SQL注入攻擊,它將用戶輸入作為參數(shù)傳遞給查詢,而不是直接將其嵌入到查詢語句中,驗(yàn)證用戶輸入...。

互聯(lián)網(wǎng)資訊 2024-09-09 17:16:49

解鎖C語言編程的奧秘:適用于所有技能水平的C程序培訓(xùn) (c語言解密程序設(shè)計(jì))

解鎖C語言編程的奧秘:適用于所有技能水平的C程序培訓(xùn) (c語言解密程序設(shè)計(jì))

C語言是一種普遍的計(jì)算機(jī)編程語言,已用于開發(fā)從操作系統(tǒng)到嵌入式系統(tǒng)的各種軟件,它以其效率、速度和低級訪問硬件的能力而聞名,對于希望撰寫高效、可靠和可移植代碼的程序員來說,C語言是一種理想的選擇,無論您的技能水平如何,都有許多資源可以幫助您學(xué)習(xí)C語言,本指南將為您提供一些適用于所有技能水平的最佳C程序培訓(xùn)資源,從初學(xué)者到高級用戶,初學(xué)者...。

最新資訊 2024-09-08 21:08:04

掌握 Unix 環(huán)境中復(fù)雜編程的精髓 (掌握unity)

掌握 Unix 環(huán)境中復(fù)雜編程的精髓 (掌握unity)

Unix操作系統(tǒng)以其強(qiáng)大的命令行界面和文本處理工具而聞名,它為復(fù)雜的編程提供了豐富的工具和技術(shù),掌握這些技術(shù)對于任何希望在Unix環(huán)境中構(gòu)建高級應(yīng)用程序或系統(tǒng)的人來說都是至關(guān)重要的,管道和重定向管道和重定向是Unix環(huán)境中的基本概念,它們允許您將命令的輸出作為另一個(gè)命令的輸入,管道使用垂直線,符號表示,而重定向使用大于號,>,...。

本站公告 2024-09-08 07:15:03

探索編程世界的在線樂園:不容錯(cuò)過的編程網(wǎng)站 (探索編程世界游戲里的第二版第三題怎么解)

探索編程世界的在線樂園:不容錯(cuò)過的編程網(wǎng)站 (探索編程世界游戲里的第二版第三題怎么解)

對于編程愛好者來說,互聯(lián)網(wǎng)上有著豐富的在線資源,可以幫助他們學(xué)習(xí)、練習(xí)和提升編程技能,這里列出一些不容錯(cuò)過的編程網(wǎng)站,為您的編程之旅提供助力,學(xué)習(xí)編程基礎(chǔ)知識CodecademyCodecademy是一個(gè)交互式的在線代碼學(xué)習(xí)平臺,提供了從初學(xué)者到高級的各種編程課程,課程內(nèi)容涵蓋了多種編程語言,包括Python、Java、JavaScr...。

本站公告 2024-09-07 09:49:30

織夢網(wǎng)教程:初學(xué)者指南,打造您的第一個(gè)專業(yè)網(wǎng)站 (織夢網(wǎng)的編織方法)

織夢網(wǎng)教程:初學(xué)者指南,打造您的第一個(gè)專業(yè)網(wǎng)站 (織夢網(wǎng)的編織方法)

引言歡迎來到織夢網(wǎng)教程!本指南將一步步指導(dǎo)您完成構(gòu)建您的第一個(gè)專業(yè)網(wǎng)站的過程,無論您是初學(xué)者還是已經(jīng)有一些網(wǎng)站設(shè)計(jì)經(jīng)驗(yàn),本指南都將為您提供寶貴的見解和資源,準(zhǔn)備工作在開始構(gòu)建網(wǎng)站之前,您需要完成一些準(zhǔn)備工作,確定您的網(wǎng)站目標(biāo),您希望您的網(wǎng)站做什么,是用來展示您的作品集,推銷您的業(yè)務(wù),還是創(chuàng)建在線社區(qū),明確您的目標(biāo)將幫助您確定網(wǎng)站的結(jié)構(gòu)...。

最新資訊 2024-09-06 15:09:34

從頭開始:全面指南,教你下載任何網(wǎng)站的源碼 (從頭開始全文閱讀)

從頭開始:全面指南,教你下載任何網(wǎng)站的源碼 (從頭開始全文閱讀)

是否想深入了解您最喜歡的網(wǎng)站是如何運(yùn)作的,通過下載其源碼,您可以了解網(wǎng)站的內(nèi)部工作原理并探索其構(gòu)建方式,本指南將逐步指導(dǎo)您完成下載任何網(wǎng)站源碼的過程,步驟1,選擇網(wǎng)站選擇您要下載源碼的網(wǎng)站,請確保該網(wǎng)站沒有限制訪問其源碼,步驟2,使用瀏覽器開發(fā)人員工具接下來,打開您選擇的網(wǎng)站并在瀏覽器中查看其源碼,您可以使用瀏覽器開發(fā)人員工具來完成此...。

本站公告 2024-09-05 23:12:43

Copyright ? 2025 聚集網(wǎng) All Rights Reserved
此內(nèi)容系本站根據(jù)來路自動抓取的結(jié)果,不代表本站贊成被顯示網(wǎng)站的內(nèi)容或立場。
本頁閱讀量次 | 本站總訪問次 | 本站總訪客人 | 今日總訪問次 | 今日總訪客人 | 昨日總訪問次 | 昨日總訪客人 |
技術(shù)支持:聚集網(wǎng)

国产中文字幕免费观看_国产高清精品软男同_日韩免费视频播放_亚洲午夜激情
午夜视频久久久| 粉嫩精品一区二区三区在线观看| 国产精品视频yy9099| 99在线观看视频网站| 成人h视频在线| 国产乱子伦精品| av一区观看| 国产精品91在线观看| 国产成人黄色片| 久久国产精品网| www.日韩不卡电影av| 国产精品日日做人人爱| 国产精品男人的天堂| 国产精品初高中精品久久| 欧美xxxx14xxxxx性爽| 亚洲制服中文| 日本不卡高清视频一区| 欧美高清一区二区| 欧美二区在线视频| 国产欧美一区二区视频| 99久久国产宗和精品1上映 | 国产激情在线看| 国产成年人在线观看| 精品国产自在精品国产浪潮| 国产精品都在这里| 亚洲午夜精品一区二区| 视频一区二区视频| 欧美亚洲伦理www| 国产在线一区二| www黄色日本| 久久久久久久午夜| 国产精品久久久久久久乖乖| 中文字幕乱码人妻综合二区三区| 少妇高潮流白浆| 蜜桃久久精品乱码一区二区| 99国内精品久久久久久久软件| 久久精品视频16| 免费不卡在线观看av| 日韩中字在线观看| 国产又粗又爽又黄的视频| 91久久国产精品| 国产精品沙发午睡系列| 亚洲电影一二三区| 激情内射人妻1区2区3区 | 国产人妻人伦精品| 91精品国产高清自在线| 久久国产欧美精品| 精品国产乱码久久久久久郑州公司| 亚洲一区精彩视频| 人体精品一二三区| 波多野结衣精品久久| 日韩视频永久免费观看| 欧美成人在线影院| 欧美一级视频在线播放| 国内精品在线一区| 国产精品99久久免费黑人人妻| 国产精品久久久久久久久借妻| 一区二区三视频| 国产精品美腿一区在线看| 天堂资源在线亚洲资源| 国产日韩久久| 日韩视频亚洲视频| 亚洲va国产va天堂va久久| 国产一区视频在线播放| 日韩中文在线不卡| 日韩资源av在线| 古典武侠综合av第一页| 国产精品久久久久久久免费大片| 色香蕉在线观看| 97久久国产亚洲精品超碰热| 久久中文久久字幕| 欧美精品欧美精品| 久久男人资源视频| 一区二区冒白浆视频| 国产日韩专区在线| 国产精品免费一区二区三区四区| 日本欧美色综合网站免费| 91久久久久久久久久久久久| 久久国产精品偷| 国内免费精品永久在线视频 | 91精品国产高清| 在线精品日韩| 国产日产精品一区二区三区四区 | 国产精品对白刺激久久久| 手机看片日韩国产| av电影一区二区三区| 亚洲自拍欧美另类| 91精品视频播放| 亚洲 日韩 国产第一区| 91免费视频国产| 亚洲欧美国产不卡| 91免费精品国偷自产在线| 尤物一区二区三区| 成人a在线视频| 亚洲国产日韩美| 国产极品在线视频| 日日骚一区二区网站| 国产高清自拍99| 日本免费一区二区三区视频观看| 91精品国产自产在线老师啪 | www黄色在线| 中文字幕久久一区| 成人毛片100部免费看| 亚洲影院色在线观看免费| 99亚洲国产精品| 色中色综合成人| 国产xxxxx在线观看| 欧美在线亚洲在线| 久久精品免费播放| 国产专区精品视频| 九九精品在线视频| 高清欧美性猛交| 午夜精品美女久久久久av福利 | 91精品国产99| 日本一区视频在线观看免费| 久草热视频在线观看| 欧美xxxx黑人又粗又长密月| 国产精品福利片| 99久re热视频这里只有精品6| 日本中文字幕亚洲| 国产精品美女xx| 成人在线观看a| 日韩中文字幕组| 国产精品女视频| 国产精品小说在线| 日本国产精品视频| 免费97视频在线精品国自产拍| 99精品视频播放| 欧美一级爱爱| 久久久久久国产精品久久| 久久er99热精品一区二区三区| 国语精品免费视频| 亚洲在线观看一区| 日韩中文字幕国产| 成人精品久久久| 欧美专区日韩视频| 欧美日本中文字幕| 久久久久久噜噜噜久久久精品| 国模视频一区二区| 亚洲a级在线播放观看| 久久精品国产精品| 成人精品视频99在线观看免费| 日韩免费av一区二区| 久久久久久av| 国产精品入口尤物| 久久天天狠狠| 国产乱人伦真实精品视频| 欧日韩一区二区三区| 亚洲一区二区三区精品动漫| 精品国产美女在线| 99精品在线直播| 国产又黄又猛视频| 日韩免费中文字幕| 一区二区三区四区视频在线观看| 久久精品国产久精国产一老狼| 国产欧美日韩综合精品| 欧洲一区二区在线| 午夜精品久久久久久久99热| 久久亚洲成人精品| 菠萝蜜影院一区二区免费| 91精品国产91久久久久久久久| 免费久久99精品国产自| 日韩欧美视频一区二区三区四区| 一区二区三区观看| 麻豆国产精品va在线观看不卡| 日韩视频在线一区| 久久久免费电影| 丰满人妻中伦妇伦精品app| 蜜桃av噜噜一区二区三区| 欧美在线一级va免费观看| 亚洲一区二区三区四区中文| 国产精品加勒比| 国产精品普通话| 色吧影院999| 久久国产精品视频在线观看| 91免费福利视频| 99久久99| 99视频免费观看蜜桃视频| 国产日韩欧美黄色| 精品婷婷色一区二区三区蜜桃| 欧美在线日韩在线| 欧美一区免费视频| 欧美尤物一区| 欧洲成人一区二区| 欧美在线激情网| 人妻无码视频一区二区三区| 热re99久久精品国产99热| 日本va中文字幕| 欧美综合在线观看视频| 欧美中文娱乐网| 欧洲午夜精品久久久| 欧美一级大片在线观看| 欧美v在线观看| 国产一级做a爰片久久毛片男| 国产一区二区三区播放| 国产乱码精品一区二区三区不卡 | 国产一区二区三区av在线| 国产原创中文在线观看| 国产日韩精品综合网站| 国产精品午夜av在线|