⑴ 少兒學編程需要注意的幾個誤區
孩子學習編程在家長中普遍存在一個誤區,就是學習編程就是要成為碼農。
學習編程並不是讓孩子將來能成為程序員,編程教育的最終目的是為了培養孩子的邏輯思維能力、實踐能力、解決問題的能力等綜合素質,即使將來孩子不做程序,也會遇到各種各樣的標准化,程序化問題~
⑵ 剛剛進入職場中的新人,有什麼樣的誤區
1. 不願意和同事溝通,不願意向同事多學習這種員工大多比較內向或者性情有點高冷,須不知三人行,必有我師。多向同事學習,互通有無,對自己以後的發展有百利而無一害。有導師制或者老員工帶,情況或許會有所改善,但如果內因沒有改變,最終效果依舊不容樂觀。
技術開發工作中遇到一些技術難題非常正常,當然獨立思考固然可貴,但是公司項目往往有一定的時間限制,優先解決問題永遠放在第一位,而不是一個人在那裡苦苦掙扎和搜索解決方案。如果時間壓力不大,多思考一下也未嘗不可。考慮到交付壓力,這個時候就需要積極和同事,技術經理溝通,尋找解決思路,通常情況下,積極的溝通好過自己的單打獨斗。也許同事或者老闆的一句話,就應了那句古詩,山重水復疑無路,柳暗花明又一村。與此同時也和同事建立了更好的友誼,在老闆心裡也留下了做事有方法的好印象。
相信職場新人如果能成功避開上面說的幾個誤區,那麼在職業發展道路上就可以少走一些彎路,少犯一些錯誤,從而更快地實現自己的小目標。
⑶ java常見誤區與細節有哪些
Java常見的30個誤區與細節!
在Java中,沒有goto語句。因為大量使用goto語句會降低程序的可讀性和可維護性,所以Java語言取消了goto的使用。同時,為了避免程序員自行使用goto所帶來的混亂,Java語言仍將goto定義為一個關鍵字,但是沒有定義任何語法,故稱為「保留字」。
1、在Java中,沒有goto語句。因為大量使用goto語句會降低程序的可讀性和可維護性,所以Java語言取消了goto的使用。同時,為了避免程序員自行使用goto所帶來的混亂,Java語言仍將goto定義為一個關鍵字,但是沒有定義任何語法,故稱為「保留字」。
2 、 true、false和null在IDE中雖然以不同的顏色顯示,但是並不是關鍵字,而是「字面常量」,就和String類型的abc一樣。
3 、 定義名稱時盡量避免使用$,因為編譯器在對.java文件進行編譯的時候,會將」$」編譯成頂層類型與底層類型的連接符。見下例:
在編譯(javac Test3.java)這段代碼的時候,編譯器會報以下錯誤:Test.java:12: 錯誤: 類重復: com.javastack.Test.Outer.Inner class Inner{ ^
4、 Unicode轉義字元處理的非常早,在解析程序之前。例如:
在程序中出現這兩行代碼編譯報錯。這兩個Unicode碼分別表示」換行」和」回車」,所以,在編譯器編譯的時候,代碼是這樣的:
5 、 Unicode碼使用16位字元編碼,在Java中用char類型來表示。現在Unicode已經擴展到一百萬個字元,超出16位限制的成為增補字元。所有增補字元都不能用字元常量來表示。
6 、 當short,byte,char參加運算時,結果為int型,而非與較高的類型相同。如果變數是byte,short,byte類型,當對其賦予編譯時期的常量,而該常量又沒有超過變數的取值范圍時,編譯器就可以進行隱式的收縮轉換。這種隱式的收縮轉換是安全的,因為該收縮轉換只適用於變數的賦值,而不適用於方法調用語句,即不適用於方法調用時的參數傳遞。(詳見java中默認類型轉換的小問題)
7 、 注意char類型,這是一個無符號類型。因此,char與short或char與byte之間的轉換必須顯示地使用類型轉換。 從byte到char的轉換為擴展收縮轉換,該轉換比較特殊,即先將byte擴展轉換到int,然後再收縮到char。
8 、 在整型數據間的擴展轉換中,如果操作數是char類型(無符號類型),則進行無符號擴展,擴展位為0.如果操作數是byte,short或int(有符號類型),則進行有符號擴展,擴展位為該變數的符號位。
9、 整型數據之間的收縮轉換,僅僅是截斷並丟棄高位,不做任何其他處理。
10、 0.1+0.2不等於0.3.System.out.println((double)0.1+(double)0.2);這條語句的輸出結果是0.30000000000000004。因為計算機使用二進制來存儲數據,而很多小數都不能夠准確地使用二進制來表示(事實上,大多數地小數都是近似的),就像使用十進制小數不能准確地表示1/3這樣地分數一樣。大多數地浮點型,在計算機中只是近似地存儲其值,而不像整型那樣准確地存儲。又例,這是一個死循環:for(float f = 10.1f;f != 11;f+=0.1f){}
11、 float類型可以保留7~8個有效數字,而double類型可以保留15~16個有效數字,因而當int類型或long類型數值多於double或float地有效數字時,該值的一些最低有效位就會丟失,從而造成精度丟失,這時,就會採用IEEE754最近舍入模式,提取與該整型值最接近的浮點值。盡管整型向浮點型的轉換屬於擴展轉換,但當數值很大或很小(絕對值很大)時,就會產生一定的精度丟失。
12、 i+++j如何計算?(這個問題在C/C++)中討論是沒有多大意義的,因為C/C++依賴於實現的硬體結構,不同的環境結果也會不同。不過在Java中,這個結果是固定的,不受其運行的硬體環境與平台的影響) 答:根據貪心規則,前置++優於後置++,結果是(i++)+j
13、 i++和++i其實都是先+1,再賦值。++i,沒什麼好說的;i++,以j=i++;為例在底層的實現是:temp = i;i = i + 1; j = temp; 所以,i=15;i=i++;這個表達式的結果是15.(因為加一之後又執行了一次賦值,從16變回15)
14、 +0與-0在浮點類型變數存儲中,符號位是不同的。當-0和+0參與浮點類型的相關運算(例如相除與求余運算)時,可以產生不同的結果。
15、 浮點的相除與求余運算不同與整型的相除與求余運算,當除數為0時,浮點運算不會產生ArithmeticException異常。
16、 String類是非可變類,其對象一旦創建,就不可銷毀。String類那些看似修改字元序列的方法實際上都是返回新創建的String對象,而不是修改自身對象。
17、 由於String對象是不可改變的,因此具有線程安全性,可以自由地實現共享。
18 、 在String類內部,是使用一個字元數組(char[])來維護字元序列的。String的最大長度也就是字元數組的最大長度,理論上最大長度為int類型的最大值,即2147483647.在實際中,一般可獲取的最大值小於理論最大值。
19 、 main()方法在表現行為上,與其他方法基本相同,可以重載,由其他方法調用,繼承,隱藏,也可以拋出異常,帶有類型參數。我們也可以在一個程序中通過反射來調用main方法(或其他方法)。
20、 當兩個或多個方法的名稱相同,而參數列表不同時,這幾個方法就構成了重載。重載方法可以根據參數列表對應的類型與參數的個數來區分,但是,參數的名稱、方法的返回類型,方法的異常列表與類型參數不能作為區分重載方法的條件。
21 、究竟選擇哪個方法調用,順序是這樣的:
在第一階段,自動裝箱(拆箱)與可變參數不予考慮,搜索對應形參類型可以匹配實參類型並且形參個數與實參個數相同的方法;
如果在步驟一不存在符合條件的方法,在第二階段,自動裝箱與拆箱將會執行。
如果在步驟二中不存在符合條件的方法,在第三階段,可變參數的方法將會考慮。
如果3個階段都沒有搜索到符合條件的方法,將會產生編譯錯誤。如果如何條件的方法多於一個,將會選擇最明確的方法。最明確的方法定義為:如果A方法的形參列表類型對應的都可以賦值給B方法的形參列表類型,則A方法比B方法明確。如果無法選出最明確的方法,則會產生編譯錯誤。
22 、重寫和隱藏的本質區別是:重寫是動態綁定的,根據運行時引用所指向對象的實際類型來決定調用相關類的成員。而隱藏是靜態綁定的,根據編譯時引用的靜態類型來決定調用的相關成員。換句話說,如果子類重寫了父類的方法,當父類的引用指向子類對象時,通過父類的引用調用的是子類方法。如果子類隱藏了父類的方法(成員變數),通過父類的引用調用的仍是父類的方法(成員變數)。
23 、 構造器是遞歸調用的,子類的構造器會調用父類的構造器,直到調用Object類的構造器為止。
24 、構造器沒有創建對象,構造器是使用new創建對象時由系統調用的,用來初始化類的實例成員。從順序上說,先是創建對象,然後再調用構造器的。(構造器並沒有產生新的對象)
25 、 默認的構造器不為空,該構造器會調用父類的無參構造器,並可能執行實例成員變數的初始化。所以,默認的構造器至少調用了父類的構造器,它做的工作還可能更多,包括實例變數聲明初始化與實例初始化塊,都是在構造器中執行的。
26 、 當==或!=運算符的兩個操作數的類型一個是基本數據類型,另一個是包裝類引用類型時,將引用類型拆箱轉換為基本數據類型,然後比較兩個基本數據類型的值是否相等。
27、在Java中,數組也是類,數組聲明的引用變數指向數組類型的對象。所有的數組都繼承Object類,並且實現了java.lang.Cloneable與java.io.Serializable介面。數組的成員包括變數length(隱式存在)與從Object類繼承的成員。Cloneable與Serializable是兩個標記的介面,這兩個介面中沒有顯式聲明任何成員。
28 、介面是完全抽象的設計,不能實例化。使A用new方式創建的借口類型,實際上是創建了一個匿名類,該匿名類實現了介面類型。
29 、果兩個介面聲明了相同的變數x,則當某介面同時繼承這兩個介面,或者某類同時實現這兩個介面時,通過簡單名稱訪問會產生編譯錯誤。
30、 如果兩個介面中聲明了相同名稱的方法m,並且兩個方法沒有構成重載,則當某介面能夠同時繼承這兩個介面,或者某類能夠同時繼承這兩個介面時,必須存在一種方法簽名,使得該簽名同時為兩個m方法簽名的子簽名,並且在方法的返回類型上,必須存在一種類型,使得該類型同時為兩個m方法返回類型的可替換類型。
希望可以幫到你,謝謝!
⑷ 程序員,在開發的過程中應該注意哪些安全方面的問題
可忽視的誤區 企業的軟體開發能力取決於該企業的軟體過程能力。如果一個企業軟體過程能力越成熟,那麼該企業的軟體開發能力就越有保證。大量的實踐經驗表明,在體現企業軟體開發能力的因素中,技術或工具並不是第一位的。其實,許多問題不是出在不懂怎麼做,而是沒有安排做,做的次序不對,或不知道怎樣做得更好。 目前,比照軟體過程管理模型(如圖一),中國的軟體企業中還存在各種影響過程改進的因素和誤區,主要表現在個體和組織兩個方面。 在組織方面,首先,中國軟體企業實施CMM往往缺乏高級管理者的支持。其次,沒有足夠的SEPG資源。從很多情況考慮,SEPG成員要比其他CMM相關組綜合素質高一個層次,CMM相關組的管理素質需要比技術類組高一個層次,才能順利開展工作。第三,沒有合適的先行者或者沒有適當全局觀的項目經理配合。被組織選為先行者的人員經常說自己沒有時間,由於這些人都是從各個項目中抽出來的,一般人很難有足夠的權力讓他們為配合CMM做工作。最後,軟體組織缺乏足夠詳細的項目計劃和監督調整機制。 在個體方面,首先,手工作坊式的個人英雄主義情結成為實施CMM的制約。其次,某些軟體開發人員錯誤地認為過程管理會影響或壓抑專業人員的創造性,其實這是不清楚過程的定義造成的。第三,由於軟體項目的成功更多地依賴於少數人員的傑出技術能力和項目管理能力,成功項目的經驗不能得到最大限度的繼承,軟體生產的可重復性相對比較差。最後,軟體企業人員變更相對頻繁也增加了實施CMM的難度。 「三七」法則 在過程改進總體建議方面,應該從三個方面做准備,分七步走。 首先,在組織方面的准備上,除了要求高層經理出資支持CMM改善軟體過程,委託具有管理職責的人員負責CMM實施之外,須成立軟體工程過程組(SEPG),研究CMM、編寫/修改必要的文檔並推廣文檔;成立軟體質量保證組(SQAG),研究軟體質量保證技術及過程,編寫/修改必要的SQA文檔並推廣已編寫的文檔,測量和分析項目進展情況,反饋項目過程狀態,准備和評審過程、計劃和標准,審計指定的軟體工作產品以檢驗其遵從性,審計軟體工作過程的符合性;成立軟體配置管理組(SCMG),研究軟體配置管理技術及過程,編寫/修改必要的SCM文檔並推廣已編寫的文檔,建立必要的工具支持。 在知識准備方面,要加強培訓工作,建立內部過程評估隊伍和龐大的過程改善隊伍。對各角色人員進行專項培訓,普遍開展軟體工程基礎及CMM的培訓,使每個崗位的人員都具備過程改進的意識,並掌握所必需的過程改進知識和技能。此外,要重視對軟體工程的研究,包括方法、工具和過程,加速培養過程改進的骨幹隊伍。 在能力准備方面,建立有效的軟體項目管理,文檔化且遵循軟體項目管理過程,在建立管理過程中,使用組織的方針來指導項目,建立基本軟體工作產品完成准則和檢查單,並迅速實施,然後根據反饋意見及時修改。堅持適當的監控機制,例如對項目進度進行跟蹤而建立的例會制度,制度化的日報和周報活動。做好實際數據收集、測量與分析工作等。重復成功的以前項目的開發經驗。 改進過程總體可以分為以下七個步驟。 確定目標:確定在一段時間內達到的改進等級。 狀態診斷:把過程改進要達到的狀態與目前的狀態作比較,找出存在的差距。 制定計劃:「凡事有計劃,按計劃辦」不僅是CMM強調的,也是軟體開發過程中應該注意的。 規程制定:過程改進的一個重要的地方就是「事事有規程,時時有記錄」,這樣,即使關鍵人走了,原來的事也能繼續而不致產生過多的停頓。 過程試點:制定了規程後,要對行動計劃按執行過程的情況進行適當調整。其中,尤其要注重評審和驗證,實現定期監控,注意採集度量數據。 反饋修正:總結過程試點的經驗,修訂規程。 過程推廣:擴大應用范圍。 軟體過程改進實施步驟 公司的過程改進活動也是一個項目,並且是很大的項目,涉及的人員、技術和資源都很多,還要平衡現有產品或項目的進度等。同時,它也是一個不斷往復,螺旋上升的一個過程。 第一個步驟為高級經理下定決心,提供足夠的資源來主持並完成前期的准備工作,這個階段核心是評價SEPG組長的資格和資質,還包括評估培訓、購買工具的預算及相應資金能否及時到位。 無論是軟體商業化的過程或CMM實施的過程之中,建立規范化的易於操作的軟體開發行為規范都是首先要做的工作。但是,切記,編制規范的時間一定不能長,以10到12個工作日為宜,文檔不宜過多,以5~6個規程為好(對應5個或6個關鍵過程域),這是第二個關鍵階段。評價標准可以是SEPG組長能夠順利、流暢地講解其制定的規程。在規程編制階段必須有老闆或常務副總直接領導CMM工作。但是一定要記住,制定的過程要遵從「從實踐中來,到實踐中去」,同項目經理、有經驗的開發人員研究、討論,從而使SEPG組長能夠及時反映工作中的問題,並且問題能夠得到及時解決。 第三個步驟是制定並發布公司的評估方針和方案,包括開發體系重組過程中的激勵措施,中層在此階段必須介入,這關系著過程改進的結果。SEPG和CMM實施的周例會,必須有高級經理參加,要有記錄或錄音作為證據,是考核的一個指標。 除此之外,對於還沒有進行基於CMM改進的企業,還要重視設計復查、代碼復查以及測試工作 。很多程序員習慣於「只做不想」這樣一種工作方式,他們更關心每天可以寫多少行代碼,完成幾個模塊,在這種態度下,他們都很不願意復查自己的工作,而習慣於在軟體測試階段把隱藏的錯誤改正過來。CMM實施過程,就是要通過各種復查,溝通信息,及早發現並更改問題。 在實施了初始的過程或技術部署後,培訓成了主要問題。但人員變動時,附加培訓的必要可能沒被認識到,管理技能的培訓尤為重要。而對於那些由於過硬的技術而被提升到管理職位的人員,需要接受一整套新技能的培訓,包括人際關系技能。 項目經理在整個過程改進中(尤其是CMM二級)的工作量大約要佔到整個總量的一半到四分之三,在評估訪談時也佔有了舉足輕重的地位。有些項目經理認為自己心裡有一套計劃,只要按計劃進行就可以按時保質完成項目,但事實並非如此,在項目組之間的協調問題上,高層經理的作用是非常明顯的。 試點或模擬項目可以很小,哪怕只有兩個人,或者聯合SEPG進行指導全部公司的模擬項目,這是縮短試驗的最好途徑。先組織配置管理活動的培訓或學習,配置管理活動和質量保證活動在此期間可以得到很好的練習。 CMM為軟體企業的過程能力提供了一個階梯式的改進框架,它基於過去所有軟體工程過程改進的成果,吸取了以往軟體工程的經驗教訓,提供了一個基於過程改進的框架; 它指明了一個軟體組織在軟體開發方面需要管理哪些主要工作、這些工作之間的關系、以及以怎樣的先後次序,一步一步地做好這些工作而使軟體組織走向成熟。 但是由於CMM中不研究所有軟體過程和質量改進問題,也未提供有關實現子過程域所需要的具體知識和技能,因此要進行個體軟體過程PSP的實踐活動,以填補這一空白,並優化過程改進途徑。
⑸ 程序代碼優化的漏洞誤區
最近很多人問Keith「SEO需要學會做網站嗎?」,同時身邊也有幾個好友去學習PHP代碼去了。有時候Keith覺得他們可能會走入一個誤區,今天Keith就來具體談談作為SEO到底該不該學會做網站?如果要做,需要做到一個什麼程度。
參加過系統SEO培訓的朋友都知道SEO課程需要講到HTML以及CSS的一些基礎知識,很多朋友學到這里就暈頭了,說實話編程開發這東西不是一般人能 不暈乎的。很多人覺得難、會放棄,外加自己學到點三腳貓SEO功夫弄點文字+外鏈就做排名了,每天重復干著苦逼的事情。時間久了就徹底對SEO不信任了。
回到正題,我們來說說SEO與代碼之間的關系。
SEO和代碼的關系:
從廣義上來講SEO是屬於推廣網站,編程開發做網站屬於建站。兩者表面上看不相關,目前針對中小型網站的網站運營模式也不相關。因為大多數企業的網站找 建站公司建設完成過後就交給聘請的SEO人員進行管理了。而很多SEO人員只會點SEO基礎,寫點文章發發外鏈,當一個「超級」編輯。其實SEO會貫穿整 個網站建設+運營的過程,從網站打算建站到後續的網路營銷推廣,SEO都需要參與其中負責一塊。那麼從建站方面來說SEO會負責什麼呢?1.HTML的代 碼優化。 2.鏈接布局 3.網站布局 4.URL布局 5.相關技術 等等,只有這些和建站開發人員很好的溝通,做錯來的網站才可能是營銷型的經典網站。
以上建站過程中需要SEO參與討論的問題其實都是建站開發 程序員該考慮到的問題,如果中國的程序員在建站過程中一切按照W3C去寫HTML 與CSS,那麼HTML 代碼上面SEO參與的相對來說算是比較少的。但是可悲的是,中國程序員很少嚴格按照規范去做的。所以建站開發過程很多需要SEO去參與並集合SEO需要優 化的地方給予優化。
想必很多朋友都遇到過這樣的網站,瀏覽器訪問可以看見網站內容很豐富,但是一看網路快照只有框架,沒有任何文字。這種就是 開發程序員亂用技術(AJAX)的後果,雖然從技術上考慮這樣沒的問題。但是從優化和該技術實現的最終目的來看,這是程序員自己不按照規范處理的問題。
而對於一個程序員來說,他們要研究的是技術而並非網站運營問題。大公司技術部門和推光營銷部門分工明細,各種環節都有人監控並把握。對於小公司來說或許就一個推廣部門,或許就一個不懂SEO推廣的技術與一個苦逼SEO。
對於這類公司或者個人來說自己了解HTML,了解代碼優化給予SEO的幫助以及怎麼處理,怎麼優化HTML 和一些常見誤區上面的技術問題是一個很關鍵的問題。只有自己了解並知道怎麼優化HTML才有可能和技術合作並指導他按照自己的優化方式執行下去,為自己優 化網站起到推動作用。
我們可以想想如果你不懂代碼優化、不懂HTML ,只知道寫文章發外鏈。時間長了網路依然沒有收錄,這時候你就會很迷茫。連個收錄都沒的或者收錄甚少,會嚴重打擊你的積極性。可能這些問題就是因為程序員 開發不當亂用技術造成的,而你如果不懂技術,你要做的就是遇到一個牛逼的程序員。要不然你就得懂,並指導他操作。並不要求你去處理技術上的東西。
SEO需要自己會做網站嗎?
做SEO並不是一定要自己會做網站,原因很簡單,SEO操作的僅僅的了解什麼技術不能幹什麼?如 目前重要信息不能放在FALSH、JS、iFROM 、AJAX裡面。並不是喊你去學會做FASLH。網站建站和SEO名義上沒什麼關聯。SEO涉及到的只有用「哪個技術」問題完成什麼功能和HTML問題。 其他優化問題其實應該說是程序員自身該考慮的問題,而並非SEO需要協助程序員完成的。如:代碼執行效率、代碼安全、易於維護等等。
SEO不 需要會用高級代碼語言建站。如PHP、C#.NET、ASP、Java等等。但是你得了解整個網站構成和各種語言的簡介,以及會下載開源程序如織夢快速完 成一個平台的搭建。如果你採用虛擬主機,你得弄清楚虛擬主機控制面板上面的所有功能,都幹嘛的。如404,301,默認首頁設置,域名綁定與解析、網站編 碼問題、目錄許可權等。如你使用的Windows伺服器至少得了解IIS的所有需要用到的功能吧。
SEO需要了解並熟悉HTML:
作為SEO需要了解並熟悉HTML以及CSS的原理以及能看懂並簡單修改。再者就是需要了解網站伺服器執行原理,客戶端瀏覽器執行原理以及瀏覽器渲染載入 頁面元素的原理。只有明白這些,你才能更好的優化你的網站。HTML和CSS並不難,只要肯下功夫認真去學習兩天即可搞定。很多人不懂,看著代碼暈乎不是 因為他比別人笨而是因為他心裡懦弱了。
⑹ 程序員不注重衣著打扮有什麼不好
個人認為不管是不是程序員,都應該注重個人的衣著打扮,可能是因為以前的程序員對於衣著的不重視導致人們對於程序員的打扮有了誤區。
我認為程序員還是應該注重自己的打扮的。畢竟作為一個個體,我們應該對自己的身份有一個定位,程序員也需要面試的,在面試過程中,如果程序員衣冠不整,給領導的第一印象就不好,對於職業的發展也是沒有好處的。
作為一名程序員,在工作的時候可以不必選擇過於花哨的衣服,一些簡單的黑白搭配就已經很好了,嘗試不同的風格。
⑺ 在手機軟體開發的過程中如何去避免開發誤區
1、App開發需分工明確
我們都知道,一家手機app軟體開發公司必備的工作人員除了程 序員之外,還有app ui 設計師、產品經理、策劃師、測試人員、app推廣人員等。也就說,開發一款手機app不是程序員獨立完成的,是需要每個環節的工作人員一起,分工合作,一起努力的結果。所以,一個app的開發需分工明確,各司其職。
2、明確手機app開發流程
任何一件事情的完滿完成不僅要決策者的周全考慮,還需要執行者按照預定的套路和流程去一步步地完成預定的事項。手機端app開發也是同樣的道理,切忌在流程圖沒有製作出來之前就開始製作app。App開發流程圖的製作是為了確保每個環節的順利完成,也是按照一定的邏輯確定的,有利於簡化開發者工作事項。
3、手機app製作盡量保證用戶體驗的完美性
雖然說,事情不可能十全十美,但是可以盡zui大的努力接近完美的狀態。手機app開發要不斷地提高用戶體驗,增強用戶對app軟體的粘度。這方面主要從細節做起,如app不要在不該使用動畫的地方使用,影響用戶空等的時間和app載入的速度;其次,由於app應用是在手機端使用的,手機界面有限,app界面的文字要表意明確,限制合理的文字長度;zui後,移動app的菜單開發避免層次太深、用戶引導項太亂等。
以上幾點中揚科技小編關於手機app開發可以避免開發的過程中掉進「坑」里,是app開發者們都需要了解的事項。
⑻ Java常見誤區與細節有哪些
Java
1 、在Java中,沒有goto語句。因為大量使用goto語句會降低程序的可讀性和可維護性,所以Java語言取消了goto的使用。同時,為了避免程序員自行使用goto所帶來的混亂,Java語言仍將goto定義為一個關鍵字,但是沒有定義任何語法,故稱為「保留字」。
2、true、false和null在IDE中雖然以不同的顏色顯示,但是並不是關鍵字,而是「字面常量」,就和String類型的abc一樣。
3、Unicode碼使用16位字元編碼,在Java中用char類型來表示。現在Unicode已經擴展到一百萬個字元,超出16位限制的成為增補字元。所有增補字元都不能用字元常量來表示。
4、當short,byte,char參加運算時,結果為int型,而非與較高的類型相同。如果變數是byte,short,byte類型,當對其賦予編譯時期的常量,而該常量又沒有超過變數的取值范圍時,編譯器就可以進行隱式的收縮轉換。這種隱式的收縮轉換是安全的,因為該收縮轉換只適用於變數的賦值,而不適用於方法調用語句,既不適用於方法調用時的參數傳遞。(詳見java中默認類型轉換的小問題)
5、注意char類型,這是一個無符號類型。因此,char與short或char與byte之間的轉換必須顯示地使用類型轉換。 從byte到char的轉換為擴展收縮轉換,該轉換比較特殊,即先將byte擴展轉換到int,然後再收縮到char。
6、在整型數據間的擴展轉換中,如果操作數是char類型(無符號類型),則進行無符號擴展,擴展位為0.如果操作數是byte,short或int(有符號類型),則進行有符號擴展,擴展位為該變數的符號位。
希望以上的回答對你有所幫助。
⑼ 程序員是不是只能吃青春飯
很多計算機相關專業的畢業生在擇業時,不知道是受到什麼因素的影響,對於程序員這個職業,普遍存在一個認識上的錯誤,他們認為程序員的「職業生涯」很短暫,吃的是青春飯,等年齡大了,如果不轉行,就沒用了,沒有企業要了,生存都存在問題了。
還有很多人認為程序員這個職業眼前雖然高薪,但是卻是以犧牲身體、時間換來的,經常還要加班,「享受」非人的待遇,最後還落下一身職業病,例如:頸椎病、腰椎間盤突出、高度近視等,所以他們認為這個職業盡管眼前光明,但是沒有什麼前途,可事實絕非如此,這是對程序員這個職業的一種誤解。
誤區:軟體開發職業是青春飯
之所以出現「程序員是吃青春飯的」這一觀點,可能是因為很多人認為國內程序員的工作雖然高薪,但確實很累,需要耗費大量的時間和精力,只有年輕人才頂得住。無法否認,就國內的軟體行業現狀來說,程序員工作比較累的現象確實存在,但是編程序只有年輕人才能做得了的說法,卻是錯誤的認識。
首先,國內的軟體開發管理存在不規范的現象,作坊式的個人行為很嚴重,互相配合、協同開發的效率很低,分工不明確,一個人要做好幾個人的事;
其次,客戶需求不明確,很多客戶自己企業的管理都很不規范,自己都搞不清楚自己的生產流程,要用計算機進行管理是行不通的;
第三,軟體開發市場競爭激烈,有些公司為了獲得訂單,用戶要求什麼就答應什麼,結果就苦了程序員。隨著國內軟體開發市場和用戶市場的逐漸成熟,以及軟體規模的擴大,程序員的辛苦會逐漸降低。
而隨著技術能力和工作經驗的增加,程序員可以向軟體設計師、系統分析員、項目主管、項目經理、CIO過渡。中國的軟體產業剛剛開始,不但需要大量的程序 員,而且逐漸會需要更多的設計分析、管理人員。當然,准程序員們目前首先要做好的是學好功課,然後去做程序員,做上幾年程序員以後,再逐步向上發展。
還有一個問題:工作很辛苦。我鄭重地告訴你:沒有不辛苦的工作!關鍵是怎樣把工作轉化為一種享受,讓自己的心情快樂起來。
針對軟體開發職業是青春飯這個觀點,我們來做一個誤區分析:
誤區01年長程序員要求的薪酬一般要比年輕程序員高很多,相比之下年輕的程序員更能受到企業的青睞。
其實,相比年輕程序員,年長程序員更有競爭力,因為年長程序員具備豐富的項目經驗,之所以薪酬比年輕程序員高很多,有它的合理性與必然性。雖然年輕的程序 員薪水相對比較少,但是他們一般沒有經受過失敗的教訓,對於項目的認知與把握普遍不如年長的程序員。很多項目需要有激情的年輕人,同時也需要經驗豐富的年 長者進行架構、技術指導,因此給予年長者高薪也是必須的,因為他們的價值完全能夠匹配他們拿到的薪水。
誤區02年長程序員缺少靈活性,缺乏學習新知識的能力與動力,做事比較古板。
年長程序員的閱歷較年輕的程序員更深、更廣,越是有經驗的程序員越能夠更迅速、更深度地遷移到新的技術、框架和系統里,其中很多深刻的見解並不是新人可以擁有的。況且,由這些思想儲備來提升的生產效率,並不是能用什麼方法直接測量到。
誤區03年長程序員不願意去干那些很辛苦的實際開發工作,編程水平一般,只會指手劃腳。
沒有誰能夠保證年長的程序員就不用加班,年輕的程序員就一定經常加班。隨 著人生閱歷的增加,年長的程序員相比較年輕的程序員,更不願意加班加點辛苦地工作,畢竟他們有了家庭,需要考慮的事情更多了,他們知道只有工作效率有問題 才會將自己推到每周工作80小時的處境。很多有家室的程序員都能有效地管理自己的個人時間,否則他立刻會淹沒在各種工作之中無法抽身。而當企業需要他們加 班的時候,年長的程序員也會義無反顧地加班,絲毫不遜色於年輕的程序員。
誤區04年長程序員沒有年輕程序員腦瓜靈活、思維敏捷。
最後,由於生理特性,年長者在智力方面確實不如年輕人了,年長的程序員比年輕的程序員的反應速度也相對慢一些,但正確的判斷來自於經驗,經驗來自於常年累 月的積淀,年長的程序員見識過、經歷過的成功、失敗的案例都比年輕人多得多,經驗豐富的程序員有大量的案例可以拿來作為借鑒和參考,而年輕的程序員初出茅 廬,很難做到這一點,即使可能會有一些很好的新觀點,但通常是沒有經過測試和驗證的,很難付諸實踐。
每個人都年輕過,也有年老的時候,而年輕不是壞事,年老也不是所有都好,重要的是,肚子里沒有真材實料的程序員在哪裡都很難有發展前景,有實力的程序員,無論是年輕還是年老,在哪裡都是香餑餑。所以程序員這個職業不僅不是吃「青春飯」的,而且這個職業還會讓人永葆青春,充滿活力。