版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
大學(xué)生java學(xué)習(xí)心得(多篇)第一篇:java學(xué)習(xí)心得筆記
j2ee學(xué)習(xí)筆記
注:框架可以用.action=””);
out.print(response.encodeurl(“sessionexample”));
out.print(“formaction=””);
out.print(“method=get;”);
2)out.print(“p;ahref=””);
out.print(response.encodeurl(“sessionexample?database=foodatavalue=bar”));
out.println(“”;urlencoded/a;”);
3.singlethreadmodel
默認(rèn)的,每一個servletdefinitioninacontainer只有一個servletclass的實(shí)例。
只有實(shí)現(xiàn)了singlethreadmodel,container才會讓servlet有多個實(shí)例。
servletspecification上建議,不要使用synchronized,而使用singlethreadmodel。
singlethreadmodel(沒有方法)
保證servlet在同一時刻只處理一個客戶的懇求。
singlethreadmodel是消耗資源的,特殊是當(dāng)有大量的懇求發(fā)送給servlet時,singlethreadmodel的作用是使包涵器以同步時鐘的方式調(diào)用service方法。
這等同于在servlet的service()方法種使用synchronized.
singlethreadmodel一般使用在需要響應(yīng)一個heavyrequest的時候,比方是一個需要和數(shù)據(jù)庫打交道的連接。
2.在重載servlet地init()方法后,肯定要記得調(diào)用super.init();
3.theclient通過發(fā)送一個blankline表示它已經(jīng)完畢request
而theserver通過關(guān)閉thesocket來表示response已完畢了。
4.一個httpservlet可以送三種東西給client
1)asinglestatuscode
2)anynumberofhttpheaders
3)aresponsebody
5.servlet之間信息共享的一個最簡潔的方法就是
system.getproperties().put(“key”,”value”);
6.post和get
post:將form內(nèi)各字段名稱和內(nèi)容放置在htmlheader內(nèi)傳送給server
get:?之后的查詢字符串要使用urlencode,經(jīng)過urlencode后,這個字符串不再帶有空格,以后將在server上恢復(fù)所帶有的空格。
get是.中,可以通過serveltcontext的
setattribute()
getattribute()
removeattribute()
來共享對象
10.利用request.getparameter()得到的string存在字符集問題。
可以用strtitle=request.getparameter(“title”);
strtitle=entisthestarttag,theendtag,andeverything(includingotherelements)in/atargetnamespace=/stockquote.xsd
xmlns=http://.
content-type:text/xml;charset=utf-8
content-length:nnnn
soapaction:some-uri
soap-env:envelope
xmlns:soap-env=/soap/envelope/
關(guān)。
以下是你應(yīng)當(dāng)回避使用的一些java特色,并且在你的ejb組件的實(shí)現(xiàn)代碼中要嚴(yán)格限
制它們的使用:
1.使用static,非final字段。建議你在ejb組件中把全部的static字段都聲明為final型的。這樣可以保證前后全都的運(yùn)行期語義,使得ejb容器有可以在多個java虛擬機(jī)之間分發(fā)組件實(shí)例的敏捷性。
2.使用線程同步原語來同步多個組件實(shí)例的運(yùn)行。避開這個問題,你就可以使ejb容器敏捷的在多個java虛擬機(jī)之間分發(fā)組件實(shí)例。
3.使用permission,java.io.reflect.reflectpermission,java.lang.security.securitypermission,以便加強(qiáng)從前所列出的編程限制。
很多ejb容器沒有加強(qiáng)這些限制,他們盼望ejb組件開發(fā)者能遵守這些編程限制或者是帶有冒險想法違反了這些限制。違反這些限制的ejb組件,比標(biāo)準(zhǔn)方法依靠過多或過少的安全許可,都將很少能在多個ejb容器間移植。另外,代碼中都將隱蔽著一些不確定的、難以猜測的問題。全部這些都足以使ejb組件開發(fā)者應(yīng)當(dāng)知道這些編程限制,同時也應(yīng)當(dāng)仔細(xì)地遵守它們。
任何違反了這些編程限制的ejb組件的實(shí)現(xiàn)代碼在編譯時都不能檢查出來,由于這些特點(diǎn)都是java語言和j2se中不行缺少的局部。
對于ejb組件的這些限制同樣適用于ejb組件所使用的幫忙/訪問(helper/access)類,j2ee應(yīng)用程序使用java文檔(jar)文件格式打包到一個帶.ear(代表enterprisearchive)擴(kuò)展名的文件中,這個ear文件對于發(fā)送給文件部署器來說是標(biāo)準(zhǔn)的格式。ear文件中包括在一個或多個ejb-jar文件中的ejb組件,還可能有ejb-jar所依靠的庫文件。全部ear文件中的代碼都是經(jīng)過深思熟慮開發(fā)的應(yīng)用程序并且都遵守編程限制和訪問許可集。
將來版本的標(biāo)準(zhǔn)可能會指定通過部署工具來定制安全許可的力量,通過這種方法指定了一個合法的組件應(yīng)授予的許可權(quán)限,也指定了一個標(biāo)準(zhǔn)方法的需求:如從文件系統(tǒng)中讀文件應(yīng)有哪些要求。一些ejb容器/效勞器目前在它們的部署工具中都供應(yīng)了比標(biāo)準(zhǔn)權(quán)限或多或少的許可權(quán)限,這些并不是ejb1.1標(biāo)準(zhǔn)中所需要的。
理解這些約束
ejb容器是ejb組件生存和執(zhí)行的運(yùn)行期環(huán)境,ejb容器為ejb組件實(shí)例供應(yīng)了一些效勞如:事務(wù)治理、安全長久化、資源訪問、客戶端連接。ejb容器也負(fù)責(zé)ejb組件實(shí)例整個生命期的治理、擴(kuò)展問題以及并發(fā)處理。所以,ejb組件就這樣借居在一個被治理的執(zhí)行環(huán)境中--即ejb容器。
由于ejb容器完全負(fù)責(zé)ejb組件的生命期、并發(fā)處理、資源訪問、安全等等,所以與容器本身的鎖定和并發(fā)治理相沖突的可能性就需要消退,很多限制都需要使用來填上潛在的安全漏洞。除了與ejb容器責(zé)任與安全沖突的問題,ejb組件還意味著僅僅聚焦于商務(wù)規(guī)律,它依靠于ejb容器所供應(yīng)的效勞而不是自己來直接解決底層的系統(tǒng)層的問題。
可能的問題
通常,ejb組件在容器之間的移植不行避開地與如下問題相關(guān):
1.它需要依靠的受限制的特點(diǎn)在特定ejb容器中沒有得到加強(qiáng)。
2.它需要依靠的非標(biāo)準(zhǔn)的效勞沉著器中可獲得。
為了保證ejb組件的可移植性和全都的行為,你應(yīng)當(dāng)使用一個具有與java2平臺安全
策略集相全都的策略集的容器來測試ejb組件,并且其加強(qiáng)了前述的編程限制。
總結(jié)
ejb組件開發(fā)者應(yīng)當(dāng)知道這些推舉的關(guān)于ejb組件的編程限制,明白它們的重要性,并且從組件的穩(wěn)定性和可移植性利益方面考慮來遵循它們。由于這些編程限制能阻擋你使用標(biāo)準(zhǔn)的java語言的特點(diǎn),違反了這些編程限制在編譯時不會知道,并且加強(qiáng)這些限制也不是ejb容器的責(zé)任。全部這些緣由都使你應(yīng)很當(dāng)心地遵守這些編程限制,這些限制在組件的合同中已經(jīng)成為了一個條款,并且它們對于建筑牢靠的、可移植的組件是特別重要的。
2.優(yōu)化ejb
entitybean為在應(yīng)用程序和設(shè)計(jì)中描述長久化商業(yè)對象(persistentbusinessobjects)供應(yīng)了一個清楚的模型。在java對象模型中,簡潔對象通常都是以一種簡潔的方式進(jìn)展處理但是,許多商業(yè)對象所需要的事務(wù)化的長久性治理沒有得到實(shí)現(xiàn)。entitybean將長久化機(jī)制封裝在容器供應(yīng)的效勞里,并且隱蔽了全部的簡單性。entitybean允許應(yīng)用程序操縱他們就像處理一個一般的java對象應(yīng)用。除了從調(diào)用代碼中隱蔽長久化的形式和機(jī)制外,entitybean還允許ejb容器對對象的長久化進(jìn)展優(yōu)化,保證數(shù)據(jù)存儲具有開放性,敏捷性,以及可部署性。在一些基于ejb技術(shù)的工程中,廣泛的使用oo技術(shù)導(dǎo)致了對entitybean的大量使用,sun的工程師們已經(jīng)積存了許多使用entitybean的閱歷,這篇文章就具體闡述的這些卡發(fā)閱歷:
*探究各種優(yōu)化方法
*供應(yīng)性能優(yōu)化和提高適用性的法則和建議
*爭論如何避開一些教訓(xùn)。
法則1:只要可以,盡量使用cmp
cmp方式不僅削減了編碼的工作量,而且在container中以及container產(chǎn)生的數(shù)據(jù)庫訪問代碼中包括了很多優(yōu)化的可能。container可以訪問內(nèi)存緩沖中的bean,這就允許它可以監(jiān)視緩沖中的任何變化。這樣的話就在事物沒有提交之前,假如緩存的數(shù)據(jù)沒有變化就不用寫到數(shù)據(jù)庫中。就可以避開很多不必要的數(shù)據(jù)庫寫操作。另外一個優(yōu)化是在調(diào)用find方法的時候。通常狀況下find方法需要進(jìn)展以下數(shù)據(jù)庫操作:
查找數(shù)據(jù)庫中的紀(jì)錄并且獲得主鍵
將紀(jì)錄數(shù)據(jù)裝入緩存
cmp允許將這兩步操作優(yōu)化為一步就可以搞定。[詳細(xì)怎么做我也沒弄明白,原文沒有詳細(xì)闡述]
法則2:寫代碼時盡量保證對bmp和cmp都支持
很多狀況下,ejb的開發(fā)者可能無法掌握他們寫的bean怎么樣被部署,以及使用的container是不是支持cmp.
一個有效的解決方案是,將商業(yè)規(guī)律的編碼完全和長久化機(jī)制分別。再cmp類中實(shí)現(xiàn)商業(yè)規(guī)律,然后再編寫一個bmp類,用該類繼承cmp類。這樣的話,全部的商業(yè)規(guī)律都在cmp類中,而長久化機(jī)制在bmp中實(shí)現(xiàn)。[我覺得這種狀況在實(shí)際工作中很少遇到,但是解決問題的思路值得學(xué)習(xí)]
法則3:把ejbstore中的數(shù)據(jù)庫訪問減小到最少。
假如使用bmp,設(shè)置一個緩存數(shù)據(jù)轉(zhuǎn)變標(biāo)志dirty特別有用。全部轉(zhuǎn)變數(shù)據(jù)庫中底層數(shù)據(jù)的操作,都要設(shè)置dirty,而在ejbstore()中,首先檢測dirty的值,假如dirty的值沒有轉(zhuǎn)變,說明目前數(shù)據(jù)庫中的數(shù)據(jù)與緩存的全都,就不必進(jìn)展數(shù)據(jù)庫操作了,反之,就要把緩存數(shù)據(jù)寫入數(shù)據(jù)庫。
法則4:總是將從lookup和find中獲得的引用進(jìn)展緩存。(cache)
引用緩存對sessionbean和entitybean都是適用的。
通過jndilookup獲得ejb資源。比方datasource,bean的引用等等都要付出相當(dāng)大的代價。因此應(yīng)當(dāng)避開多余的lookup.可以這樣做:
將這些引用定義為實(shí)例變量。
從setentitycontext(sessionbean使用setsessioncontext)方法查找他們。setentitycontext方法對于一個bean實(shí)例只執(zhí)行一次,全部的相關(guān)引用都在這一次中進(jìn)展查找,這樣查找的代價就不是那么昂貴了。應(yīng)當(dāng)避開在其他方法中查找引用。尤其是訪問數(shù)據(jù)庫的方法:ejbload()和ejbstore(),假如在這些頻繁調(diào)用的方法中進(jìn)展datasource的查找,勢必造成時間的鋪張。
調(diào)用其他entitybean的finder方法也是一種重量級的調(diào)用。屢次調(diào)用finder()方法的代價特別高。假如這種引用不適合放在setentitycontext這樣的初始化時執(zhí)行的方法中執(zhí)行,就應(yīng)當(dāng)在適當(dāng)?shù)臅r候緩存finder的執(zhí)行結(jié)果。只是要留意的是,假如這個引用只對當(dāng)前的entity有效,你就需要在bean從緩沖池中取出來代表另外一個實(shí)體時去除掉這些引用。,這些操作應(yīng)當(dāng)在ejbactivate()中進(jìn)展。
法則5:總是使用preparestatements
這條優(yōu)化法則適用于全部訪問關(guān)系數(shù)據(jù)庫的操作。
數(shù)據(jù)庫在處理每一個sqlstatement的時候,執(zhí)行前都要對statement進(jìn)展編譯。一些數(shù)據(jù)庫具有緩存statement和statement的編譯后形式的功能。數(shù)據(jù)庫可以把新的statement和緩存中的進(jìn)展匹配。然而,假如要使用這一優(yōu)化特性,新的statement要必需和緩存中的statement完全匹配。
對于non-preparedstatement,數(shù)據(jù)和statement本身作為一個字符串傳遞,這樣由于前后調(diào)用的數(shù)據(jù)不同而不能匹配,就導(dǎo)致無法使用這種優(yōu)化。而對于preparedstatement,數(shù)據(jù)和statement是分開傳遞給數(shù)據(jù)庫的,這樣statement就可以和cache中已編譯的statement進(jìn)展匹配。statement就不必每次都進(jìn)展編譯操作。從而使用該優(yōu)化屬性。
這項(xiàng)技術(shù)在一些小型的數(shù)據(jù)庫訪問中能夠削減statement將近90%的執(zhí)行時間。
法則6:完全關(guān)閉全部的statement
在編寫bmp的數(shù)據(jù)庫訪問代碼時,記住肯定要在數(shù)據(jù)庫訪問調(diào)用之后關(guān)閉statement,由于每個翻開的statement對應(yīng)于數(shù)據(jù)庫中的一個翻開的游標(biāo)。
security
1.加密
對稱加密
(1)分組密碼
(2)流密碼
常用的對稱加密算法:
des和tripledes
astercard和visa公司于1996年公布,專家們認(rèn)為set是保證用戶與商家在電子商務(wù)與在線交易中免受哄騙的重要手段。傳統(tǒng)的信用卡交易者總在擔(dān)憂不誠懇的店員會將自己的信用卡號碼透露給他人,而在線交易也是如此,持卡者總在擔(dān)憂效勞器端的治理員會將信用卡號碼泄露出去,或者擔(dān)憂黑客會在治理員不知情的狀況下盜取信用卡號碼。事實(shí)上這些擔(dān)憂都是必要的,而set標(biāo)準(zhǔn)則可以保證用戶的信用卡號碼只傳送給信用卡公司進(jìn)展認(rèn)證,不會被系統(tǒng)治理員看到,也不會留在交易效勞器的硬盤上給黑客以可乘之機(jī)。
5.pki
pki是一種易于治理的、集中化的網(wǎng)絡(luò)安全方案。它可支持多種形式的數(shù)字認(rèn)證:數(shù)據(jù)加密、數(shù)字簽字、不行否認(rèn)、身份鑒別、密鑰治理以及穿插認(rèn)證等。pki可通過一個基于認(rèn)證的框架處理全部的數(shù)據(jù)加密和數(shù)字簽字工作。pki標(biāo)準(zhǔn)與協(xié)議的開發(fā)迄今已有15年的歷史,目前的pki已完全可以向企業(yè)網(wǎng)絡(luò)供應(yīng)有效的安全保障。
pki是一種遵循標(biāo)準(zhǔn)的密鑰治理平臺,它能夠?yàn)槿烤W(wǎng)絡(luò)應(yīng)用透亮地供應(yīng)采納加密和數(shù)字簽名等密碼效勞所必需的密鑰和證書治理。pki必需具有
1)ca、
2)證書庫、
3)密鑰備份及恢復(fù)系統(tǒng)、
4)證書作廢處理系統(tǒng)、
5)客戶端證書處理系統(tǒng)
等根本成分,構(gòu)建pki也將圍圍著這五大系統(tǒng)來構(gòu)建
一個pki由眾多部件組成,這些部件共同完成兩個主要功能:
1)為數(shù)據(jù)加密
2)創(chuàng)立數(shù)字認(rèn)證。
效勞器(即后端)產(chǎn)品是這一系統(tǒng)的核心,這些數(shù)據(jù)庫治理著數(shù)字認(rèn)證、公共密鑰及專用密鑰(分別用于數(shù)據(jù)的加密和解密)。
ca數(shù)據(jù)庫負(fù)責(zé)公布、廢除和修改x.509數(shù)字認(rèn)證信息,它裝有用戶的公共密鑰、證書有效期以及認(rèn)證功能(例如對數(shù)據(jù)的加密或?qū)?shù)字簽字的驗(yàn)證)。為了防止對數(shù)據(jù)簽字的篡改,ca在把每一數(shù)字簽字發(fā)送給發(fā)出懇求的客戶機(jī)之前,需對每一個數(shù)字簽字進(jìn)展認(rèn)證。一旦數(shù)字認(rèn)證得以創(chuàng)立,它將會被自動存儲于x.500名目中,x.500名目為樹形構(gòu)造。ldap(pleaction());
...
}
}
publicclassjaasexampleactionimplementsprivilegedaction{
publicobjectrun(){
ission
name=com.ibm.security.sample.bid
actions=create/;
permissionclassname=
com.ibm.resource.security.auth.resourcepermission
name=com.ibm.security.sample.bid
actions=read/;
permissionclassname=
com.ibm.resource.security.auth.resourcepermission
name=com.ibm.security.sample.bid
actions=..ibm.resource.security.auth.resourcepermission類愛護(hù)敏感代碼。例如,auction類擁有以下構(gòu)造函數(shù):
publicauction(){
permissionpermission=
ple.auction,..security.sample.auction,accept,this);
accesscontroller.checkpermission(permission);
//sensitivecode
this.accepted=flag;
}
publicbooleanfulfills(subjectuser,stringrelationship){
if(relationship.equalsignorecase(.resource.security.auth.policy可以用于指定另一個不同的文件名和位置。
.l文件未被修改時,上述這些才都是真的。
例如安裝
下面的安裝指導(dǎo)假設(shè)您正在使用jdk1.3并且已經(jīng)把文件解壓縮到d:jaasexample名目。通過將文件解壓縮到這個名目,您可以省去一些工作;否則您就必需使用正確的路徑名修改policy和resourcesecurity.xml策略文件。
下面是運(yùn)行該例如需要做的工作:
下載這個例如的源文件。
把jaas.jar和jaasmod.jar復(fù)制到j(luò)dkjrelibext名目(即d:jdk1.3jrelibext)。
向位于jdk的jrelibsecurity名目(即d:jdk1.3jrelibsecurity)中的java.security文件的末尾添加下面的字符串:vider=com.ibm.resource.security.auth.xmlpolicyfile。
執(zhí)行run.bat文件。
完畢語
類實(shí)例級授權(quán)把訪問掌握分別到一個通用框架(該框架使用基于全部權(quán)和特定關(guān)系的策略)中。然后治理員可以在應(yīng)用程序的生命周期內(nèi)更改這些策略。用這種方法擴(kuò)展jaas削減了您或另一個程序員必需在應(yīng)用程序生命周期內(nèi)業(yè)務(wù)規(guī)章發(fā)生更改時重寫代碼的可能性。
通過將關(guān)系字符串抽象為類可以進(jìn)一步擴(kuò)展特定關(guān)系這個概念。不調(diào)用resource實(shí)現(xiàn)類的fulfills(subjectuser,stringrelationship)方法,而只要調(diào)用relationship實(shí)現(xiàn)類中定義的新fulfills(subjectuser,resourceresource)方法。這樣就會允許很多resource實(shí)現(xiàn)類使用一樣的關(guān)系規(guī)律。
6.java的安全性
1.thesecuritymanager是一個anager(jdbc1.0)接口,j2ee組件可以獲得物理數(shù)據(jù)庫連接對象(connection)。要獲得規(guī)律(合用的)連接,j2ee組件必需使用以下這些jdbc2.0合用治理器接口:
javax.sql.connectionpooldatasource接口,該接口充當(dāng)合用的java.sql.connection對象的資源治理器連接factory。每家數(shù)據(jù)庫效勞器供給商都供應(yīng)該接口的實(shí)現(xiàn)
(例如,oracle實(shí)現(xiàn)oracle.jdbc.pool.oracleconnectionpooldatasource類)。
javax.sql.pooledconnection接口,該接口封裝到數(shù)據(jù)庫的物理連接。同樣,數(shù)據(jù)庫供給商供應(yīng)其實(shí)現(xiàn)。
對于那些接口和xa連接的每一個,都存在一個xa(x/open標(biāo)準(zhǔn))等價定義。
2.resultset
在jdbc2.0中,為了獲得一個uptatableresult,在query語句里必需包含primarykey,并且查詢的內(nèi)容里必需來自一個table
ava.sql.resultset接口中定義了三種類型的結(jié)果集
type_anager的標(biāo)準(zhǔn)。
javatransactionservice(jts)specifiestheimplementationofatransactionmanager.port.*;
publicclassmousetest
{
publicstaticvoidmain(string[]args)
{
mouseframeframe=ove(rectangle2ds)
{
if(s==null)return;
if(s==current)current=null;
squares.remove(s);
repaint();
}
privatestaticfinalintside_length=20;//正方形的邊長
privatearraylistrectangle2dsquares;//存放全部已繪制的方塊(鼠標(biāo)有效繪制路徑)
privaterectangle2dcurrent;//當(dāng)前需要繪制的方塊
privateclassmousehandlerextendsmouseadapter
{
/*
*當(dāng)鼠標(biāo)按鈕被按下時,先查找當(dāng)前點(diǎn)是否已經(jīng)包含在前期圖新內(nèi),*否,則添加至數(shù)組列表
*/
publicvoidmousepressed(mouseeventevent)
{
current=find(event.getpoint());
if(current==null)
add(event.getpoint());
}
/*
*處理鼠標(biāo)點(diǎn)擊大事,假如當(dāng)前點(diǎn)包含于圖形之中,且鼠標(biāo)連續(xù)點(diǎn)擊兩次以上,則擦除該圖形。
*/
publicvoidmouseclicked(mouseeventevent)
{
current=find(event.getpoint());
if(current!=nullevent.getclickcount()=2)
remove(current);
}
}
privateclassmousemotionhandlerimplementsmousemotionlistener
{
/*
*轉(zhuǎn)變鼠標(biāo)外形
h);*/publicvoidmousemoved(mouseeventevent){if(find(event.getpoint())==null)setcursor(cursor.getdefaultcursor());elsesetcursor(cursor.getpredefinedcursor(cursor.crosshair_cursor));}/**拖動圖形*/publicvoidmousedragged(mouseeventevent){if(current!=null){intx=event.getpoint().x;inty=event.getpoint().y;current.setframe(x-side_length/2,y-side_length/2,side_length,side_lengt
}}}}repaint();
第三篇:關(guān)于java學(xué)習(xí)的一點(diǎn)心得體會
治理科學(xué)與工程學(xué)院11信管2班孫鑫201*4548
關(guān)于java學(xué)習(xí)的一點(diǎn)心得體會
我是學(xué)信管專業(yè)的,這學(xué)期除了學(xué)習(xí)了java軟件開發(fā)綜合試驗(yàn)這門選修課外,還有自己本專業(yè)要學(xué)的java面對對象的程序設(shè)計(jì)。學(xué)習(xí)了近一學(xué)期的java課程,覺得是該總結(jié)自己的心得體會了。開頭學(xué)習(xí)任何一門課(包括java),興趣最重要。始終覺得自己在學(xué)習(xí)了計(jì)算機(jī)編程語言(也就是c語言),學(xué)到了許多東西,再學(xué)習(xí)java的話,應(yīng)當(dāng)問題不大,但在學(xué)習(xí)了幾個星期后,還是明確感到了,有點(diǎn)吃力,于是趁學(xué)校開設(shè)這門選修課,并且有自己院的教師講解,還有了上機(jī)的時機(jī),比自己自學(xué)省事多了,于是鼓足信念,開頭了漫長的java征途。
還記得我編寫的第一個程序是簡潔的輸出程序。當(dāng)時自己不是很理解為什么main方法要這樣來定義publicstaticvoidmain(string[]args),問了好多同學(xué),他們告知我的答案是一樣的“java本身要求就是這樣子的”,但我自己不甘心,就自己進(jìn)展了探究:把main改個名字運(yùn)行一下,看看報什么錯誤,然后依據(jù)出錯信息進(jìn)展分析;把main的public取掉,在試試看,報什么錯誤;static去掉還能不能運(yùn)行;不知道m(xù)ain方法是否肯定要傳一個string[]數(shù)組的,把string[]改掉,改成int[],或者string試試看;不知道是否必需寫args參數(shù)名稱的,也可以把a(bǔ)rgs改成別的名字,看看運(yùn)行結(jié)果如何。結(jié)果一個簡潔程序反復(fù)改了七八次,不斷運(yùn)行,分析運(yùn)行結(jié)果,最終就徹底明白為什么了main方法是這1
樣定義的了。接著在以后的學(xué)習(xí)中我也采納這樣的方法解決問題,卻發(fā)覺自己的速度比別人慢了好多,我就把自己的課余時間也分一局部給了java。
由于根底是最重要的,只有根底堅(jiān)固才有可能對后面的學(xué)習(xí)有更加深刻的熟悉!
學(xué)習(xí)一門新的語言,參考書是離不開的。聽專業(yè)課教師說訂的教材偏難,不適合我們初學(xué)者,于是我在圖書館借了本參考書(一本篇幅較短的入門書來學(xué)習(xí)那些最簡潔、最根本的東西,包括學(xué)習(xí)java語法等)。同時,對一個最簡潔的程序也應(yīng)當(dāng)多去調(diào)試,多想想假如改動一下會消失什么結(jié)果?為什么必需那樣寫?多去想想這些問題然后去操作,會讓你有更多的收獲。這樣反復(fù)地思索是很有用的。
在學(xué)習(xí)java的語法時,java的語法是類似c語言的,所以學(xué)習(xí)的比擬輕松。唯一需要留意的是有幾個不簡單搞清晰的關(guān)鍵字的用法,public,protected,private,static,什么時候用,為什么要用,怎么用,和同學(xué)一起爭論了好久才得以解決。
在學(xué)習(xí)java的面對對象的編程語言的特性。比方繼承,抽象類,方法的多態(tài),重載,掩蓋。對于一個沒有面對對象語言背景的人來說,我覺得這個過程需要花很長很長時間,由于學(xué)習(xí)java之前沒有c++的閱歷,只有c語言的閱歷,花了很長時間,才徹底把這些概念都搞清晰,把書上面的例子反復(fù)的揣摩,修改,嘗試,把那幾章內(nèi)容反復(fù)的看過來,看過去,看了許多遍,才徹底領(lǐng)悟了。
此外,我對于static,public,private等等一開頭都不是很懂,
都是把書上面的例子運(yùn)行勝利,然后就開頭破壞它,不斷的依據(jù)自己心里面的疑問來重新改寫程序,看看能不能運(yùn)行,運(yùn)行出來是個什么樣子,是否可以得到預(yù)期的結(jié)果。這樣雖然比擬費(fèi)時間,不過一個例子程序這樣反復(fù)破壞幾次之后。我就對這個相關(guān)的學(xué)問徹底學(xué)通了。有時候甚至有意寫一些錯誤的代碼來運(yùn)行,看看能否得到預(yù)期的運(yùn)行錯誤。這樣對于編程的把握是及其深刻的。
在學(xué)習(xí)java的過程中我得出這樣的結(jié)論:
1.學(xué)習(xí)中,要養(yǎng)成良好的習(xí)慣(寫括號時要成對,字母大小寫要區(qū)分,單詞拼寫要精確)。
2.在學(xué)習(xí)的過程中,最好不是僅僅停留在java表層,不是抄書上的例子運(yùn)行出結(jié)果就可以。要留意,即便對一個簡潔的例子也要有急躁去琢磨、調(diào)試、改動。
3.在學(xué)習(xí)的過程中肯定要動手做、試著寫代碼,而不是抱一本書看看就行。許多東西和體會必需自己動手才能真正屬于自己。
4.在java的學(xué)習(xí)過程中,可能會遇到形形色色的問題不簡單解決,應(yīng)多去專業(yè)論壇了解相關(guān)的學(xué)問,書本上的學(xué)問有限。要會從網(wǎng)上搜尋有用的信息加以整理,促進(jìn)學(xué)習(xí)的深入和學(xué)問水平的提高。
看了好多網(wǎng)上課程,說學(xué)到肯定程度要嘗試著自己做東西,但覺得自己僅僅經(jīng)過一學(xué)期的學(xué)習(xí),還遠(yuǎn)遠(yuǎn)不夠,盼望自己在以后學(xué)習(xí)中連續(xù)努力,能夠真真正正擁有一門編程語言,對自己今后的進(jìn)展起到作用。
第四篇:java學(xué)習(xí)心得
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 保傘工安全管理測試考核試卷含答案
- 聚酯薄膜拉幅工QC管理能力考核試卷含答案
- 老年梗阻性腦積水內(nèi)鏡手術(shù)的圍手術(shù)期風(fēng)險
- 2025秋季望謨縣赴省內(nèi)外高校引進(jìn)高層次人才和急需緊缺人才13人備考題庫及答案詳解(易錯題)
- 軟件開發(fā)流程優(yōu)化討論
- 深度學(xué)習(xí)模型訓(xùn)練優(yōu)化
- 五年級上冊語文《-即景》習(xí)作指導(dǎo)課教學(xué)設(shè)計(jì)
- 老年慢性阻塞性肺疾病患者新冠加強(qiáng)免疫接種方案
- 2026年及未來5年市場數(shù)據(jù)中國保險行業(yè)呼叫中心行業(yè)發(fā)展運(yùn)行現(xiàn)狀及投資戰(zhàn)略規(guī)劃報告
- 老年慢性病疼痛管理教育
- 節(jié)能技術(shù)咨詢合同范本
- 物業(yè)管理經(jīng)理培訓(xùn)課件
- 員工解除競業(yè)協(xié)議通知書
- 【語文】太原市小學(xué)一年級上冊期末試題(含答案)
- 儲能電站員工轉(zhuǎn)正述職報告
- DB3301∕T 0165-2018 城市照明設(shè)施養(yǎng)護(hù)維修服務(wù)標(biāo)準(zhǔn)
- 不銹鋼護(hù)欄施工方案范文
- 商業(yè)地產(chǎn)物業(yè)管理運(yùn)營手冊
- 百人公司年會策劃方案
- 青少年法律知識競賽試題及答案
- 焦?fàn)t安全生產(chǎn)規(guī)程講解
評論
0/150
提交評論