《第一行代碼Java視頻講解版》百度網(wǎng)盤pdf最新全集下載:
創(chuàng)新互聯(lián)建站服務(wù)項(xiàng)目包括安丘網(wǎng)站建設(shè)、安丘網(wǎng)站制作、安丘網(wǎng)頁制作以及安丘網(wǎng)絡(luò)營(yíng)銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,安丘網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到安丘省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
鏈接:
?pwd=t7i1 提取碼: t7i1
簡(jiǎn)介:第一行代碼 Java 視頻講解版從初學(xué)者的角度,以豐富的例子、通俗易懂的語言、簡(jiǎn)單的圖示,詳細(xì)地介紹了Java開發(fā)中重點(diǎn)用到的多種技術(shù)。全書分為15章,包括Java簡(jiǎn)介、程序基本概念、面向?qū)ο蠡靖拍?、面向?qū)ο蟾呒?jí)知識(shí)、包及訪問控制權(quán)限、異常的捕獲及處理、Eclipse開發(fā)工具、Java新特性、多線程、Java常用類庫、Java IO編程、Java網(wǎng)絡(luò)編程、Java類集框架、Java數(shù)據(jù)庫編程、DAO設(shè)計(jì)模式等內(nèi)容。? ?
一樓的說的夠全面了,不過稍有誤解.
再來表示抱歉,我對(duì)編程語言中的中文名詞非常不了解,所以如果以下的回復(fù)對(duì)你的閱讀或者理解造成困難,請(qǐng)見諒.
1.首先,要明白這個(gè)問題的答案,需要了解call?(pass)?by?value?和?call?(pass)?by?reference?的區(qū)別.簡(jiǎn)單來說:
call?by?value通常是復(fù)制這個(gè)parameter的值去另外一塊內(nèi)存里,然后傳給function,?所以在method/function里邊對(duì)這個(gè)變量的所有變更,實(shí)際上都是對(duì)復(fù)制過來的鏡像進(jìn)行操作,不會(huì)對(duì)原本的variable有任何影響.
call?by?reference是將parameter的reference傳給function,簡(jiǎn)單點(diǎn)理解就是直接把variable傳給function.所以說這個(gè)variable的值是可以被function改變的.這個(gè)用法在c/c++中非常常見,用法是variable_name.
2.再來,在Java里邊,你可以很簡(jiǎn)單的理解為:?Java中只有call?by?value,?也就是說,所以所有傳給function的parameter本身都不會(huì)被改變.?(這是最簡(jiǎn)單直白的理解,當(dāng)然也有另一種常從sun的人那邊聽到的說法:Java是call?by?value?+?call?by?reference?by?value)
3.那么現(xiàn)在的問題就是為什么第二個(gè)結(jié)果是2了.?首先說一下sun官方的解釋:?對(duì)于reference?type在作為parameter/argument的時(shí)候,也是call?by?value,?但是在你擁有足夠權(quán)限時(shí)(比方說那個(gè)變量是public的,?不是final的等等各種符合的情況),可以修改這個(gè)object中fields的值(也就是屬于這個(gè)object(嚴(yán)謹(jǐn)點(diǎn)講是an?instance?of?the?object)?內(nèi)部的變量,?在你的例子中,?ko?里邊的?a?就是一個(gè)field,?所以u(píng)pdate(ko)會(huì)使ko.a變成2).
4.如果你是一個(gè)有過c/c++學(xué)習(xí)經(jīng)驗(yàn)的人或者你以上的解釋很難理解,以下這種說法或許更適合你?(當(dāng)然了,這只是大多包括我在內(nèi)有c經(jīng)驗(yàn)的人的一種理解方式)
這里可以引入一個(gè)新的概念,pointer.?這是一種比較特殊的變量,它內(nèi)部所儲(chǔ)存的東西,其實(shí)只是另外一個(gè)變量的內(nèi)存地址.?如果對(duì)內(nèi)存沒有概念,你可以把它簡(jiǎn)單理解為是風(fēng)箏的線軸,雖然看它本身看不出什么端倪,但是順著摸過去總會(huì)找到風(fēng)箏,看到它是什么樣子.?以pointer方式理解Java的人,通常會(huì)說:?Type?variable?=?new?Type();?這個(gè)過程中,最后生成的這個(gè)variable其實(shí)就是一個(gè)pointer,而不是instance本身.
在Java中,?有c/c++經(jīng)驗(yàn)的人通常認(rèn)為Java是call?by?value.同時(shí),當(dāng)一個(gè)變量用在儲(chǔ)存reference?type的時(shí)候,實(shí)際上儲(chǔ)存的是它的pointer,這也一樣可以解釋為什么ko.a會(huì)有2這個(gè)結(jié)果,因?yàn)殡m然pointer被傳到function里邊時(shí),本身是call?by?value,無法被改變.但這并不影響function本身對(duì)這個(gè)pointer指向的object的內(nèi)容做任何改變.?當(dāng)然,再次聲明,這只是一種幫助有c/c++經(jīng)驗(yàn)的人理解的方法.?Sun本身嚴(yán)正聲明Java里邊沒有pointer這個(gè)東西的存在.
5.?再來解釋一下為什么說樓上所說的(或者說樓上引用的)理解略有偏差.
引用"我們上面剛學(xué)習(xí)了JAVA的數(shù)據(jù)類型,則有:值類型就是按值傳遞的,而引用類型是按引用傳遞的"?這句話很明顯的有兩點(diǎn)錯(cuò)誤.?第一點(diǎn),如果我上面所說的,Java是沒有call?by?reference的.
第二點(diǎn),暫且假設(shè)Java里邊是有call?by?reference的,?這句話依然不成立.
Java中的變量有兩種類型:?primitive?types?和?reference?type.
primitive?type包括byte,?short,?int,?long,?char,?boolean,?float和double.
而這8種之外的所有的,都是reference?type.
下面是一段對(duì)你的貼上來的code的一點(diǎn)延伸,希望可以幫助你更好的理解Java中的argument?/?parameter到底是如何運(yùn)作的.
public?class?Test?{
public?static?void?main(String[]?args)?{
int?a?=?1;
Koo?koo?=?new?Koo();
Object?o?=?new?Integer(1);
Koo?newKoo?=?new?Koo();
update(a);
update(koo);
update(o);
update(newKoo);
newUpdate(newKoo);
System.out.println(a);
System.out.println(koo.a);
System.out.println(o);
System.out.println(newKoo.a);
}
static?void?update(int?a)?{
a++;
}
static?void?update(Koo?koo)?{
koo.a++;
}
static?void?update(Object?o)?{
o?=?(int)?(Integer.parseInt(o.toString())?+?1);
}
static?void?newUpdate(Koo?koo)?{
koo?=?new?Koo();
}
}
class?Koo?{
int?a?=?1;
}
/*
o?=?(int)?(Integer.parseInt(o.toString())?+?1);?這一行中的(int)純粹是多余的,是否有這個(gè)casting對(duì)code本身沒有任何影響.?如果你高興也可以用
o?=?new?Integer(Integer.parseInt(o.toString())?+?1);
或者干脆
o?=?Integer.parseInt(o.toString())?+?1;
*/
以上這些code運(yùn)行之后會(huì)得到1?2?1?2的結(jié)果.?后面兩個(gè)結(jié)果可以很好的說明,?即使對(duì)objects?(reference?type?variables)?來看,?Java所應(yīng)用的也并不是call?by?reference.?否則的話,以上code運(yùn)行結(jié)果應(yīng)該是1?2?2?1
希望你可以真正理解這個(gè)新的例子中,產(chǎn)生1212這個(gè)結(jié)果的原因,從而對(duì)Java中的arguments有一個(gè)系統(tǒng)全面的認(rèn)識(shí).
圖片是相關(guān)資料的鏈接,知道里貌似不能加網(wǎng)址
class value{
private int i;//這里改成private會(huì)更好,有利于封裝
puvlic value(int i){this.i=i}
}
這個(gè)構(gòu)造器的意思就是將 構(gòu)造器參數(shù)的i來賦值給value類的i.
構(gòu)造器中的i的作用范圍在構(gòu)造器中
類中的i作用于整個(gè)類。加this就是區(qū)分類的i和構(gòu)造器的I
public static void main(String[] args){
} //這是主函數(shù),程序會(huì)從這個(gè)函數(shù)開始運(yùn)行
public void show(){
} //這是一個(gè)自定義函數(shù)show,權(quán)限最大,無返回值