第一篇:java程序員必上的開發(fā)者服務平臺DevStore
程序員必上的開發(fā)者服務平臺 —— DevStore
Andriod是什么?
首先,就像Android開源和兼容性技術負責人Dan Morrill在Android開發(fā)手冊兼容性部分所解釋的,“Android并不是傳統(tǒng)的Linux風格的一個規(guī)范或分發(fā)版本,也不是一系列可重用的組件集成,Android是一個用于連接設備的軟件塊?!?/p>
Linux:
所有東西的底層是一個穩(wěn)定的保持更新的Linux內(nèi)核(我現(xiàn)在用的Nexus手機所用的就是2.6.32版的內(nèi)核),以及我們精心打造的能源管理組件;當然還有將它們整合至上層Linux代碼的擴展和公共組件。Dalvik:
Android另一個重要的部分,包括虛擬機和一組重要的運行環(huán)境。它的設計非常巧妙,是個很好的一個手機終端的底層應用。代碼如何生成?
Dalvik虛擬機只執(zhí)行.dex的可執(zhí)行文件。當Java程序通過編譯,最后還需要通過SDK中的工具轉(zhuǎn)化成.dex格式才能在虛擬機上執(zhí)行。
我需要強調(diào)的是,Android應用本身就可視作可在平臺上運行并調(diào)用APIs的代碼,所以對代碼如何生成不需特別看重。特別的Apps:
在圖中有些基于Dalvik虛擬機的Apps看起來像是Android的一部分,其實是由Google提供,這些應用包括Dialer、Contact、Calendar、Gmail和Chat等。它們中的絕大部分是開源并可復用的。只有少部分例外,比如Google Maps和Android Market.開源那些事: 在下面的圖中,綠色的大部分組件是基于Apache許可證開源,其余基于GPL、LGPL和BSD。
Android框架
在Android開發(fā)者網(wǎng)(developer.android.com)上已有不少篇幅來幫助你使用它,在此就不再累述。
標準庫
在這里“標準”是指“開發(fā)者在開源環(huán)境中一般可以使用的”。App里面是什么
一個Android App包含在一個我們稱之為APK的壓縮文件夾中,APK并沒有什么可說的,需要注意的是Android Manifest——介于App和Android System的接口。
其他
大多數(shù)應用是基于Dalvik的,我指的是除了游戲之外的應用。游戲開發(fā)者通常希望用C/C++來編寫,排斥使用虛擬機,所以他們可以通過Andriod NDK來開發(fā)。(編譯/楊東杰)
第二篇:java程序員必讀書
Java程序員必讀書
對程序員來說,最痛苦的事情莫過于可以選擇的范圍太廣,可以讀的書太多,往往容易無所適從。我想就我自己讀過的技術書籍中挑選出來一些,按照學習的先后順序,推薦給大家,特別是那些想不斷提高自己技術水平的Java程序員們。
一、Java編程入門類
1、《Java編程思想》
2、《Agile Java》中文版
二、Java編程進階類
1、《重構(gòu) 改善既有代碼的設計》
這本書名氣很大,不用多介紹,可以在閑暇的時候多翻翻,多和自己的實踐相互印證。這本書對產(chǎn)生影響是潛移默化的。
2、《測試驅(qū)動開發(fā) by Example》
本書最大特點是很薄,看起來沒有什么負擔。可以找一個周末的下午,一邊看,一邊照做,一個下午就把書看完,這本書的所有例子跑完了。這本書的作用是通過實戰(zhàn)讓你培養(yǎng)TDD的思路。
三、Java架構(gòu)師之路
到這個階段,應該已經(jīng)非常嫻熟的運用Java編程,而且有了一個良好的編程思路和習慣了,但是可能還缺乏對應用軟件整體架構(gòu)的把握,現(xiàn)在就是邁向架構(gòu)師的第一步。
1、《Expert One-on-One J2EE Design and Development》
這本書是Rod Johnson的成名著作,非常經(jīng)典,從這本書中的代
碼誕生了springframework。但是好像這本書沒有中譯本。
2、《Expert One-on-One J2EE Development without EJB》
這本書由gigix組織翻譯,多位業(yè)界專家參與,雖然署名譯者是JavaEye,其實JavaEye出力不多,實在是忝居譯者之名。
3、《企業(yè)應用架構(gòu)模式》
4、《敏捷軟件開發(fā)原則、模式與實踐》
Uncle Bob的名著,敏捷的經(jīng)典名著,這本書比較特別,與其說是講軟件開發(fā)過程的書,不如說講軟件架構(gòu)的書,本書用了很大篇幅講各種面向?qū)ο筌浖_發(fā)的各種模式,個人以為看了這本書,就不必看GoF的《設計模式》了。
四、軟件開發(fā)過程
了解軟件開發(fā)過程不單純是提高程序員個人的良好編程習慣,也是增強團隊協(xié)作的基礎。
1、《UML精粹》
2、《解析極限編程 擁抱變化》XP
這是Kent Beck名著的第二版,中英文對照。沒什么好說的,必讀書籍。
3、《統(tǒng)一軟件開發(fā)過程》UP4、《敏捷建模》AM
五、軟件項目管理
如果突然被領導提拔為項目經(jīng)理,而完全沒有項目管理經(jīng)驗,肯定會心里沒底;如果覺得自己管理項目不善,很想改善項目管理能力,那么去考PMP肯定是遠水不解近渴的。
1、《快速軟件開發(fā)》
第三篇:Java程序員必知的10個調(diào)試技巧
調(diào)試不僅可以查找到應用程序缺陷所在,還可以解決缺陷。對于Java程序員來說,他們不僅要學會如何在Eclipse里面開發(fā)像樣的程序,更需要學會如何調(diào)試程序。武漢北大青鳥光谷校區(qū)Java專業(yè)老師分享Java程序員必知的10個調(diào)試技巧----
1.條件斷點
如果你不知道如何添加斷點,只需點擊左邊面板(行號前面)斷點即被創(chuàng)建。在調(diào)試界面中,“斷點”視圖會把所有被創(chuàng)建的斷點列出來。我們可以給它加一個布爾條件,也就是說,該斷點會被激活并且如果布爾條件為真,就會執(zhí)行該斷點,否則將會跳過往下執(zhí)行。
2.異常斷點
在斷點視圖中,有一個J!標記按鈕!我們可以使用該按鈕來添加一個Java異常斷點。例如,我們想讓程序在遇到空指針異常(NullPointerException)時,仍然能繼續(xù)調(diào)試,那么我們可以使用該按鈕來添加一個異常斷點!
3.監(jiān)視點
這是一個非常好的功能,當選定的屬性訪問或修改程序時,程序會停止執(zhí)行并允許進行調(diào)試。在Outline視圖中選擇一個類變量并從上下文菜單中選擇切換監(jiān)視點,屬性監(jiān)視點將會被創(chuàng)建,在斷點(Breakpoints)視圖中會把所有監(jiān)視點用列表的形式顯示出來。
4.評估/檢查
按Ctrl+Shift+D或者Ctrl+Shift+I來顯示選定變量或者表達式的值。我們也可以給一個變量或表達式添加永久觀察點,當程序在調(diào)試時,這些觀察點就會在表達式視圖(Expression view)中顯示出來。
5.修改變量值
在調(diào)試過程中,我們可以修改變量值。先選好一個變量然后進入變量視圖(Variables view),根據(jù)變量類型在其對應的Value列里輸入值即可。
6.在Main函數(shù)里面停止執(zhí)行
在運行/調(diào)試設置中,編輯配置對話框中有“Main”這個選項卡,我們可以勾選“Stop in main”這個復選框。如果選中,那么在調(diào)試一個基于main方法的Java程序時,程序會在main方法第一行位置便停止執(zhí)行。
7.環(huán)境變量
并不是在系統(tǒng)屬性中添加環(huán)境變量,我們可以在編輯配置對話框中很方便地進行添加。
8.Drop to Frame
調(diào)試期間,可以重新跳到調(diào)用堆??蚣艿拈_始處執(zhí)行,并且變量值也會回到最初。根據(jù)回檔調(diào)整堆棧的深度,這個功能的主要用途是所有變量狀態(tài)可以快速回到方法開始執(zhí)行時候的樣子,然后你可以重新進行一遍一遍執(zhí)行,這樣就可以在你關注的地方進行多次調(diào)試,但是在執(zhí)行過程中也會產(chǎn)生一些副作用,比如插入到數(shù)據(jù)庫里面的數(shù)據(jù)是無法刪除的!
9.分布過濾
當我們進入(F5)方法的時候,我們還可以訪問其外部庫(比如java.*),我們可能不需要這個庫,就可以在Perference選項卡頁面添加一個過濾器來排除這個包。
10.進入、跳出和返回
在調(diào)試過程中,這些是必須要了解(最好掌握)的東西:
F5——進入:移動到下一個步驟,如果當前行有一個方法調(diào)用,該控件將會跳轉(zhuǎn)到被調(diào)用方法的第一行執(zhí)行。
F6——跳出:移動到下一行。如果在當前行有方法調(diào)用,那么會直接移動到下一行執(zhí)行。不會進入被調(diào)用方法體里面。
F7——返回:從當前方法中跳出,繼續(xù)往下執(zhí)行。
F8——移動到下一個斷點處執(zhí)行。
在本文中使用的是Eclipse Juno版(Eclipse 4.2),但上面介紹的調(diào)試方法基本都是通用的。在這里給大家提3點建議----不要使用System.out.println作為調(diào)試工具;把所有涉及到的組件日志級別激活并使用;使用日志分析器來讀取日志。
第四篇:Java程序員必知的8大排序
Java程序員必知的8大排序
1,直接插入排序
(1)基本思想:在要排序的一組數(shù)中,假設前面(n-1)[n>=2] 個數(shù)已經(jīng)是排 好順序的,現(xiàn)在要把第n個數(shù)插到前面的有序數(shù)中,使得這n個數(shù) 也是排好順序的。如此反復循環(huán),直到全部排好順序。
(2)用java實現(xiàn)
?
package com.njue;
?
? public class insertSort {
? public insertSort(){
?
inta[]={49,38,65,97,76,13,27,49,78,34,12,64,5,4,62,99,98,54,56,17,18,23,34,15,35,25,53,51};
?
int temp=0;
?
for(int i=1;i ? int j=i-1; ? temp=a[i]; ?? for(;j>=0&&temp ?? a[j+1]=a[j]; //將大于temp的值整體后移一個單位 ?? } ?? a[j+1]=temp; ?? } ??