小白: 什么是hello world啊,覺得經(jīng)常見啊??
慶哥: ??
首先我們要知道它的中文是啥意思,那就是”你好啊,世界!“,這難道有啥寓意嘛?你想啊,這像是個(gè)問(wèn)候語(yǔ),就像剛剛來(lái)到這個(gè)世界一樣,然后跟這個(gè)世界打個(gè)招呼,意味著自己初來(lái)乍到,以后就要在這個(gè)世界上混了,大致就是剛剛接觸一個(gè)新事物,并且以后準(zhǔn)備深入了解。
小白: 哦,這樣說(shuō)大致明白了hello world是個(gè)啥意思,但是在Java中它又是咋回事,按照你說(shuō)的,是不是意味著剛剛接觸Java,以后逐漸深入的學(xué)習(xí)Java,所以剛開始先跟Java打個(gè)招呼啊??
慶哥: 完全可以這樣理解啊,在Java中我們一般寫的第一段代碼就是hello world,意味著我們現(xiàn)在要開始進(jìn)入Java的世界了!
小白: ??可是這個(gè)hello world的代碼是啥,沒有寫過(guò)啊,也不知道長(zhǎng)啥樣子。
慶哥: 怎么會(huì)沒見過(guò)呢?你看看,就是他啊:
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); }}
怎么樣,是不是很熟悉??,我們?cè)谥爸v解JDK的時(shí)候做過(guò)演示的,那個(gè)時(shí)候你可能并不知道這段代碼啥意思以及為啥這樣寫,因?yàn)閯傞_始,你不了解很正常,隨著后續(xù)的慢慢的學(xué)習(xí),你就會(huì)越來(lái)越清楚的。
小白: 哦哦,原來(lái)是它啊,它就是我們說(shuō)的Java中的hello world嘛?
慶哥: 是的,其實(shí)本質(zhì)上是啥呢?所謂的hello world其實(shí)也就是使用Java語(yǔ)言去寫一段代碼,然后打印出hello world,就是這么簡(jiǎn)單,很多人都把這個(gè)叫做學(xué)習(xí)Java的第一段代碼,意味著敲開了Java的大門??
小白: 嗯嗯,這下知道怎么回事,那么咱們今天主要就講這段代碼嘛?
慶哥: 我們今天是以這段代碼為基礎(chǔ),去聊聊Java中的一些知識(shí),不知道你之前是否看過(guò)別的書籍或者視頻教程,都是怎么講解這個(gè)hello world的呢?
小白: 我之前確實(shí)看過(guò),很多都是寫出這段代碼,然后演示一下,看到輸出hello world就過(guò)去??,難道咱們今天不是這樣嘛?
慶哥: 必須的啊??,咱們今天雖然也是說(shuō)hello world,但是涉及的內(nèi)容也不少的,絕對(duì)不是讓大家啊看個(gè)輸出就結(jié)束的,大致這次會(huì)聊聊以下的內(nèi)容:
重新認(rèn)識(shí)hello world
java的運(yùn)行條件(jvm,jdk和jre)
什么是編譯和解釋
什么是面向?qū)ο缶幊陶Z(yǔ)言和面向過(guò)程編程語(yǔ)言
Java和c語(yǔ)言以及c++有什么區(qū)別
Java是如何實(shí)現(xiàn)跨平臺(tái)的
Java的學(xué)習(xí)應(yīng)該注重什么
計(jì)算機(jī)組成原理部分知識(shí)
怎么樣?期待嘛?
那接下來(lái),咱們就正式開始吧??
慶哥: 我們?cè)趯W(xué)習(xí)Java之初,大部分人都會(huì)寫上這么一段代碼
class Test{ public static void main(String[] ithuangqing){ System.out.println("一個(gè)自學(xué)的程序員"); }}
標(biāo)志著自己的編程生涯或者說(shuō)Java學(xué)習(xí)正是開始了,這段代碼或許你是從書上看到的或者是從視頻里面看到的,然后你就跟著操作,然后輸出執(zhí)行,然后看到
一個(gè)自學(xué)的程序員
當(dāng)然,輸出內(nèi)容是可以自己自定義的,隨便都行,然后寫完了,輸出了也看到內(nèi)容了,然后就進(jìn)行下面的學(xué)習(xí)了
小白: 咦?為啥你這里寫的代碼跟之前的hello world不一樣啊??
慶哥: 確實(shí)不一樣,還記得之前說(shuō)的嘛,hello world其實(shí)就是用Java語(yǔ)言寫一段代碼,輸出hello world而已,這只是大家習(xí)慣這樣的方式而已,實(shí)際上,我寫上這么一段代碼,輸出什么內(nèi)容都是可以的,并不意味著你定要輸出hello world才對(duì),比如這里,我就輸出”一個(gè)自學(xué)的程序員“,因?yàn)槲抑敖?jīng)常說(shuō)自己是一個(gè)程序員,所以就輸出這個(gè)了。
小白: 哦哦,也就是說(shuō),這段代碼輸出什么都可以的是吧?對(duì)了,我還發(fā)現(xiàn)這里的不同:
String[] ithuangqing 之前是 String[] args?????
慶哥: 可以啊,看的很是仔細(xì)啊??,這里確實(shí)是我故意改的,因?yàn)槲覄傞_始學(xué)習(xí)Java的時(shí)候,在寫這段代碼的時(shí)候,有很長(zhǎng)一段時(shí)間,我都覺得這段代碼是固定的,也就是說(shuō)非得這樣寫不可,但是實(shí)際上并不是,只要按照J(rèn)ava的正確語(yǔ)言,很多東西都可以變得,比如之前的那個(gè)輸出,還有你剛剛指出的這個(gè),這里不是只能寫成args,改成其他的也行。
小白: 哦哦,原來(lái)是這樣,你不說(shuō)的話,我還真的以為是固定寫法,不能改變的呢。這確實(shí)跟我之前知道的不一樣,不過(guò),咱們?cè)摬粫?huì)就說(shuō)這么多吧???
慶哥: 當(dāng)然不是啊,別看一段簡(jiǎn)短的代碼,那里面可是有大學(xué)問(wèn)的,下面咱們就來(lái)一起重新認(rèn)識(shí)這個(gè)hello world。
首先問(wèn)你個(gè)很簡(jiǎn)單的問(wèn)題,當(dāng)你寫下這段代碼的時(shí)候,你把它保存在哪了,假如說(shuō)你說(shuō)是桌面,就像現(xiàn)在這樣
是的,一個(gè)HelloWorld.java文件就保存在了桌面上,這個(gè)叫做Java源文件,不過(guò)說(shuō)是保存在桌面上這個(gè)有點(diǎn)模糊,這個(gè)桌面又是個(gè)啥呢,我們應(yīng)該想象它保存在了我們電腦的哪個(gè)部分呢?
小白: 保存在了電腦的哪個(gè)部分?不就是桌面嗎???,不對(duì)你的意思是不是指的計(jì)算機(jī)的組成的某些東西?
慶哥: 哈哈,是的,你知道一臺(tái)計(jì)算機(jī),最基本的包含哪些東西嗎?
小白: 這個(gè)好像有如下的五個(gè)部分吧:
運(yùn)算器
控制器
存儲(chǔ)器
輸入設(shè)備
輸出設(shè)備
慶哥: 可以,回答的很準(zhǔn)確,這些好像都是專有名詞專業(yè)術(shù)語(yǔ),不過(guò)我們從字面意思上應(yīng)該能猜得出,這個(gè)Java源文件應(yīng)該是和存儲(chǔ)器有關(guān)系的,那是必須然,那么這個(gè)存儲(chǔ)器又是個(gè)什么鬼呢?你知道嗎?
小白: 存儲(chǔ)器,應(yīng)該就是存儲(chǔ)東西的,是不是就是我們說(shuō)的電腦上的內(nèi)存啊?硬盤???
慶哥: 在計(jì)算機(jī)中啊,保存信息主要靠存儲(chǔ)器,而存儲(chǔ)器又分為內(nèi)部存儲(chǔ)器和外部存儲(chǔ)器,內(nèi)部存儲(chǔ)器就是內(nèi)存了,而這個(gè)外部存儲(chǔ)器主要就是磁盤了,磁盤又分為硬盤和軟盤,而我們電腦中的大部分就都是硬盤了,這里也分為固態(tài)硬盤和傳統(tǒng)機(jī)械硬盤。
不管怎么說(shuō)吧,磁盤也好內(nèi)存也罷,就是用來(lái)存放數(shù)據(jù)的,那么我們就知道了我們寫的這個(gè)Java源文件應(yīng)該就是存放在電腦中的磁盤了,那好我們現(xiàn)在來(lái)梳理一下
我們通過(guò)記事本寫下了這么一段代碼:
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); }}
然后命名HelloWorld.java,我們知道這是個(gè)Java源程序,實(shí)際上它是存放在了我們電腦中的磁盤上面,下一步我們就要想著去如何運(yùn)行這段代碼,那么該怎么運(yùn)行呢?
慶哥: 你知道運(yùn)行一個(gè)java程序員,都需要哪些基本條件嗎?這個(gè)我們之前可是講過(guò)的哦?
小白: 這個(gè)必須知道啊,我們寫完一個(gè)java源程序,想要運(yùn)行的話,就要使用jdk來(lái)進(jìn)行編譯和運(yùn)行,運(yùn)行的話實(shí)際上是依靠jdk中提供的jre,也就是java的運(yùn)行環(huán)境。
慶哥: 可以的,記得很清楚,那么編譯和運(yùn)行java的那兩個(gè)基本指令還知道是啥吧?
小白: 必須的,就像下面這樣:
是不是啊,慶哥??
慶哥: 可以的??,那你知道什么是jvm嘛?
小白: 這個(gè)??哈哈??,這是啥啊,不太了解。
慶哥: 這個(gè)jvm的全稱是
Java Virtual Machine
也就是Java虛擬機(jī),這個(gè)相當(dāng)重要,為啥?如果你學(xué)習(xí)Java的話你就一定知道Java的跨平臺(tái),也就是一句非常經(jīng)典的話
“write once, run everywhere”
要知道Java實(shí)現(xiàn)跨平臺(tái)可全是jvm的功勞啊
小白: 跨平臺(tái)是個(gè)什么鬼???
慶哥: 下面我們就來(lái)好好說(shuō)說(shuō)這個(gè)跨平臺(tái),也就是來(lái)聊聊jvm,說(shuō)到這個(gè)我們需要把c和c++也拿過(guò)來(lái)一起做個(gè)比較。
我們或許知道c語(yǔ)言是一個(gè)偏底層的語(yǔ)言,是面向過(guò)程編程的語(yǔ)言,對(duì)于面向過(guò)程語(yǔ)言,它專注的是數(shù)據(jù)之間的流向,重點(diǎn)在過(guò)程兩個(gè)字,而c++和Java語(yǔ)言都屬于面向?qū)ο缶幊陶Z(yǔ)言,他們關(guān)注的則是不同對(duì)象之間的一個(gè)關(guān)系,重點(diǎn)在對(duì)象兩個(gè)字。
c語(yǔ)言應(yīng)該是每個(gè)學(xué)計(jì)算機(jī)的都會(huì)學(xué)的吧,或多或少都會(huì)知道一個(gè)很厲害的名字叫做“指針”,是可以直接去操作內(nèi)存的,這帶來(lái)的問(wèn)題就是我們需要自己手動(dòng)的去釋放內(nèi)存,而Java我們應(yīng)該也知道,有了jvm來(lái)管理內(nèi)存,我們不需要自己手動(dòng)釋放內(nèi)存
也就是說(shuō),Java把c++和c語(yǔ)言中那個(gè)神奇的指針給去掉了,為啥,因?yàn)橹羔樖强梢灾苯硬僮鲀?nèi)存的,因此肯定會(huì)帶來(lái)很多的編程錯(cuò)誤,這里給大家看一張圖來(lái)理解吧
c和c++因?yàn)橛辛酥羔樀拇嬖?,所以是可以直接與操作系統(tǒng)進(jìn)行交互的,從而可以去操作內(nèi)存,但是誰(shuí)能保證你寫的沒啥問(wèn)題,直接操作內(nèi)存難免會(huì)出現(xiàn)問(wèn)題,而且你還需要自己手動(dòng)的去釋放內(nèi)存。
而Java就不同,他去掉了指針,不與操作系統(tǒng)直接交互,而是在中間多了一層jvm,也就是說(shuō)你寫的程序會(huì)先交由jvm去處理,然后才會(huì)與操作系統(tǒng)進(jìn)行打交道,如此一來(lái),你就可以隨便造,反正有jvm在后面幫你把關(guān),而且內(nèi)存也會(huì)交由jvm來(lái)進(jìn)行自動(dòng)回收,著實(shí)很酷。
我們?cè)賮?lái)說(shuō)說(shuō)這個(gè)跨平臺(tái),從圖中我們可以分析得到,無(wú)論是c還是c++他們都是嚴(yán)重依賴操作系統(tǒng)的,也就是說(shuō)你在windows上寫的c程序在其他平臺(tái)是無(wú)法運(yùn)行的,是無(wú)法做到跨平臺(tái)的,為了更好的理解這塊,我們需要補(bǔ)充下知識(shí)
說(shuō)的這些聽懂了嗎???
小白: 信息量有點(diǎn)大啊??,不過(guò)你說(shuō)的很清楚,我明白了
慶哥: 那就好,為了讓你更好的去理解,需要說(shuō)點(diǎn)額外的知識(shí)點(diǎn),那就是編譯和解釋,這個(gè)你知道嗎?
小白: 編譯和解釋?之前一直有說(shuō)編譯,不過(guò)到底啥是編譯,好像真的沒啥概念啊??
慶哥: 那接下來(lái)我就好好的解釋解釋這個(gè)編譯和解釋??
說(shuō)到編譯和解釋,可能會(huì)遇到編譯器和解釋器的概念,這個(gè)不難理解,編譯器的作用就是編譯,而解釋器的作用就是解釋,而他們操作的對(duì)象都是程序。
根據(jù)編譯和解釋其實(shí)可以將程序語(yǔ)言分為兩大類,分別是編譯型語(yǔ)言和解釋型語(yǔ)言,說(shuō)到這里我們還要明白一個(gè)問(wèn)題,那就是為什么會(huì)有編譯和解釋,要知道,計(jì)算機(jī)是只認(rèn)識(shí)機(jī)器碼的,也就是0和1,所以我們通常情況下寫的代碼,計(jì)算機(jī)是不認(rèn)識(shí)的,因此需要把我們寫的程序翻譯成計(jì)算機(jī)能夠識(shí)別的機(jī)器碼,那么翻譯的方式就有兩種
一是編譯
二是解釋
而他們最大的區(qū)別就是翻譯的時(shí)間不同,對(duì)于編譯而言,它是一次性的把源程序翻譯成目標(biāo)代碼,然后計(jì)算機(jī)讀取的時(shí)候就可以直接以機(jī)器碼進(jìn)行執(zhí)行,這樣的話效率就會(huì)很高,但是對(duì)于解釋則不同,解釋的特點(diǎn)是只有在執(zhí)行的時(shí)候才去翻譯,也就是邊翻譯邊執(zhí)行。
我記得之前看過(guò)很形象的一個(gè)回答,就是什么是編譯和解釋呢?
編譯就是相當(dāng)于提前做好了一桌子菜等著你吃,而解釋就好比是吃火鍋,邊吃邊下。
個(gè)人覺得很形象,對(duì)理解什么是編譯和解釋很有幫助。
知道了什么是編譯和解釋我們就要說(shuō)道說(shuō)道什么是編譯型語(yǔ)言和解釋型語(yǔ)言了。
我們熟知的c和c++就是典型的編譯型語(yǔ)言,對(duì)于編譯型語(yǔ)言,有一個(gè)專門的編譯過(guò)程,是直接把源程序翻譯成目標(biāo)代碼,而且是一次性的翻譯完成,因此執(zhí)行效率很高。
而像python和js就是解釋型語(yǔ)言,可能有人會(huì)說(shuō)到腳本語(yǔ)言,腳本語(yǔ)言也是一種解釋型語(yǔ)言,對(duì)于解釋型語(yǔ)言,會(huì)有一個(gè)專門的解釋器在執(zhí)行的時(shí)候進(jìn)行解釋,也就是執(zhí)行一句解釋一句。
那么對(duì)于Java屬與哪一種呢?你知道嗎?
小白: ??,我還在消化你說(shuō)的呢?
慶哥 其實(shí)Java屬于兩者的結(jié)合,也就是Java即是編譯型也是解釋型,不過(guò)說(shuō)到底,Java應(yīng)該是解釋型語(yǔ)言,為什么呢?可能有點(diǎn)繞,但是也好理解
我們知道Java是一種跨平臺(tái)的高級(jí)語(yǔ)言,而實(shí)現(xiàn)跨平臺(tái)的則是jvm,那這個(gè)跨平臺(tái)到底是怎么回事呢?
再來(lái)看看這段熟悉的代碼:
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); }}
那么這段代碼是如何做到一次編譯,到處執(zhí)行的呢?注意我這里說(shuō)的是編譯,那么在Java程序的執(zhí)行中肯定存在一個(gè)編譯的過(guò)程,那么這個(gè)Java應(yīng)該屬于編譯型語(yǔ)言啊,為什么是解釋型語(yǔ)言呢?
不著急,慢慢來(lái),我們來(lái)看一張圖:
小白: 不對(duì)啊,慶哥,這個(gè)怎么是Test啊,不應(yīng)該是HelloWorld嘛??
慶哥: 你把它當(dāng)作HelloWorld不就行了??,其實(shí)是一樣的,這個(gè)是之前畫的圖,不想畫了就直接借用了??
小白: 好吧好吧,知道了??
慶哥: 這段代碼我們把它命名叫做HelloWorld.java,它是一個(gè)Java源程序文件,接著我們可以使用javac命令生成一個(gè)HelloWorld.class文件,這個(gè)叫做字節(jié)碼文件。
這里我們一定要理解的是,javac就是在執(zhí)行一個(gè)編譯的過(guò)程,通過(guò)javac把Java源程序編譯成目標(biāo)代碼,只不過(guò)與傳統(tǒng)的編譯不同的是這里的編譯并不是將Java源程序直接翻譯成機(jī)器代碼,而是翻譯成來(lái)一個(gè)中間代碼class文件,叫做字節(jié)碼文件。
很重要的一點(diǎn),這個(gè)字節(jié)碼文件是與平臺(tái)無(wú)關(guān)的,這是實(shí)現(xiàn)跨平臺(tái)非常重要的前提,也就是生成的字節(jié)碼文件是與平臺(tái)無(wú)關(guān)的,那么接下來(lái)如何在不同的平臺(tái)上進(jìn)行執(zhí)行的呢?
這就要靠jvm了,字節(jié)碼雖然與平臺(tái)無(wú)關(guān),但是可以由jvm進(jìn)行解釋執(zhí)行,因此只要在不同的平臺(tái)上加裝相對(duì)應(yīng)的jvm那就可以實(shí)現(xiàn)跨平臺(tái)執(zhí)行來(lái)
這里需要理解的關(guān)鍵點(diǎn)就是不同的平臺(tái)需要有不同的jvm,也就是在每一個(gè)平臺(tái)上安裝相對(duì)應(yīng)的jvm,那么就都可以解釋執(zhí)行字節(jié)碼文件了,字節(jié)碼是與平臺(tái)無(wú)關(guān)的,但是這個(gè)jvm卻是與平臺(tái)相關(guān)的,也就是說(shuō)不同的平臺(tái)上的jvm是不同的。
因此,jvm對(duì)于Java的跨平臺(tái)來(lái)講就是一個(gè)橋梁,Java源程序首先編譯生成字節(jié)碼文件,這個(gè)字節(jié)碼文件是不能直接運(yùn)行的,需要由不同平臺(tái)上的jvm把這個(gè)字節(jié)碼翻譯成對(duì)應(yīng)平臺(tái)上的機(jī)器語(yǔ)言,這里的翻譯其實(shí)就是解釋,在這個(gè)過(guò)程中,字節(jié)碼始終都是一樣的,但是由各個(gè)平臺(tái)上的jvm翻譯之后的機(jī)器碼卻是不同的。
Java正是通過(guò)這種機(jī)制實(shí)現(xiàn)的跨平臺(tái),總結(jié)下就是Java是跨平臺(tái)的,真正跨平臺(tái)的是Java程序,而jvm是c和c++編寫的軟件,是編譯后的機(jī)器碼,不同的平臺(tái)上jvm的版本是不同的。
經(jīng)過(guò)編譯之后的字節(jié)碼文件是存放在我們電腦中的磁盤中的,當(dāng)對(duì)字節(jié)碼文件進(jìn)行解釋的時(shí)候,這個(gè)字節(jié)碼文件就會(huì)通過(guò)一個(gè)類加載器的東西把字節(jié)碼文件加載進(jìn)電腦的內(nèi)存中,當(dāng)然這個(gè)加載過(guò)程是有特定的步驟的,主要就是檢查這個(gè)字節(jié)碼文件是否符合jvm規(guī)范等等,加載成功就會(huì)在電腦中的內(nèi)存中開辟一塊空間,這塊空間其實(shí)就是jvm,然后再由內(nèi)存輸出內(nèi)容。
所以到這里,你知道運(yùn)行一個(gè)Java程序涉及到哪些必要的東西嘛?
小白: 經(jīng)過(guò)上面這些介紹,我知道了,要想完整的運(yùn)行一個(gè)Java,離不開jdk,jre和jvm!
慶哥: 可以的??,沒白講!接下來(lái)我再補(bǔ)充一些計(jì)算機(jī)組成的相關(guān)知識(shí),會(huì)加深你的理解。
硬盤按照原理分類可分為機(jī)械硬盤(hdd),固態(tài)硬盤(ssd)和混合硬盤(sshd),那么他們有什么區(qū)別呢?這里主要說(shuō)固態(tài)硬盤和機(jī)械硬盤,機(jī)械硬盤就是我們平常的電腦里加裝的傳統(tǒng)硬盤,他是這個(gè)樣子的:
這種硬盤應(yīng)該是目前電腦主要的存儲(chǔ)媒介之一,就是最基本的電腦存儲(chǔ)器,也就是我們常說(shuō)的電腦硬盤,比如我們電腦里面的c盤啊,d盤啊他們是硬盤,不過(guò)更加準(zhǔn)確的說(shuō)應(yīng)該是硬盤的一個(gè)個(gè)分區(qū),也就是一整個(gè)硬盤空間被分割成了一塊塊的空間,就是我們看到的abcd盤了。
我們到這里必須說(shuō)明一個(gè)問(wèn)題。
可能你會(huì)糾結(jié)這些概念,硬盤大概知道了,不過(guò)記得好像還有磁盤,那這個(gè)硬盤和磁盤有什么區(qū)別呢?
首先記住,磁盤是個(gè)總的,也就是說(shuō)磁盤包括硬盤,那么還要知道磁盤是干嘛的,磁盤最主要的功能就是保存電腦里面的信息,但是磁盤又有一些分類,不過(guò)我們首先要知道,在計(jì)算機(jī)中,保存信息的有這么兩類:
第一:內(nèi)部存儲(chǔ)器
這個(gè)就是我們說(shuō)的內(nèi)存了,是由內(nèi)存條提供內(nèi)存空間,特點(diǎn)是存儲(chǔ)信息速度快,但是容量不大,而且很重要的一點(diǎn)就是只要一斷電,里面什么玩意兒都沒有了,斷電就會(huì)丟失所有的信息。
第二:外部存儲(chǔ)器
這個(gè)主要就是磁盤了,對(duì)就是磁盤,可不是硬盤,也不是內(nèi)存
,對(duì)于外部存儲(chǔ)器也就是磁盤而言,它有這么些特性,首先就是不像內(nèi)存那樣一斷電就丟失所有的信息,存儲(chǔ)的數(shù)據(jù)不會(huì)受到斷電的影響,但是它的速度相比內(nèi)存那就慢的多了。
到了現(xiàn)在起碼知道在計(jì)算機(jī)中保存信息有兩類存儲(chǔ)器,一是內(nèi)部存儲(chǔ)器,而是外部存儲(chǔ)器也就是磁盤,下面我們?cè)賮?lái)說(shuō)說(shuō)磁盤,其實(shí)磁盤也有分類
一是:硬盤
這個(gè)我們就比較熟悉了,就是我們電腦中的c盤啊d盤啊,這里再說(shuō)一點(diǎn),還記得之前說(shuō)的這些其實(shí)就是硬盤空間的分區(qū)嘛,要記住c盤是主分區(qū),是安裝操作系統(tǒng)的,其他盤可以叫做擴(kuò)展盤,所以c盤也叫做系統(tǒng)盤,不過(guò)他們都屬于硬盤,而硬盤又是屬于磁盤的,這個(gè)關(guān)系要理清
二是:軟盤
好了到這里你就要知道磁盤是分為硬盤和軟盤的,硬盤可能我們還比較清楚,這個(gè)軟盤估計(jì)很多人沒有太多概念,先來(lái)看張軟盤的圖片吧:
估計(jì)看到圖片有些人就會(huì)覺得有那么點(diǎn)熟悉了,這就是軟盤了,那么該如何解釋這個(gè)軟盤呢?其實(shí)你完全可以把軟盤理解之前之前的u盤,只不過(guò)在出現(xiàn)了真正的u盤之后,這個(gè)軟盤慢慢就都淡出了市場(chǎng),要知道沒有u盤的時(shí)候,軟盤是很受歡迎的。不過(guò)科技總歸是在進(jìn)步的嘛!
以上我們簡(jiǎn)單而又詳細(xì)的說(shuō)了下關(guān)于硬盤的知識(shí),下面繼續(xù)我們之前的主題,固態(tài)硬盤和非固態(tài)硬盤,以上說(shuō)的這些都是屬于傳統(tǒng)硬盤,價(jià)格比較低容量比較大,但是存儲(chǔ)數(shù)據(jù)速度較慢,要知道這些傳統(tǒng)硬盤也叫做機(jī)械硬盤。
現(xiàn)在開始流行的是ssd了,也就是固態(tài)硬盤,它長(zhǎng)這個(gè)樣子:
不用想,這個(gè)固態(tài)硬盤肯定比機(jī)械硬盤要高級(jí)的多,各方面性能都遠(yuǎn)遠(yuǎn)超過(guò)機(jī)械硬盤,但是缺點(diǎn)呢?就是太貴了比著機(jī)械硬盤,不過(guò)固態(tài)硬盤可以加快系統(tǒng)啟動(dòng)速度和軟件啟動(dòng)速度,所以現(xiàn)在很多筆記本有加裝固態(tài)硬盤,這個(gè)速度那真是誰(shuí)用誰(shuí)知道啊。
目前市面上機(jī)械硬盤依然占據(jù)比較大的市場(chǎng),不過(guò)我覺得吧,隨著固態(tài)硬盤的成本不斷降低,固態(tài)硬盤必須是未來(lái)的趨勢(shì)啊。
至于還有一個(gè)混合硬盤,這個(gè)感興趣的大家可以自行搜索了解,這里就不再說(shuō)了。
那么到這里我的這個(gè)hello world就說(shuō)完了,真心希望你能有所收獲,那么最好一個(gè)問(wèn)題,我們?cè)趯W(xué)習(xí)Java的時(shí)候應(yīng)該注意什么呢?
對(duì)此,我只有一句話:
勿在浮沙筑高臺(tái)!
小白: 謝謝慶哥!??
大學(xué)的時(shí)候選擇了自學(xué)Java,工作了發(fā)現(xiàn)吃了計(jì)算機(jī)基礎(chǔ)不好的虧,學(xué)歷不行這是沒辦法的事,只能后天彌補(bǔ),于是在編碼之外開啟了自己的逆襲之路,不斷的學(xué)習(xí)Java核心知識(shí),深入的研習(xí)計(jì)算機(jī)基礎(chǔ)知識(shí),所有心得全部書寫成文,整理成有目錄的PDF,持續(xù)原創(chuàng),PDF在公眾號(hào)持續(xù)更新,如果你也不甘平庸,那就與我一起在編碼之外,不斷成長(zhǎng)吧!
其實(shí)這里不僅有技術(shù),更有那些技術(shù)之外的東西,比如,如何做一個(gè)精致的程序員,而不是“屌絲”,程序員本身就是高貴的一種存在啊,難道不是嗎?
非常歡迎你的加入,未來(lái)的日子,編碼之外,有你有我,一起做一個(gè)人不傻,錢很多,活得久的快樂的程序員吧!
回復(fù)關(guān)鍵字“PDF”,獲取技術(shù)文章合集,已整理好,帶有目錄,歡迎一起交流技術(shù)!
另外回復(fù)“慶哥”,看慶哥給你準(zhǔn)備的驚喜大禮包,只給首次關(guān)注的你哦!
任何問(wèn)題,可以加慶哥微信:H653836923,另外,我有個(gè)交流群,我會(huì)***不定期在群里分享學(xué)習(xí)資源,不定時(shí)福利***,感興趣的可以說(shuō)下我邀請(qǐng)你!
對(duì)了,如果你是個(gè)Java小白的話,也可以加我微信,我相信你在學(xué)習(xí)的過(guò)程中一定遇到不少問(wèn)題,或許我可以幫助你,畢竟我也是過(guò)來(lái)人了!
感謝各位大大的閱讀??
聯(lián)系客服