文章編號:11616時間:2024-10-01人氣:
匿名內(nèi)部類因其在事件處理中的便捷性而廣為人知,但它的用途遠遠不止于此。在本文中,我們將深入探究匿名內(nèi)部類的廣泛應用,超越事件處理的范疇,揭示其在其他領(lǐng)域中的強大功能。
匿名內(nèi)部類是一種特殊的內(nèi)部類,沒有明確的名稱,而是直接使用它的父類或接口作為名稱。它通常用于創(chuàng)建實現(xiàn)抽象方法或重寫父類方法的匿名類實例。其語法如下:
class OuterClass {// 匿名內(nèi)部類Runnable runnable = new Runnable() {@Overridepublic void run() {// 代碼塊}
};
}
匿名內(nèi)部類可以簡化多線程編程,通過實現(xiàn)
Runnable
接口或擴展
Thread
類來創(chuàng)建新線程。這比使用傳統(tǒng)的
Thread
子類更簡潔方便。
// 創(chuàng)建新線程
new Thread(new Runnable() {@Overridepublic void run() {// 線程執(zhí)行的代碼}
}).start();
匿名內(nèi)部類在回調(diào)機制中扮演著至關(guān)重要的角色。它允許將代碼塊作為參數(shù)傳遞給其他方法,并在滿足特定條件時執(zhí)行。這在異步編程和 UI 事件處理中非常有用。
// 回調(diào)示例
interface Callback {void onResult(int result);
}// 使用匿名內(nèi)部類的回調(diào)
MethodWithCallback(new Callback() {@Overridepublic void onResult(int result) {// 處理結(jié)果}
});
事件處理是匿名內(nèi)部類的傳統(tǒng)應用,它允許直接在事件發(fā)生時執(zhí)行代碼,而無需創(chuàng)建單獨的監(jiān)聽器類。匿名監(jiān)聽器簡化了事件處理,提高了代碼的可讀性。
// 匿名按鈕監(jiān)聽器
JButton button = new JButton("點我");
button.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// 按鈕點擊事件}
});
匿名內(nèi)部類在適配器和裝飾器模式中發(fā)揮著關(guān)鍵作用。它允許包裝或擴展現(xiàn)有類,而無需創(chuàng)建繼承自原始類的子類。這提供了更高的靈活性,允許動態(tài)修改類行為。
// 適配器示例
class MyAdapter implements TargetInterface {@Overridepublic void method() {// 匿名內(nèi)部類實現(xiàn)}
}
匿名內(nèi)部類可以動態(tài)創(chuàng)建并添加到集合中,提供了更靈活和強大的數(shù)據(jù)結(jié)構(gòu)。這在數(shù)據(jù)處理和算法中非常有用,允許根據(jù)需要創(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)部類遠遠超出了事件處理的范疇,在多個領(lǐng)域都有著廣泛的應用。通過線程創(chuàng)建、回調(diào)處理、匿名監(jiān)聽器、適配器和裝飾器模式以及匿名類集合,匿名內(nèi)部類提供了一種簡潔、靈活和高效的方式來增強 Java 應用程序的功能。掌握匿名內(nèi)部類的廣泛用途可以極大地擴展開發(fā)人員的工具箱,并創(chuàng)建更強大、更可維護的代碼。
分類:電腦/網(wǎng)絡(luò) >> 程序設(shè)計 >> 其他編程語言 問題描述: 內(nèi)部類的使用有什么優(yōu)點,什么情況下應考慮使用它呢? 匿名類使用有什么優(yōu)點,什么情況下應考慮使用它呢? 解析: 提起Java內(nèi)部類(Inner Class)可能很多人不太熟悉,實際上類似的概念在C++里也有,那就是嵌套類(Nested Class),關(guān)于這兩者的區(qū)別與聯(lián)系,在下文中會有對比。 內(nèi)部類從表面上看,就是在類中又定義了一個類(下文會看到,內(nèi)部類可以在很多地方定義),而實際上并沒有那么簡單,乍看上去內(nèi)部類似乎有些多余,它的用處對于初學者來說可能并不是那么顯著,但是隨著對它的深入了解,你會發(fā)現(xiàn)Java的設(shè)計者在內(nèi)部類身上的確是用心良苦。 學會使用內(nèi)部類,是掌握Java高級編程的一部分,它可以讓你更優(yōu)雅地設(shè)計你的程序結(jié)構(gòu)。 下面從以下幾個方面來介紹: 第一次見面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); } } 在這個例子里類Content和GDestination被定義在了類Goods內(nèi)部,并且分別有著protected和private修飾符來控制訪問級別。 Content代表著Goods的內(nèi)容,而GDestination代表著Goods的目的地。 它們分別實現(xiàn)了兩個接口Content和Destination。 在后面的main方法里,直接用 Contents c和Destination d進行操作,你甚至連這兩個內(nèi)部類的名字都沒有看見!這樣,內(nèi)部類的第一個好處就體現(xiàn)出來了——隱藏你不想讓別人知道的操作,也即封裝性。 同時,我們也發(fā)現(xiàn)了在外部類作用范圍之外得到內(nèi)部類對象的第一個方法,那就是利用其外部類的方法創(chuàng)建并返回。 上例中的cont()和dest()方法就是這么做的。 那么還有沒有別的方法呢?當然有,其語法格式如下: outerObject=new outerClass(Constructor Parameters); innerObject= InnerClass(Constructor Parameters); 注意在創(chuàng)建非靜態(tài)內(nèi)部類對象時,一定要先創(chuàng)建起相應的外部類對象。 至于原因,也就引出了我們下一個話題—— 非靜態(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(); } } 修改的部分用藍色顯示了。 在這里我們給Goods類增加了一個private成員變量valueRate,意義是貨物的價值系數(shù),在內(nèi)部類Content的方法value()計算價值時把它乘上。 我們發(fā)現(xiàn),value()可以訪問valueRate,這也是內(nèi)部類的第二個好處——一個內(nèi)部類對象可以訪問創(chuàng)建它的外部類對象的內(nèi)容,甚至包括私有變量!這是一個非常有用的特性,為我們在設(shè)計時提供了更多的思路和捷徑。 要想實現(xiàn)這個功能,內(nèi)部類對象就必須有指向外部類對象的引用。 Java編譯器在創(chuàng)建內(nèi)部類對象時,隱式的把其外部類對象的引用也傳了進去并一直保存著。 這樣就使得內(nèi)部類對象始終可以訪問其外部類對象,同時這也是為什么在外部類作用范圍之外向要創(chuàng)建內(nèi)部類對象必須先創(chuàng)建其外部類對象的原因。 有人會問,如果內(nèi)部類里的一個成員變量與外部類的一個成員變量同名,也即外部類的同名成員變量被屏蔽了,怎么辦?沒事,Java里用如下格式表達外部類的引用: 有了它,我們就不怕這種屏蔽的情況了。 靜態(tài)內(nèi)部類 和普通的類一樣,內(nèi)部類也可以有靜態(tài)的。 不過和非靜態(tài)內(nèi)部類相比,區(qū)別就在于靜態(tài)內(nèi)部類沒有了指向外部的引用。 這實際上和C++中的嵌套類很相像了,Java內(nèi)部類與C++嵌套類最大的不同就在于是否有指向外部的引用這一點上,當然從設(shè)計的角度以及以它一些細節(jié)來講還有區(qū)別。 除此之外,在任何非靜態(tài)內(nèi)部類中,都不能有靜態(tài)數(shù)據(jù),靜態(tài)方法或者又一個靜態(tài)內(nèi)部類(內(nèi)部類的嵌套可以不止一層)。 不過靜態(tài)內(nèi)部類中卻可以擁有這一切。 這也算是兩者的第二個區(qū)別吧。 局部內(nèi)部類 是的,Java內(nèi)部類也可以是局部的,它可以定義在一個方法甚至一個代碼塊之內(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); } } 上面就是這樣一個例子。 在方法dest中我們定義了一個內(nèi)部類,最后由這個方法返回這個內(nèi)部類的對象。 如果我們在用一個內(nèi)部類的時候僅需要創(chuàng)建它的一個對象并創(chuàng)給外部,就可以這樣做。 當然,定義在方法中的內(nèi)部類可以使設(shè)計多樣化,用途絕不僅僅在這一點。 下面有一個更怪的例子: 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)建這個內(nèi)部類的對象,因為這已經(jīng)超出了它的作用域。 不過在編譯的時候,內(nèi)部類TrackingSlip和其他類一樣同時被編譯,只不過它由它自己的作用域,超出了這個范圍就無效,除此之外它和其他內(nèi)部類并沒有區(qū)別。 匿名內(nèi)部類 java的匿名內(nèi)部類的語法規(guī)則看上去有些古怪,不過如同匿名數(shù)組一樣,當你只需要創(chuàng)建一個類的對象而且用不上它的名字時,使用內(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)部類直接返回了一個實現(xiàn)了接口Contents的類的對象,看上去的確十分簡潔。 在java的事件處理的匿名適配器中,匿名內(nèi)部類被大量的使用。 例如在想關(guān)閉窗口時加上這樣一句代碼: (new WindowAdapter(){ public void windowClosing(WindowEvent e){ (0); } }); 有一點需要注意的是,匿名內(nèi)部類由于沒有名字,所以它沒有構(gòu)造函數(shù)(但是如果這個匿名內(nèi)部類繼承了一個只含有帶參數(shù)構(gòu)造函數(shù)的父類,創(chuàng)建它的時候必須帶上這些參數(shù),并在實現(xiàn)的過程中使用super關(guān)鍵字調(diào)用相應的內(nèi)容)。 如果你想要初始化它的成員變量,有下面幾種方法: 如果是在一個方法的匿名內(nèi)部類,可以利用這個方法傳進你想要的參數(shù),不過記住,這些參數(shù)必須被聲明為final。 將匿名內(nèi)部類改造成有名字的局部內(nèi)部類,這樣它就可以擁有構(gòu)造函數(shù)了。 在這個匿名內(nèi)部類中使用初始化代碼塊。 為什么需要內(nèi)部類? java內(nèi)部類有什么好處?為什么需要內(nèi)部類? 首先舉一個簡單的例子,如果你想實現(xiàn)一個接口,但是這個接口中的一個方法和你構(gòu)想的這個類中的一個方法的名稱,參數(shù)相同,你應該怎么辦?這時候,你可以建一個內(nèi)部類實現(xiàn)這個接口。 由于內(nèi)部類對外部類的所有內(nèi)容都是可訪問的,所以這樣做可以完成所有你直接實現(xiàn)這個接口的功能。 不過你可能要質(zhì)疑,更改一下方法的不就行了嗎? 的確,以此作為設(shè)計內(nèi)部類的理由,實在沒有說服力。 真正的原因是這樣的,java中的內(nèi)部類和接口加在一起,可以的解決常被C++程序員抱怨java中存在的一個問題——沒有多繼承。 實際上,C++的多繼承設(shè)計起來很復雜,而java通過內(nèi)部類加上接口,可以很好的實現(xiàn)多繼承的效果。 本文的目的只是向大家介紹一下內(nèi)部類的概念以及使用方法,在后續(xù)文章里,將會針對本文中的內(nèi)容舉更多具體的例子,以及介紹如何使用內(nèi)部類構(gòu)建一個Applicaton Framework。
new 在創(chuàng)建對象時使用 例如String s=new String(abc);java中的this隨處可見,用法也多,現(xiàn)在整理有幾點:1. this是指當前對象自己。 當在一個類中要明確指出使用對象自己的的變量或函數(shù)時就應該加上this引用。 如下面這個例子中: 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!); } }運行結(jié)果: s = HelloWorld! 1 -> this.s = Hello 2 -> this.s = HelloWorld!在這個例子中,構(gòu)造函數(shù)Hello中,參數(shù)s與類Hello的變量s同名,這時如果直接對s進行操作則是對參數(shù)s進行操作。 若要對類Hello的成員變量s進行操作就應該用this進行引用。 運行結(jié)果的第一行就是直接對構(gòu)造函數(shù)中傳遞過來的參數(shù)s進行打印結(jié)果; 第二行是對成員變量s的打印;第三行是先對成員變量s賦傳過來的參數(shù)s值后再打印,所以結(jié)果是HelloWorld!2. 把this作為參數(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!); } } 運行結(jié)果: Hello from A! Hello from B! 在這個例子中,對象A的構(gòu)造函數(shù)中,用new B(this)把對象A自己作為參數(shù)傳遞給了對象B的構(gòu)造函數(shù)。 3. 注意匿名類和內(nèi)部類中的中的this。 有時候,我們會用到一些內(nèi)部類和匿名類,如事件處理。 當在匿名類中用this時,這個this則指的是匿名類或內(nèi)部類本身。 這時如果我們要使用外部類的方法和變量的話,則應該加上外部類的類名。 如下面這個例子: 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(); }} 在上面這個例子中, thread 是一個匿名類對象,在它的定義中,它的 run 函數(shù)里用到了外部類的 run 函數(shù)。 這時由于函數(shù)同名,直接調(diào)用就不行了。 這時有兩種辦法,一種就是把外部的 run 函數(shù)換一個名字,但這種辦法對于一個開發(fā)到中途的應用來說是不可取的。 那么就可以用這個例子中的辦法用外部類的類名加上 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òu)造函數(shù)的語句必須在最起始的位置 this(petals); //this(ss);會產(chǎn)生錯誤,因為在一個構(gòu)造函數(shù)中只能調(diào)用一個構(gòu)造函數(shù) } } 值得注意的是:1:在構(gòu)造調(diào)用另一個構(gòu)造函數(shù),調(diào)用動作必須置于最起始的位置。 2:不能在構(gòu)造函數(shù)以外的任何函數(shù)內(nèi)調(diào)用構(gòu)造函數(shù)。 3:在一個構(gòu)造函數(shù)內(nèi)只能調(diào)用一個構(gòu)造函數(shù)。
我們在基本配置中已經(jīng)認識了主機箱、顯示器、鍵盤、鼠標、音箱和話筒。 這些我們能夠看得見、摸得著的設(shè)備就是我們常常說起的硬件,它就好比我們?nèi)祟惖拇竽X和身體,是物質(zhì)的,是進行一切活動的基礎(chǔ)。 鍵盤、鼠標和話筒都是給計算機送信號的,于是我們叫它們輸入設(shè)備,而顯示器、音箱是為計算機向外界傳達信息的,于是我們叫它們輸出設(shè)備。 這就好像我們的眼睛、耳朵和鼻子是給我們以視覺、聽覺、嗅覺信息的,而我們的嘴、面部表情和四肢是表達我們的看法和感情的。 是否還有其他的輸入和輸出設(shè)備呢?不但有,而且還非常多。 事實上,正是各種功能各異的外圍設(shè)備使我們的計算機變得更加豐富多彩。 主要的輸入設(shè)備還有掃描儀、數(shù)碼相機甚至影碟機,輸出設(shè)備有各種打印機。 中央處理單元(CPU)CPU這三個字母是英文Central Processing Unit的縮寫,中文意思是中央處理器。 CPU讀起來省事又好記,所以,很少有人說它的中文全名了。 中央處理器,顧名思義,就是把數(shù)據(jù)收集到一起集中進行處理的器件。 CPU是一個電子元件,直接處理計算機的大部分數(shù)據(jù),它處理數(shù)據(jù)速度的快慢直接影響著整臺電腦性能的發(fā)揮,所以人們把CPU形象地比喻為電腦的心臟。 CPU的速度是用什么來表的呢?我們常常聽人這樣說:這個CPU的主頻是166兆赫茲。 CPU有主頻、倍頻、外頻三個重要參數(shù),它們的關(guān)系是:主頻=外頻×倍頻,主頻是CPU內(nèi)部的工作頻率,外頻是系統(tǒng)總線的工作頻率,倍頻是它們相差的倍數(shù)。 CPU的運行速度通常用主頻表示,以赫茲(Hz)作為計量單位。 兆是10的6次方,兆赫茲寫作MHz。 CPU的工作頻率越高,速度就越快,性能就越好,價格也就越高。 目前的CPU最高工作頻率已達到1500MHz以上。 計算機之所以能夠在二十幾年中在全世界迅速普及,主要原因是它功能的強大、操作的簡便化和價格的直線下降。 而計算機功能的每一次翻天覆地的變化都是由于CPU功能的大幅度改進。 我們常說的286、386、486到今天的586、Pentium Ⅱ都是CPU的型號。 CPU的主要生產(chǎn)廠商Intel公司用80X86系列作為自己生產(chǎn)的CPU名稱,例如,486就是的簡稱。 90年代以后,由于其他CPU廠家的CPU型號也是用486、586來表示的,這就使很多人誤以為凡是標明為486、586的CPU都是Intel公司的產(chǎn)品。 為了與其他廠家區(qū)別開來,Intel 公司將自己的586改名為Pentium,中文譯為奔騰。 近年來,Intel公司又相繼推出了Pentium MMX和Pentium Ⅱ。 CPU每一次技術(shù)的革新,都帶來相應的名稱變化和計算機速度的大幅度提高。 目前,著名的CPU生產(chǎn)廠家除了Intel公司外,還有AMD公司、Cyrix公司等,他們的CPU性能也不錯,同等檔次的產(chǎn)品價格較Intel公司的低一些。 內(nèi)存與硬盤您可能經(jīng)常聽別人說,某臺電腦的內(nèi)存不夠了,硬盤太小了之類的話。 這里的不夠、太小都指的是它們的容量,而不是他們的數(shù)量或幾何形狀的大小。 內(nèi)存和硬盤都是計算機用來存儲數(shù)據(jù)的,它們的單位就是我們剛剛談過的Bytes。 那么,為什么一個叫內(nèi)存,一個叫硬盤呢?我們知道,計算機處理的數(shù)據(jù)量是極為龐大的,就好比一個人在堆滿了谷物的倉庫里打谷子,那怎么施展得開,工作效率又怎會高呢?于是,人們把谷子堆在倉庫中,自己拿了一部分谷子到場院中去打,打完了再送回去。 這下子,可沒什么礙事的東西了,打谷子的速度快多了,內(nèi)效率提高了。 計算機也是這樣解決了同類的問題。 它把大量有待處理和暫時不用的數(shù)據(jù)都存放在硬盤中,只是把需要立即處理的數(shù)據(jù)調(diào)到內(nèi)存中,處理完畢立即送回硬盤,再調(diào)出下一部分數(shù)據(jù)。 硬盤就是計算機的大倉庫,內(nèi)存就是它干活的場院。 內(nèi)存簡稱RAM,是英文Random Accessmemory的縮寫。 在個人計算機中,內(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為單位已屬常見。 當然了,內(nèi)存和硬盤容量都是越大越好。 可是容量越大,價錢就越高。 重要的是,我們要選購夠用而又不造成浪費的內(nèi)存條和硬盤。 如圖-5所示為一塊硬盤。 驅(qū)動器要想了解軟盤和光盤中的信息,就必須把他們分別插入到軟盤驅(qū)動器和光盤驅(qū)動器中,供計算機對上面的數(shù)據(jù)信息進行識別和處理。 軟盤驅(qū)動器和光盤驅(qū)動器都位于機箱中,只把它們的嘴巴露在外面,隨時準備吃進軟盤和光盤。 至于硬盤,由于它是不可移動的,所以被固定于驅(qū)動器之中,也就是說,硬盤和硬盤驅(qū)動器是一體的。 將軟盤插入軟盤驅(qū)動器時要注意方向,3.5吋盤在插入時應該使轉(zhuǎn)軸面向下,金屬片朝前,聽到驅(qū)動器口下方的彈出按鈕喀噠一聲彈出,說明軟盤插好了。 取出時,應該先按一下彈出按鈕,軟盤會自動彈出一部分,接著將軟盤抽出。 現(xiàn)在,使用5.25吋盤的人越來越少,計算機上已很少安裝5.25吋軟盤驅(qū)動器。 值得注意的是,軟盤驅(qū)動器的上方或下方有一個小小的指示燈,當指示燈亮時,說明計算機正在讀或?qū)戇@個驅(qū)動器內(nèi)的軟盤,硬盤驅(qū)動器的指示燈也位于主機箱前面板上,指示燈亮時,表明計算機正在讀或?qū)懹脖P。 驅(qū)動器指示燈亮時,不能取出相應驅(qū)動器內(nèi)的軟盤或關(guān)機,否則可能會對磁盤造成損壞。 一臺計算機可能有不止一個軟、硬盤驅(qū)動器,怎樣區(qū)別它們呢?我們采取給驅(qū)動器取名字的辦法。 驅(qū)動器的名字都是用單個的英文字母表示的,用A和B來表示軟盤驅(qū)動器,用C、D、E來表示硬盤驅(qū)動器,光盤驅(qū)動器一般用字母H來表示。 這樣,就有了我們常說的A驅(qū)、B驅(qū)、C驅(qū)、D驅(qū),每臺計算機一般只有一個光盤驅(qū)動器,所以經(jīng)常簡稱之為光驅(qū)。 計算機之所以能夠具有如此強大的數(shù)據(jù)處理能力,是因為主機箱內(nèi)的重要部件忠實的各司其職。 想認識一下這些功臣嗎?用螺絲刀擰下機箱殼上的螺絲,輕輕的取下機箱殼,就可以看見計算機的廬山真面目了。 如下圖所示,機箱中有一塊電源、一個硬盤驅(qū)動器、一個光盤驅(qū)動器、一個軟盤驅(qū)動器、一塊插滿了電子元件的電路板--主板及帶狀的導 線,叫做數(shù)據(jù)線。 下面我們一一介紹它們的作用。 計算機電源 如圖-9所示為計算機電源。 計算機內(nèi)部所需電壓不超過12V,而市電電壓是220V。 計算機電源相當于一個變壓器,把220V電壓轉(zhuǎn)化為計算機內(nèi)硬件設(shè)備所需的電壓,并向各部件供電。 電源上有一束各種顏色帶接口的導線,它們用來與主板、軟驅(qū)、光驅(qū)、硬盤、CPU風扇等部件的電源接口相連,給它們供電。 電源插座 計算機需要電才能運作。 計算機機箱里有一個電源,電源上有很多導線及接口。 計算機電源是給主機箱中的各個硬件設(shè)備供電的。 導線及接口要分別接到主板、硬盤、光驅(qū)、軟驅(qū)的電源插座上。 系統(tǒng)主存插槽與內(nèi)存條 上文說過,內(nèi)存是計算機干活的場院,是它處理數(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)存插槽類型和個數(shù)酌情增插SIMM或DIMM擴充計算機內(nèi)存。 擴展槽與擴展總線 擴展槽為個人電腦提供了功能擴展的接口。 它可以連接聲卡、顯卡等設(shè)備,并把它們的信號傳給主板電路,同時,將主板的信號傳遞給外部設(shè)備。 擴展槽成了主板與外界交流的橋梁, 使個人電腦的用途得以擴展。 擴展槽的接口有ISA、PCI、AGP三種。 ISA接口用處不大,但仍不可缺少;PCI接口用途較廣;AGP是新興的3D圖形加速端口。 PCI擴展槽為白色,AGP和ISA擴展槽一般為黑色。 如圖1-12所示為PCI擴展槽。 圖1-11 PCI擴展槽 總線是主板與插到它上面的板卡的數(shù)據(jù)流通通道。 有了總線,各板卡才能與主板建立聯(lián)系,供計算機使用。 擴展槽口中的金屬線就是擴展總線,板卡插到擴展槽中時,其管腳的金屬線與槽口的擴展總線相接觸,就達到了信號互遞的作用。 擴展槽有ISA、PCI、AGP三種類型,相應的擴展總線也分為ISA、PCI和AGP三種類型。 RAM、ROM是什么?它們的特點是什么?區(qū)別是什么?簡單地說,在計算機中,RAM 、ROM都是數(shù)據(jù)存儲器。 RAM 是隨機存取存儲器,它的特點是易揮發(fā)性,即掉電失憶。 ROM 通常指固化存儲器(一次寫入,反復讀取),它的特點與RAM 相反。 ROM又分一次性固化、光擦除和電擦除重寫兩種類型。 RAM(Random Access Memory)的全名為隨機存取記憶體,它相當于PC機上的移動存儲,用來存儲和保存數(shù)據(jù)的。 它在任何時候都可以讀寫,RAM通常是作為操作系統(tǒng)或其他正在運行程序的臨時存儲介質(zhì)(可稱作系統(tǒng)內(nèi)存)。 不過,當電源關(guān)閉時RAM不能保留數(shù)據(jù),如果需要保存數(shù)據(jù),就必須把它們寫入到一個長期的存儲器中(例如硬盤)。 正因為如此,有時也將RAM稱作“可變存儲器”。 RAM內(nèi)存可以進一步分為靜態(tài)RAM(SRAM)和動態(tài)內(nèi)存(DRAM)兩大類。 DRAM由于具有較低的單位容量價格,所以被大量的采用作為系統(tǒng)的主記憶。 RAM和ROM相比,兩者的最大區(qū)別是RAM在斷電以后保存在上面的數(shù)據(jù)會自動消失,而ROM就不會。 4~8M的RAM對于一般應用程序的運行已經(jīng)足夠,如果追求多媒體功能,64M的RAM容量也只能夠算是基本要求。 ROM(Read Only Memory)的全名為唯讀記憶體,它相當于PC機上的硬盤,用來存儲和保存數(shù)據(jù)。 ROM數(shù)據(jù)不能隨意更新,但是在任何時候都可以讀取。 即使是斷電,ROM也能夠保留數(shù)據(jù)。 但是資料一但寫入后只能用特殊方法或根本無法更改,因此ROM常在嵌入式系統(tǒng)中擔任存放作業(yè)系統(tǒng)的用途。 現(xiàn)在市面上主流的PDA的ROM大小是64MB以及128MB。 RAM和ROM相比,兩者的最大區(qū)別是RAM在斷電以后保存在上面的數(shù)據(jù)會自動消失,而ROM就不會。 電子計算機系統(tǒng)包括什么?計算機系統(tǒng)是能按照人的要求接受和存儲信息,自動進行數(shù)據(jù)處理和計算,并輸出結(jié)果信息的機器系統(tǒng)。 計算機系統(tǒng)由兩大部分組成:硬件(子)系統(tǒng)和軟件(子)系統(tǒng),其中硬件子系統(tǒng)是系統(tǒng)賴以工作的實體,它是有關(guān)的各種物理部件的有機的結(jié)合。 軟件子系統(tǒng)由各種程序以及程序所處理的數(shù)據(jù)組成,這些程序的主要作用是協(xié)調(diào)各個硬件部件,使整個計算機系統(tǒng)能夠按照指定的要求進行工作。 硬件子系統(tǒng)包括中央處理器、主存存儲器、輸人輸出控制系統(tǒng)和各種外圍設(shè)備。 軟件子系統(tǒng)包括 系統(tǒng)軟件 、支援軟件 、應用軟件 三個部分。 計算機軟件(Computer Software,也稱軟件,軟體)是指計算機系統(tǒng)中的程序及其文檔。 程序是計算任務(wù)的處理對象和處理規(guī)則的描述;文檔是為了便于了解程序所需的闡明性資料。 程序必須裝入機器內(nèi)部才能工作,文檔一般是給人看的,不一定裝入機器。 軟件是用戶與硬件之間的接口界面。 用戶主要是通過軟件與計算機進行交流。 軟件是計算機系統(tǒng)設(shè)計的重要依據(jù)。 為了方便用戶,為了使計算機系統(tǒng)具有較高的總體效用,在設(shè)計計算機系統(tǒng)時,必須通盤考慮軟件與硬件的結(jié)合,以及用戶的要求和軟件的要求。 軟件(中國大陸及香港用語,臺灣作軟體)是一系列按照特定順序組織的計算機數(shù)據(jù)和指令的集合。 一般來講軟件被劃分為系統(tǒng)軟件、應用軟件和介于這兩者之間的中間件。 其中系統(tǒng)軟件為計算機使用提供最基本的功能,但是并不針對某一特定應用領(lǐng)域。 而應用軟件則恰好相反,不同的應用軟件根據(jù)用戶和所服務(wù)的領(lǐng)域提供不同的功能。 軟件并不只是包括可以在計算機上運行的程序,與這些程序相關(guān)的文件一般也被認為是軟件的一部分。 簡單的說軟件就是程序加文檔的集合體。 軟件被應用于世界的各個領(lǐng)域,對人們的生活和工作都產(chǎn)生了深遠的影響。 軟件的正確含義應該是: (1)運行時,能夠提供所要求功能和性能的指令或計算機程序集合。 (2)程序能夠滿意地處理信息的數(shù)據(jù)結(jié)構(gòu)。 (3)描述程序功能需求以及程序如何操作和使用所要求的文檔。 軟件具有與硬件不同的特點: (1)表現(xiàn)形式不同 硬件有形,有色,有味,看得見,摸得著,聞得到。 而軟件無形,無色,無味,看不見,摸不著,聞不到。 軟件大多存在人們的腦袋里或紙面上,它的正確與否,是好是壞,一直要到程序在機器上運行才能知道。 這就給設(shè)計、生產(chǎn)和管理帶來許多困難。 (2)生產(chǎn)方式不同 軟件是開發(fā),是人的智力的高度發(fā)揮,不是傳統(tǒng)意義上的硬件制造。 盡管軟件開發(fā)與硬件制造之間有許多共同點,但這兩種活動是根本不同的。 (3)要求不同 硬件產(chǎn)品允許有誤差,而軟件產(chǎn)品卻不允許有誤差。 (4)維護不同 硬件是要用舊用壞的,在理論上,軟件是不會用舊用壞的,但在實際上,軟件也會變舊變壞。 因為在軟件的整個生存期中,一直處于改變(維護)狀態(tài)。 系統(tǒng)軟件 系統(tǒng)軟件是負責管理計算機系統(tǒng)中各種獨立的硬件,使得它們可以協(xié)調(diào)工作。 系統(tǒng)軟件使得計算機使用者和其他軟件將計算機當作一個整體而不需要顧及到底層每個硬件是如何工作的。 一般來講,系統(tǒng)軟件包括操作系統(tǒng)和一系列基本的工具(比如編譯器,數(shù)據(jù)庫管理,存儲器格式化,文件系統(tǒng)管理,用戶身份驗證,驅(qū)動管理,網(wǎng)絡(luò)連接等方面的工具)。 應用軟件 應用軟件是為了某種特定的用途而被開發(fā)的軟件。 它可以是一個特定的程序,比如一個圖像瀏覽器。 也可以是一組功能聯(lián)系緊密,可以互相協(xié)作的程序的集合,比如微軟的Office軟件。 也可以是一個由眾多獨立程序組成的龐大的軟件系統(tǒng),比如數(shù)據(jù)庫管理系統(tǒng) 較常見的有: 文字處理軟件 如WPS、Word等 信息管理軟件 輔助設(shè)計軟件 如AutoCAD 實時控制軟件 教育與娛樂軟件 按操作系統(tǒng)分類 BeOS DOS Linux Mac OS Unix Windows軟件開發(fā) 軟件開發(fā)是根據(jù)用戶要求建造出軟件系統(tǒng)或者系統(tǒng)中的軟件部分的過程。 軟件開發(fā)是一項包括需求捕捉,需求分析,設(shè)計,實現(xiàn)和測試的系統(tǒng)工程。 軟件一般是用某種程序設(shè)計語言來實現(xiàn)的。 通常采用軟件開發(fā)工具可以進行開發(fā)軟件許可 不同的軟件一般都有對應的軟件許可,軟件的使用者必須在同意所使用軟件的許可證的情況下采能夠合法的使用軟件。 從另一方面來講,某種特定軟件的許可條款也不能夠與法律相抵觸。 未經(jīng)軟件版權(quán)所有者許可的軟件拷貝將會引發(fā)法律問題,一般來講,購買和使用這些盜版軟件也是違法的。 二進制與十進制如何轉(zhuǎn)換1、常用進位計數(shù)制(1)十進制數(shù)碼:0、1、…… 8、9基數(shù):10位權(quán): 10i (i=……-2,-1,0,1,2,……)逢10進1(2)二進制數(shù)碼:0、1基數(shù):2位權(quán): 2i (i=……-2,-1,0,1,2,……)計算機語言包括哪些?各自特點是什么?雖說C語言在內(nèi)存管理方面存在嚴重的缺陷,不過它還是在某些應用領(lǐng)域里稱王稱霸。 對于那些要求最高的效率,良好的實時性,或者與操作系統(tǒng)內(nèi)核緊密關(guān)聯(lián)的程序來說,C仍然是很好的選擇。 C良好的可移植性也為它加了分。 不過現(xiàn)在很多其他的語言可移植性越來越好,C在這方面的優(yōu)勢可能會逐漸喪失。 現(xiàn)有的很多程序可以產(chǎn)生非常棒的C代碼,比如語法分析器、GUI Builder等,這時候C語言也是有吸引力的,因為你所需要編寫的代碼只是整個程序的一小部分。 再有,我們當然應該認識道,C語言對于程序員來說具有無可替代的價值。 就我這里討論的每一種語言而論,只要你發(fā)掘的足夠深,到最后你會看到它們的內(nèi)核都是用純正的、可移植的C寫成的。 到了今天這個時候,我們最好把C看成是UNIX虛擬機上的高級匯編語言。 就算是其他的高級語言完全可以滿足你的工作需要,抽出時間來學習C語言也仍然有益,它能幫助你在硬件體系的層次上思考問題。 即使到了今天,最好的C語言教程仍然是1988年出版的K&R第二版the C Programming Language. 總結(jié):C最出色的地方在于其高效和貼近機器,最糟糕的地方在它的內(nèi)存管理地獄。 C++ C++最初發(fā)布于1980年代中期,當時面向?qū)ο笳Z言被認為是解決軟件復雜性問題的銀彈。 C++的面向?qū)ο筇匦钥聪嗳ナ蛊淙娉搅薈,支持者認為C++將迅速把上一代語言擠到陳列館里去。 但是歷史并非如此。 究其原因,至少有一部分歸咎于C++本身。 為了與C兼容,C++被迫作出了很多重大的設(shè)計妥協(xié),結(jié)果導致語言過分華麗,過分復雜。 為了與C兼容,C++并沒有采用自動內(nèi)存管理的策略,從而喪失了修正C最嚴重問題的機會。 另外一部分原因,恐怕要算到面向?qū)ο笊砩稀? 看起來OO并沒有很好的達成人們當年的預期。 我就這個問題調(diào)研過,我發(fā)現(xiàn)使用OO方法導致組件之間出現(xiàn)很厚的粘合層,并且?guī)砹藝乐氐目删S護性問題。 今天讓我們來看看開放源碼社區(qū),你會發(fā)現(xiàn)C++的應用還是集中在GUI,游戲和多媒體工具包這些方面,在其他地方很少用到。 要知道,面向?qū)ο笠仓皇窃谶@些領(lǐng)域被證明非常成功,而開放源碼社區(qū)的選擇,很大程度上體現(xiàn)了程序員的自由意志,而不是公司管理層的胡亂指揮。 也許C++實現(xiàn)OO的方法有問題。 有證據(jù)表明C++程序在整個生命周期的開銷高于相應的C, Fortran和Ada程序。 不過,究竟這是否應該歸咎與C++的OO實現(xiàn)上,還不清楚。 最近幾年,C++加入了很多非OO的思想,其異常思想類似Lisp,STL的出現(xiàn)是非常了不起的。 其實C++最根本的問題在于,它基本上只不過是另一種傳統(tǒng)的語言。 STL中的內(nèi)存管理比先前的new/delete和C的方案要好的多,但是還是沒有解決問題。 對于很多應用程序而言,其OO特性并不明顯,相比與C,除了增加復雜度之外沒有獲得很多好處。 總結(jié):C++優(yōu)點在于作為編譯型語言,把效率與泛型和面向?qū)ο筇匦越Y(jié)合起來,其缺點在于過于華麗復雜,傾向于鼓勵程過分復雜的設(shè)計。 Java Java的設(shè)計很聰明,它采用了自動內(nèi)存管理,這是最大的改進,支持OO設(shè)計帶來的好處雖然不那么突出,不過也很值得贊賞,相比C++,其OO設(shè)計規(guī)模小而且簡單 。 相對于Python而言,Java有一些明顯的失誤。 有些地方設(shè)計的還是太復雜,甚至有缺陷。 Java的類可見性和隱式scoping規(guī)則太復雜了。 Interface機制是為了避免多繼承帶來的問題而設(shè)計的,但是要理解和使用它還是挺難。 內(nèi)部類和匿名類導致令人困惑的代碼。 缺乏有效的析構(gòu)機制,使得除了內(nèi)存之外的其他資源(比如互斥量和鎖)管理起來很困難。 Java的線程不可靠,其I/O機制很強大,但是讀取一個文本文件卻非常繁瑣。 Java沒有管理庫版本的機制,從而形式上重蹈了了Windows DLL地獄的覆轍。 在類似應用服務(wù)器這樣的環(huán)境里,這引起了大量的問題。 總體而言,我們可以說除了系統(tǒng)編程和對效率要求極高的程序之外,Java在大部分領(lǐng)域優(yōu)于C++。 經(jīng)驗表明,Java程序員似乎不太容易象C++程序員那樣構(gòu)造過度的OO層,不過在Java中這仍然是個嚴重問題。 Java是否優(yōu)于諸如Perl, Python這樣的語言?我們還不是很清楚,很大程度上似乎跟程序規(guī)模有關(guān)。 其擅長的領(lǐng)域基本上于Python相似,在效率上無法跟C/C++相提并論,在小規(guī)模的、大量使用模式匹配和編輯的項目里也無法匹敵Perl。 在小項目里,Java顯得過分強大了。 我們猜測Python更適合小項目,而Java適合大項目,不過這一點并沒有得到有力的證明。 Python Python是一種腳本語言,可以與C緊密整合。 它可以與動態(tài)加載的C庫模塊交換數(shù)據(jù),也可以作為內(nèi)嵌腳本語言而從C中調(diào)用。 其語法類似C和模塊化語言的雜合,不過有一個獨一無二的特征,就是以縮進來確定語句塊。 Python語言非常干凈,設(shè)計優(yōu)雅,具有出色的模塊化特性。 它提供了面向?qū)ο竽芰Γ粡娖扔脩暨M行面向?qū)ο笤O(shè)計。 其類型系統(tǒng)提供了強大的表達能力,類似Perl,具有匿名lambda表達式,這點又讓Lisp黑客們感到親切。 Python依靠Tk提供方便的GUI界面開發(fā)能力。 在所有的解釋型語言里,Python和Java最適合多名程序員以漸進方式協(xié)同開發(fā)大型項目。 在很多方面,Python比Java要簡單,它非常適合與構(gòu)造快速原型,這一點使得它對于Java有獨特優(yōu)勢:對于那些既不很復雜,又不要求高效率的程序,Python十分合適。 Python的速度沒法跟C/C++相比,不過在今天的高速CPU上,合理地使用混合語言編程策略使得Python的上述弱點被有效地彌補。 事實上,Python幾乎被認為是主流腳本語言中最慢的一個,因為它提供了動態(tài)多態(tài)性。 在大量使用正則表達式的小型項目,它遜于Perl。 對于微型項目而言,shell和Tcl可能更好,Python顯得太過強大了。 總結(jié):Python最出色的地方在于,它鼓勵清晰易讀的代碼,特別適合以漸進開發(fā)的方式構(gòu)造大項目。 其缺陷在于效率不高,太慢,不但跟編譯語言相比慢,就是跟其他腳本語言相比也顯得慢。
匿名內(nèi)部類和內(nèi)部類都可以在方法中申明并實現(xiàn),抄個簡單示例:匿名內(nèi)部類可以減少你命名一個類的煩腦(^^) 其有很多優(yōu)點 比如可以訪問外部類的私有方法 new YourClass{ ... } 這個例子是一個多線程的小程序,這里面就應用到了匿名內(nèi)部類,實現(xiàn)了Runnable接口。 匿名內(nèi)部類的一般好處是:是代碼更加簡潔,緊湊,但帶來的是易讀性下降。 他一般用在GUI編程中 實現(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)部類可以訪問外部類的私有成員,其他的方式實現(xiàn)接口和繼承類做不到 實現(xiàn)方式: SuperType aa = new SuperType(construction parameters){methods and data} 或 InterfaceType aa = new InterfaceType(){methods and data} 具體實現(xiàn)時需要把SuperType 和InterfaceType 換成具體的超類和接口。 匿名內(nèi)部類可以訪問外部類的私有成員,其他的方式實現(xiàn)接口和繼承類做不到 內(nèi)部類應該都可以的。 我覺得匿名的應該是隱藏實現(xiàn),而且用完就out的那種。
內(nèi)容聲明:
1、本站收錄的內(nèi)容來源于大數(shù)據(jù)收集,版權(quán)歸原網(wǎng)站所有!
2、本站收錄的內(nèi)容若侵害到您的利益,請聯(lián)系我們進行刪除處理!
3、本站不接受違法信息,如您發(fā)現(xiàn)違法內(nèi)容,請聯(lián)系我們進行舉報處理!
4、本文地址:http://m.hudongshop.com/article/49242bc81b4e4f8dc2ec.html,復制請保留版權(quán)鏈接!
簡介可擴展標記語言,XML,是一種標記語言,用于組織和存儲數(shù)據(jù),它是一種靈活的格式,可用于各種目的,包括數(shù)據(jù)交換、存儲和顯示,與其他標記語言相比,XML具有獨特的優(yōu)點和缺點,本文將探討XML與HTML、JSON和YAML的異同,XML與HTMLHTML,超文本標記語言,是一種標記語言,用于創(chuàng)建和顯示W(wǎng)eb頁面,它與XML非常相似,但有...。
本站公告 2024-09-27 11:56:51
Zzip是一款功能強大的文件壓縮和解壓縮軟件,它不僅可以幫助您節(jié)省存儲空間,還可以保護您的文件免遭未經(jīng)授權(quán)的訪問,通過采用一系列強有力的安全措施,Zzip確保您的數(shù)據(jù)始終處于受保護狀態(tài),密碼加密Zzip采用AES,256加密算法對文件進行加密,這是目前最安全的加密標準之一,這意味著未經(jīng)授權(quán)的用戶即使掌握了您的壓縮文件,也無法訪問其中的...。
最新資訊 2024-09-26 10:34:34
listbox控件是一種強大的工具,可用于創(chuàng)建動態(tài)且可定制的列表,它可以用來顯示各種數(shù)據(jù),從簡單的文本項到復雜的對象,本文將深入探討listbox控件,幫助您了解其功能并有效地使用它,創(chuàng)建Listbox控件要創(chuàng)建listbox控件,只需使用以下HTML代碼,<,selectmultiple>,<,optionvalue=值...。
最新資訊 2024-09-23 19:39:51
網(wǎng)站可維護性對于確保網(wǎng)站的長期成功至關(guān)重要,可維護性良好的網(wǎng)站易于更新、擴展和修復,從而降低了維護成本并提高了網(wǎng)站的整體效率,W3C驗證是提高網(wǎng)站可維護性的有效方法,W3C驗證是一種驗證網(wǎng)站標記和結(jié)構(gòu)是否符合W3C標準的流程,通過使代碼符合標準,您可以提高代碼的可讀性和可重用性,從而使維護變得更容易,W3C驗證的好處提高代碼的可讀性,...。
互聯(lián)網(wǎng)資訊 2024-09-14 17:14:48
在PHP中,進程間通信,IPC,允許進程之間交換數(shù)據(jù)和信息,這對于需要協(xié)調(diào)活動或共享資源的應用程序非常有用,PHP提供了多種IPC方法,包括管道、套接字、共享內(nèi)存和信號,管道管道是一種將一個進程的輸出連接到另一個進程的輸入的機制,在PHP中,管道使用pipe,函數(shù)創(chuàng)建,該函數(shù)返回一個包含兩個文件描述符的數(shù)組,一個用于讀,一個用于寫,...。
互聯(lián)網(wǎng)資訊 2024-09-12 21:51:22
前言在淘寶這個龐大的電商平臺上,獲得流量是店鋪能否成功經(jīng)營的關(guān)鍵,而淘寶導航代碼則是賣家提高店鋪流量的一種重要工具,本文將深入解析淘寶導航代碼,揭開其背后的原理,幫助賣家打造高效的店鋪導航,吸引更多潛在顧客,什么是淘寶導航代碼淘寶導航代碼是一種HTML代碼,通過嵌入到店鋪首頁或其他指定頁面中,可以為店鋪創(chuàng)建自定義導航,它由一系列標簽和...。
互聯(lián)網(wǎng)資訊 2024-09-10 21:57:41
PHP5是一種廣泛使用的編程語言,用于構(gòu)建各種網(wǎng)絡(luò)應用程序,為了確保您的PHP5應用程序的安全、高效和可維護,遵循最佳實踐至關(guān)重要,本文將探討PHP5中一些重要的最佳實踐,以幫助您構(gòu)建健壯可靠的應用程序,安全實踐使用參數(shù)化查詢,參數(shù)化查詢可防止SQL注入攻擊,它將用戶輸入作為參數(shù)傳遞給查詢,而不是直接將其嵌入到查詢語句中,驗證用戶輸入...。
互聯(lián)網(wǎng)資訊 2024-09-09 17:16:49
C語言是一種普遍的計算機編程語言,已用于開發(fā)從操作系統(tǒng)到嵌入式系統(tǒng)的各種軟件,它以其效率、速度和低級訪問硬件的能力而聞名,對于希望撰寫高效、可靠和可移植代碼的程序員來說,C語言是一種理想的選擇,無論您的技能水平如何,都有許多資源可以幫助您學習C語言,本指南將為您提供一些適用于所有技能水平的最佳C程序培訓資源,從初學者到高級用戶,初學者...。
最新資訊 2024-09-08 21:08:04
Unix操作系統(tǒng)以其強大的命令行界面和文本處理工具而聞名,它為復雜的編程提供了豐富的工具和技術(shù),掌握這些技術(shù)對于任何希望在Unix環(huán)境中構(gòu)建高級應用程序或系統(tǒng)的人來說都是至關(guān)重要的,管道和重定向管道和重定向是Unix環(huán)境中的基本概念,它們允許您將命令的輸出作為另一個命令的輸入,管道使用垂直線,符號表示,而重定向使用大于號,>,...。
本站公告 2024-09-08 07:15:03
對于編程愛好者來說,互聯(lián)網(wǎng)上有著豐富的在線資源,可以幫助他們學習、練習和提升編程技能,這里列出一些不容錯過的編程網(wǎng)站,為您的編程之旅提供助力,學習編程基礎(chǔ)知識CodecademyCodecademy是一個交互式的在線代碼學習平臺,提供了從初學者到高級的各種編程課程,課程內(nèi)容涵蓋了多種編程語言,包括Python、Java、JavaScr...。
本站公告 2024-09-07 09:49:30
引言歡迎來到織夢網(wǎng)教程!本指南將一步步指導您完成構(gòu)建您的第一個專業(yè)網(wǎng)站的過程,無論您是初學者還是已經(jīng)有一些網(wǎng)站設(shè)計經(jīng)驗,本指南都將為您提供寶貴的見解和資源,準備工作在開始構(gòu)建網(wǎng)站之前,您需要完成一些準備工作,確定您的網(wǎng)站目標,您希望您的網(wǎng)站做什么,是用來展示您的作品集,推銷您的業(yè)務(wù),還是創(chuàng)建在線社區(qū),明確您的目標將幫助您確定網(wǎng)站的結(jié)構(gòu)...。
最新資訊 2024-09-06 15:09:34
是否想深入了解您最喜歡的網(wǎng)站是如何運作的,通過下載其源碼,您可以了解網(wǎng)站的內(nèi)部工作原理并探索其構(gòu)建方式,本指南將逐步指導您完成下載任何網(wǎng)站源碼的過程,步驟1,選擇網(wǎng)站選擇您要下載源碼的網(wǎng)站,請確保該網(wǎng)站沒有限制訪問其源碼,步驟2,使用瀏覽器開發(fā)人員工具接下來,打開您選擇的網(wǎng)站并在瀏覽器中查看其源碼,您可以使用瀏覽器開發(fā)人員工具來完成此...。
本站公告 2024-09-05 23:12:43