JDK是個核心,JBuilder是個工具,只裝JDK的話用文本也能編程序。JDK和JBuilder的關(guān)系就像Dos和windows的關(guān)系一樣。JBuilder只是放便我們編程,我們在JBuilder做的東西,其實在JBuilder背后生成了代碼了。
成都創(chuàng)新互聯(lián)公司提供高防服務(wù)器租用、云服務(wù)器、香港服務(wù)器、成都天府聯(lián)通服務(wù)器托管等
初學者用JC和JBuilder,JC用于控制臺編程(初學中不涉及GUI的用JC,否剛用JBuilder)GUI:應(yīng)用圖形界面。
Java從1995誕生至今,只有10年左右了,和C,C++這些老大哥比起來年輕了很多,哲學上說任何事物的產(chǎn)生都是必然的,Java也不例外了,Inter的迅猛發(fā)展導(dǎo)致了Java的迅猛發(fā)展,那句成語是怎么說來著,水漲船高,Java自然成為網(wǎng)絡(luò)世界最受歡迎的語言了,當然Java的發(fā)展另一方面也是長期在微軟壓迫下的軟件世界的反抗了,McNealy,Sun的CEO、總裁兼董事長。
他曾經(jīng)狂傲的說:“摧毀微軟是我們每個人的任務(wù)。
”這位英勇的硅谷英雄,似乎帶頭起義,試圖組織一個反微軟陣線聯(lián)盟,以對抗微軟這股龐大的托拉斯惡勢力。
他時常口出驚人之語,在公開場合大肆的批評微軟,并曾經(jīng)說微軟的.NET是.NOT;
1.Java的產(chǎn)生
Java來自于Sun公司的一個叫Green的項目, 其原先的目的是為家用消費電 子產(chǎn)品開發(fā)一個分布式代碼系統(tǒng), 這樣我們可以把E-mail發(fā)給電冰箱、 電視機等家用電器, 對它們進行控制, 和它們進行信息交流。
開始, 準備采用C++,但C++太 復(fù)雜, 安全性差, 最后基于C++開發(fā)一種新的語言O(shè)ak(Java的前身), Oak是一種用于網(wǎng)絡(luò)的 精巧而安全的語言, Sun公司曾依此投標一個交互式電視項目, 但結(jié)果是被SGI打敗。
可憐的Oak幾乎無家可歸, 恰巧這時Mark Ardreesen開發(fā)的Mosaic和Netscape啟發(fā)了Oak項 目組成員, 他們用Java編制了HotJava瀏覽器, 得到了Sun公司首席執(zhí)行官Scott McNealy的 支持, 觸發(fā)了Java進軍Inter。
Java的取名也有一些趣聞, 有一天, 幾位Java成員組的 會員正在討論給這個新的語言取什么名字, 當時他們正在咖啡館喝著Java(爪哇)咖啡,有一 個人靈機一動說就叫Java怎樣, 得到了其他人的贊賞, 于是, Java這個名字就這樣傳開了 。
2.Java的歷史:1995年5月23日,Java語言誕生
1996年1月,第一個JDK-JDK1.0誕生
1996年4月,10個最主要的操作系統(tǒng)供應(yīng)商申明將在其產(chǎn)品中嵌入JAVA技術(shù)
1996年9月,約8.3萬個網(wǎng)頁應(yīng)用了JAVA技術(shù)來制作
1997年2月18日,JDK1.1發(fā)布
1997年4月2日,JavaOne會議召開,參與者逾一萬人,創(chuàng)當時全球同類會議規(guī)模之紀錄
1997年9月,JavaDeveloperConnection社區(qū)成員超過十萬
1998年2月,JDK1.1被下載超過2,000,000次
1998年12月8日,JAVA2企業(yè)平臺J2EE發(fā)布
1999年6月,SUN公司發(fā)布Java的三個版本:標準版、企業(yè)版和微型版(J2SE、J2EE、J2ME)
2000年5月8日,JDK1.3發(fā)布
2000年5月29日,JDK1.4發(fā)布
2001年6月5日,NOKIA宣布,到2003年將出售1億部支持Java的手機
2001年9月24日,J2EE1.3發(fā)布
2002年2月26日,J2SE1.4發(fā)布,自此Java的計算能力有了大幅提升
2004年9月30日18:00PM,J2SE1.5發(fā)布,是Java語言的發(fā)展史上的又一里程碑事件。
為了表示這個版本的重要性,J2SE1.5更名為J2SE5.0 題外話:1.微軟與Sun的糾紛Java誕生的1995年,正是微軟在軟件產(chǎn)業(yè)地位達到巔峰的時代,Windows 95發(fā)布時的風光場面給人們留下的深刻印象至今難忘。
盡管如此,作為最卓越的技術(shù)領(lǐng)袖,比爾?蓋茨仍然敏銳地注意到Java。
當他了解了Java的一些細節(jié)之后,給予了這樣的評價:“Java是很長時間以來最優(yōu)秀的程序設(shè)計語言。
”基于此,微軟于1996年3月申請并獲得了Java許可證。
微軟對于Java的這一熱情態(tài)度在當時大大提高了人們對Java的興趣和信心,但也有不少人擔心微軟會依靠自己強大的影響力在標準之外另立標準,從而破壞Java的純潔性。
果然,從1997年發(fā)布Visual J++的第一個版本開始,微軟就開始在Java中摻入自己的私有擴展。
這毫無疑問引起Sun的高度重視。
1997年10月,Sun向美國加州地方法院起訴微軟公司違反兩公司就微軟使用Java技術(shù)所簽定的合同,指控微軟公司在自己的Java產(chǎn)品中做了“不恰當?shù)男薷摹?,違反了合同中承諾向用戶提供Java兼容產(chǎn)品的條款。
這一官司曠日持久,直到2001年1月雙方達成和解,微軟將繼續(xù)提供采用Sun開發(fā)的Java技術(shù)的現(xiàn)有產(chǎn)品(包括測試版)。
不過,Sun有限制地僅對包括Java 1.1.4的微軟產(chǎn)品提供許可。
到了2001年7月,微軟公布新版的Windows XP將不再支持Sun的JVM,并且推出了.NET平臺與Java分庭抗禮。
現(xiàn)在回過頭去看,當時的這一場官司對Java世界產(chǎn)生了深遠的影響。
如果沒有這一場官司,也許很多Java程序員都在使用Visual J++,基于WFC開發(fā)Windows客戶端程序,同時不得不面對被兩個不同的事實標準所分裂的Java世界,/*個人評論,請勿引用個人看來微軟果然老奸巨猾,產(chǎn)品不怎么樣,但是打擊對手的本領(lǐng)卻是一般的公司難以做到的,VJ++這一招厲害,讓原來的很多Java程序員改行用C#了, *** 厲害,這一點上真的很佩服,比爾也不是圖有虛名的,一個字:牛!!微軟當然知道自己理虧嘛,結(jié)果肯定賠點錢了事,不過目的已經(jīng)達到,賠點錢無所謂,反正有的是錢嘛,*/2003年4月2 日,Sun與微軟達成16億美元的法律和解。
如果不是晚了一天,許多人會以為這是一個在4月1日愚人節(jié)開的玩笑。
盡管當時所有人都像是看到“太陽從西邊出來了”那樣張大了嘴巴,但這的確是事實。
根據(jù)兩家公司達成的版權(quán)協(xié)議,雙方會為采用對方的技術(shù)而支付專利費用,微軟向Sun提前支付3.5億美元使用費,Sun則承諾,如果Sun集成微軟的某些技術(shù),也會向微軟付款。
毫無疑問,“私下了結(jié)”的方式對雙方而言都是最好的結(jié)果。
就在協(xié)議簽署的當天,在美國舊金山由Sun和微軟為“拋棄十年恩怨、攜手合作“舉行的新聞發(fā)布會上,盡管比爾.蓋茨沒有到場,但這并沒有防礙現(xiàn)場看起來異常輕松的氣氛。
麥克尼利和鮑爾默各自穿了一件密歇根州底特律“Red Wings”曲棍球隊的運動服,并談及了一起在哈佛大學讀書的經(jīng)歷,麥克尼利還說:“當時我們兩人是非常要好的朋友,當然我們也有吵架的時候。
”人與人當然可能成為終生的知己,但是公司與公司之間有的只能是利益上的分分合合。
2.James Gosling
Java之父(不怎么喜歡這樣的稱呼,老土,不過人比較猥瑣吧,呵呵,大師都比較猥瑣吧); 作為Java之父,James Gosling的名字可謂是耳熟能詳。
當人們評論一種編程語言時,總喜歡捎帶著把下蛋的母雞一起帶上。
Java做為中國的編程語言學習者餐桌上有限的那么幾樣餐點中的流行款式,自然是讓James Gosling風光不已。
雖然James Gosling現(xiàn)在已經(jīng)不是領(lǐng)導(dǎo)Java發(fā)展潮流的領(lǐng)軍人物了,做為Sun的開發(fā)者產(chǎn)品組的CTO,怎么算來也是身居高位了,俗事纏身吧,但是這并不妨礙其對于Java一如既往的愛護,表達著各式各樣鮮明的觀點,引發(fā)一場又一場的爭論。
James Gosling是很愛Java的——是啊,哪有當父母的不愛自己的孩子的呢。
James Gosling也是很愛Sun的——是啊,哪有當領(lǐng)導(dǎo)的不愛自己的公司的呢。
于是我們在批評.NET的安全性的隊伍前頭,在褒揚Java性能的隊伍前頭,在抨擊SWT開倒車的隊伍前頭,在給NetBeans大唱贊歌的隊伍前頭,我們都看到了James Gosling的身影。
無論對錯、偏見或者固執(zhí),至少說明了Gosling的鮮明個性絲毫沒有受到年齡的影響。
也許也只有這種天才而偏執(zhí)的人物才能創(chuàng)造出Java這般偉大的語言來吧 本文來自CSDN博客,出處: ://blog.csdn/cpp_java_man/archive/2006/05/02/705319.aspx
那首先來了解一下什么是java:
Java是SUN(Stanford University Network,斯坦福大學網(wǎng)絡(luò)公司)1995年推出的一門高級編程語言,是一種面向Internet的編程語言。隨著Java技術(shù)在web方面的不斷成熟,已經(jīng)成為Web應(yīng)用程序的首選開發(fā)語言。
那么為什么要使用這個語言呢,Java語言的特點跨平臺性,通過Java語言編寫的應(yīng)用程序在不同的系統(tǒng)平臺上都可以運行。原理是只要在需要運行java應(yīng)用程序的操作系統(tǒng)上,先安裝一個Java虛擬機(JVM Java Virtual Machine)即可。由JVM來負責Java程序在該系統(tǒng)中的運行。
下面對java學習進行一次史無前例的剖析,細致的講解零基礎(chǔ)的人怎么學習Java。先看下Java在基礎(chǔ)階段的知識點路線圖。
內(nèi)容多嗎?不要被嚇到了,知識點剖析的比較細,所以看著比較多。不要害怕學不會,經(jīng)過下面的詳解,你就會明白這些知識點都是干嘛的了。
入門階段,主要是培養(yǎng)Java語言的編程思想。了解Java語言的語法,書寫規(guī)范等,掌握Eclipse、MyEclipse等開發(fā)工具,編寫Java代碼的能力。學完這個階段你應(yīng)該可進行小型應(yīng)用程序開發(fā)并且可以對數(shù)據(jù)庫進行基本的增刪改查管理。注意:此階段知識點的學習,會有真實的項目進行驅(qū)動學習,讓你輕松理解各知識點。
1計算機基礎(chǔ)知識
針對零基礎(chǔ)學習的人,從對計算機操作等知識的了解,延伸到Java語言的發(fā)展與開發(fā)工具的使用上。主要是讓你知道怎樣執(zhí)行計算機命令,認識Java這門語言,感受編程語言Java怎么開發(fā)程序。
1) 計算機基礎(chǔ)
讓零基礎(chǔ)學習的人先了解計算機相關(guān)知識,進而再去了解Java語言。
2) DOS常用命令
了解什么是DOS,并掌握DOS控制臺的打開方式,同時熟悉常用的DOS命令,例如:盤符切換、進入指定目錄、刪除文件等,完成使用DOS命令對計算機進行操作和控制。
3) Java概述
了解Java語言的發(fā)展史、Java語言平臺版本、Java語言的特點,以及JRE與JDK。JRE是Java的運行環(huán)境,JDK是Java開發(fā)工具包,它包含了Java的開發(fā)工具以及JRE。所以安裝了JDK就不用再單獨安裝JRE了。
4) JDK環(huán)境安裝配置
了解了什么是JDK,以及JDK的重要性,下一步我們就來學習如何安裝和配置JDK環(huán)境。在安裝JDK之前,我們首先需要下載JDK,針對不同的系統(tǒng),我們需要下載不用版本的JDK。
5) 環(huán)境變量配置
了解path、classpath環(huán)境變量,理解path變量和classpath變量的作用,并掌握path變量和classpath變量的配置方式。
6) Java程序入門
當JDK、環(huán)境變量配置完畢,我們就可以開始 編寫Java程序。編寫Java程序可以使用如下幾種工具:notepad(微軟操作系統(tǒng)自帶)、Editplus、Notepad++、Eclipse、MyEclipse,sublime等等。
IntelliJ IDEA工具的使用(重點)
2編程基礎(chǔ)
此模塊學習是讓你了解編程的具體流程,學習Java基礎(chǔ)語法的格式等。具體要掌握不同數(shù)據(jù)類型的變量定義與使用,掌握不同運算符的運算規(guī)則,掌握流程控制語句的執(zhí)行流程,編寫方法的聲明與調(diào)用,創(chuàng)建數(shù)組并訪問數(shù)組元素等知識。
1) 注釋
在程序開發(fā)工程中,用于解釋和說明程序的文字我們稱之為注釋,Java中的注釋分為以下幾種:單行注釋、多行注釋、文檔注釋。
2) 關(guān)鍵字
了解Java關(guān)鍵字的含義及特點,掌握關(guān)鍵字使用的注意事項。
3) 標識符
了解什么是標識符,標識符的組成規(guī)則,以及標識符使用時的注意事項。
4) 常量與變量
理解常量與變量的含義,并掌握常量與變量的區(qū)別、變量的定義格式以及變量的賦值。
5) 數(shù)據(jù)類型
掌握Java語言的數(shù)據(jù)類型,如基本數(shù)據(jù)類型:byte、short、int、long、float、double、char、boolean,以及引用類型:類、接口、數(shù)組。
6) 運算符
熟練掌握Java中的運算符:算術(shù)運算符、賦值運算符、比較運算符、邏輯運算符、位運算符、三目運算符。
7) 流程控制語句
了解什么是流程控制語句,掌握以下流程控制語句:順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu),并能夠通過流程控制語句實現(xiàn)特定的功能。
8) 方法
掌握方法的定義及格式,并能正確的調(diào)用方法,理解方法的調(diào)用過程,同時清楚方法的注意事項;掌握方法重載及其特點。
9) 數(shù)組
了解數(shù)組的概念,掌握數(shù)組的定義格式、靜態(tài)初始化、動態(tài)初始化,并能夠理解Java中數(shù)組的內(nèi)存圖解。熟練掌握數(shù)組的遍歷、獲取最值、數(shù)組元素逆序、數(shù)組元素查找、數(shù)組排序和二分查找,以及二維數(shù)組的定義格式及初始化。
3面向?qū)ο?/p>
現(xiàn)實世界中,隨處可見的一種事物就是對象,對象是事物存在的實體,如人類、書桌、計算機、高樓大廈等。人類解決問題的方式總是將復(fù)雜的事物簡單化,于是就會思考這些對象都是由哪些部分組成的。通常都會將對象劃分為兩個部分,即動態(tài)部分與靜態(tài)部分。靜態(tài)部分,顧名思義就是不能動的部分,這個部分被稱為“屬性”,任何對象都會具備其自身屬性,如一個人,它包括高矮、胖瘦、性別、年齡等屬性。然而具有這些屬性的人會執(zhí)行哪些動作也是一個值得探討的部分,這個人可以哭泣、微笑、說話、行走,這些是這個人具備的行為(動態(tài)部分),人類通過探討對象的屬性和觀察對象的行為了解對象。
1) 面向?qū)ο笏枷?/p>
了解面向過程編程思想,能夠通過案例理解Java的面向?qū)ο缶幊趟枷耄私饷嫦驅(qū)ο箝_發(fā)、設(shè)計、特征。
2) 類與對象
了解什么是類,什么是對象,并理解類與對象之間的關(guān)系;熟練掌握類的定義、對象內(nèi)存圖等。
3) 成員變量和局部變量
了解什么是成員變量,什么是局部變量,以及從他們在類中的位置、內(nèi)存中的位置、生命周期、初始化值等方面掌握他們的區(qū)別。
4) 匿名對象
了解什么是匿名對象,掌握匿名對象的兩種使用情況。
5) 封裝
清楚的了解什么是封裝,并能夠理解封裝的優(yōu)點與缺點,同時掌握封裝的原則。
6) this關(guān)鍵字
掌握this關(guān)鍵字的含義與使用。
7) 構(gòu)造方法
了解什么是構(gòu)造方法,構(gòu)造方法的作用,以及與構(gòu)造方法相關(guān)的注意事項。
8) 繼承
理解什么是繼承,繼承的好處以及java中繼承的特點和注意事項,繼承中成員變量的關(guān)系、構(gòu)造方法的關(guān)系、成員方法的關(guān)系,方法重寫與方法重載的區(qū)別。
9) 多態(tài)
理解什么是多態(tài),掌握多態(tài)案例及成員訪問的特點,多態(tài)的優(yōu)點和缺點,多態(tài)中的轉(zhuǎn)型問題。
10) 抽象類
了解什么是抽象類,抽象類的特點,抽象類成員的特點。
11) 接口
了解什么是接口,接口的特點,接口成員的特點,類與類、類與接口的關(guān)系,以及抽象類與接口的區(qū)別。
12) 內(nèi)部類
什么是內(nèi)部類,內(nèi)部類的訪問特點,內(nèi)部類的位置,什么是成員內(nèi)部類、局部內(nèi)部類、匿名內(nèi)部類,以及匿名內(nèi)部類在開發(fā)中的使用。
4、常用類
類庫就是Java API(Application Programming Interface,應(yīng)用程序接口),是系統(tǒng)提供的已實現(xiàn)的標準類的集合。在程序設(shè)計中,合理和充分利用類庫提供的類和接口,不僅可以完成字符串處理、繪圖、網(wǎng)絡(luò)應(yīng)用、數(shù)學計算等多方面的工作,而且可以大大提高編程效率,使程序簡練、易懂。
學習內(nèi)容:掌握Object類、Scanner類、String類、StringBuffer類、StringBuilder類、Arrays類、基本包裝類、正則表達式、Math類、Random類、System類、Date類、DateFormate類、Calendar類,及其常用方法。
5、集合
集合類存放的都是對象的引用,而非對象本身,出于表達上的便利,我們稱集合中的對象就是指集合中對象的引用。簡單一點就是說,集合是存放數(shù)據(jù)的容器。
學習內(nèi)容:什么是集合?數(shù)組與集合有什么區(qū)別,集合類的特點,掌握Collection接口、Iterator接口、List接口、ListIterator接口、ArrayList類、Vector類、LinkedList類、泛型、Set接口、HashSet類、Map接口、HashMap類、LinkedHashMap類等。
6、IO
IO(Input/Output)是計算機輸出/輸出的接口。Java的核心庫提供了全面的IO接口,包括:文件讀寫,標準設(shè)備輸出等等。Java中IO是以流為基礎(chǔ)進行輸入輸出的,所有數(shù)據(jù)被串行化寫入輸出流,或者從輸入流讀入。
1) 異常
了解什么是異常,異常的由來,常見的異常,異常的分類,掌握jvm對異常的默認處理方案,異常的處理方案:try…catch…finally、throws,什么是編譯時異常,什么是運行時異常,掌握它們兩的區(qū)別,throws關(guān)鍵字、throw關(guān)鍵字,以及這兩個關(guān)鍵字的區(qū)別,熟練掌握自定義異常,異常注意事項。
2) File類
了解什么是File類,F(xiàn)ile類的用途,掌握File類的方法:createNewFile()、mkdir()、mkdirs()、delete()、renameTo(File dest)、isDirectory()、isFile()、exists()、等方法,以及File類的基本獲取功能方法和高級獲取功能方法。
3) IO流
了解什么是IO流,IO流的用途;熟練掌握輸入流、輸出流、字符流、字節(jié)流、IO流的常用基類;如何使用字節(jié)流讀寫數(shù)據(jù)、復(fù)制數(shù)據(jù);什么是字節(jié)緩沖流,如何使用字節(jié)緩沖流讀寫數(shù)據(jù);什么是轉(zhuǎn)換流,如何使用轉(zhuǎn)換流更加高效的讀寫數(shù)據(jù),內(nèi)存操作流、打印流、標準輸入輸出流、序列化流、Properties集合。
4) IO流練習
(1) 復(fù)制文本文件;
(2) 復(fù)制圖片;
(3) 把ArrayList集合中的字符串數(shù)據(jù)存儲到文本文件;
(4) 從文本文件中讀取數(shù)據(jù)(每一行為一個字符串數(shù)據(jù))到集合中,并遍歷集合;
(5) 復(fù)制單極文件夾;
(6) 復(fù)制單極文件夾中指定文件并修改文件名稱;
(7) 復(fù)制多極文件夾;
(8) 已知s.txt文件中有這樣的一個字符串:“hcexfgijkamdnoqrzstuvwybpl”;
(9) 請編寫程序讀取數(shù)據(jù)內(nèi)容,把數(shù)據(jù)排序后寫入ss.txt中;
(10) 獲取每次讀取數(shù)據(jù)的行號;
(11) 登錄注冊IO版。
7、多線程
是指從軟件或者硬件上實現(xiàn)多個線程并發(fā)執(zhí)行的技術(shù)。具有多線程能力的計算機因有硬件支持而能夠在同一時間執(zhí)行多于一個線程,進而提升整體處理性能。具有這種能力的系統(tǒng)包括對稱多處理機、多核心處理器以及芯片級多處理(Chip-level multithreading)或同時多線程(Simultaneous multithreading)處理器。在一個程序中,這些獨立運行的程序片段叫作“線程”(Thread),利用它編程的概念就叫作“多線程處理(Multithreading)”。具有多線程能力的計算機因有硬件支持而能夠在同一時間執(zhí)行多于一個線程(臺灣譯作“執(zhí)行緒”),進而提升整體處理性能。
1) 多線程
了解什么是線程,什么是多線程,理解java程序的運行原理,掌握多線程的實現(xiàn)方案,如何獲取和設(shè)置線程名稱、線程的生命周期、如何解決線程安全問題、線程同步、Lock鎖、死鎖問題、線程間通信、線程的狀態(tài)及狀態(tài)轉(zhuǎn)換、線程池。
2) 多線程面試題
(1) 多線程有幾種實現(xiàn)方案,分別是哪幾種?
(2) 同步有幾種方式,分別是什么?
(3) 啟動一個線程是run()還是start()?它們的區(qū)別?
(4) sleep()和wait()方法的區(qū)別;
(5) 為什么wait(),notify(),notifyAll()等方法都定義在Object類中;
(6) 線程的生命周期圖。
3) 設(shè)計模式
了解什么是設(shè)計模式,設(shè)計模式的分類,熟練掌握單例設(shè)計模式(懶漢式、餓漢式)。
8 、網(wǎng)絡(luò)編程
網(wǎng)絡(luò)編程最主要的工作就是在發(fā)送端把信息通過規(guī)定好的協(xié)議進行組裝包,在接收端按照規(guī)定好的協(xié)議把包進行解析,從而提取出對應(yīng)的信息,達到通信的目的。
9、反射
JAVA反射機制是在運行狀態(tài)中,對于任意一個類,都能夠知道這個類的所有屬性和方法;對于任意一個對象,都能夠調(diào)用它的任意一個方法和屬性;這種動態(tài)獲取的信息以及動態(tài)調(diào)用對象的方法的功能稱為java語言的反射機制。
Java新特性:(重點及理解)
Java7特性重點:
switch支持String、泛型自動類型推斷
理解:可catch多個異常,異常之間使用“|”分隔
Java8特性重點:Lambda表達式、接口中的默認方法和靜態(tài)方法、新的Date API。
大家湊合著看看吧。
視頻教程你可以去B站上看一下老杜的159集的視頻教程,這套視頻教程在B站上的播放量是140多萬,你說這套視頻教程好不好呢?