久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

看牛人如何學習JAVA

時間:2019-05-14 02:08:10下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《看牛人如何學習JAVA》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《看牛人如何學習JAVA》。

第一篇:看牛人如何學習JAVA

看牛人如何學習JAVA 第一章 Java語言概述

終于要開始《Java編程基礎》這門課了,從學生的眼中可以看到一種期待,但我覺得學生們都有一種誤解,覺得這門課學好了就是學好Java了,對二年的J2EE學習會產生決定性的影響。可是實際上,這門課就像它的名字一樣,只是一個基礎,它的目的就是能讓大家掌握Java的基本語法,能夠使用Java語言來實現面向對象而已,從對J2EE學習的影響性來說,我覺得這門課的地位還不如《ASP網絡編程》。

當然我并不是想說Java基礎不重要,只是沒有重要到需要放棄畢業設計來聽這門課(是的,有幾個學生已經準備這么干了)。

翻了一下這本書的目錄,發現它可以分為兩個階段——第一階段:使用Java語法來實現面向對象,面向對象的基本概念在C++課程里面已經介紹了,我想這部分的進行會相對容易,當然了,需要給學生們指出Java和C++在實現面向對象上的區別;第二階段:使用Java進行圖形編程,簡單說,用Java來實現VB那一套東西,不知道學生們用慣了VB的可視化編程,能不能適應手工生成界面。就這些內容可能有些單薄吧,我在想,中心還專門為Java增加了3節理論課,這樣算下來會有14節課來介紹Java。嗯??可以用增加的理論課來介紹設計模式(Design Pattern)!這應該是個好主意,能讓學生們學到更專業的開發知識,不過對于他們來說會不會太難呢?隨著課程進行看吧,反正我也不準備把23種設計模式都講一遍。

我制定的Java授課計劃

好了,開始上課了,課前大鵬問我Java難不難,引用一句古文“人之為學有難易乎,為之,則難者亦易矣”。

從頭講起,Java的歷史、發明者??這些東西我最討厭,一筆代過。開始介紹Java的幾個基本特點: 簡單:沒有的指針操作; 健壯性:無須手工管理內存;

可移植性:地球人都知道Java是跨平臺的。就說這么多吧,關于Java高性能這部分實在不想多講,搞過Java開發的人都知道Java也許不是世界上最好的語言,但絕對是運行速度最慢的語言。重點要說一下Java虛擬機(JVM),它是保證Java語言能跨平臺運行的關鍵。想象聯合國開大會的例子,來自中國,美國,法國,德國的一大群發言人準備說話了,為了保證其他人也能聽得懂,需要一個翻譯團,對翻譯團中每個團員的要求就是至少懂得英語和另一門語言。現在中國的發言人說話了,懂英語和漢語的翻譯會首先將中文翻譯成英文,然后不同語種的翻譯再根據英文翻譯成各自的文字。如果聯合國增加了一個成員“土撥國”,他們講“土撥語”,那很簡單,增加一名會說“土撥語”和英語的翻譯就可以了。

這也就是Java虛擬機的運行模式,我們都知道寫好源代碼以后要進行編譯,傳統語言(VB, VC)都會直接將源代碼編譯成能在某固定操作系統下運行的EXE程序(我們都知道windows程序不能在Dos下運行),而Java則是將源代碼編譯成我們稱之為“字節碼”的中間文件(我們例子中的英語),OK,就到此為止了。顯然這個中間文件是無法直接執行的,現在Java虛擬機登場了,我們執行一個中間文件的流程是:Java虛擬機將中間文件讀入,翻譯成能在本操作系統下運行的文件,然后執行之。假如現在我們新增一個操作系統,名為“土撥系統2005”(Turbo System 2005),如果想讓我們的Java在上面跑起來,只需要sun公司開發一個在“土撥系統2005”下運行的Java虛擬機就可以了(Java Virtual Machine for Turbo System 2005)。

講到這兒發現一些學生已面露迷茫之色,趕快講些容易的,從剛才的描述可知,我們開發Java程序需要先編寫源代碼(*.java文件),然后將源代碼編譯成中間文件(*.class文件),最后通過Java虛擬機執行,對應這個過程,我們需要三種武器:編輯器、編譯器和Java運行環境。

編輯器的目的是讓我們方便的開發源代碼,好的編輯器支持語法高亮顯示,輸入“.”出現成員列表等功能,當前企業開發中最常用的編輯器應該是Borland公司的 JBuilder,最新版本2005版;還有現在最熱門的開源項目(搜索互聯網,了解開源項目)Eclipse,最新版本3.0;不過作為入門,我讓學生們先用 JCreator 3.5,注意,它的3.1版本在顯示中文時有問題。編譯器包含在JDK(Java Develop Kits)中,它將源代碼轉換成中間文件,在sun公司的官方網站上,可以找到JDK1.4.2版和JDK1.5版,其中1.5版是最新的,里面還附帶了一個叫NetBeans的編輯器,但是速度很慢,我推薦學生下載JDK1.4.2版,如果英文基礎好的話,還可以同時下載JavaDoc,里面有java的幫助,有點像MSDN,只不過是純英文的。Java運行環境JRE(Java Runtime Environment)中最重要的組成部分就是Java虛擬機,它也已經包含在JDK中了,然而,如果我們想確保Java程序能在別人的機器上運行,對方至少應該安裝一個JRE。

最后講講配置問題,我建議學生先安裝JDK,再安裝編輯器,這樣可以省去很多配置的麻煩。從書上得知要運行Java程序還需要配置三個系統參數:Path,ClassPath和Java_Hone,它們指明了JDK的安裝為之;實際上,除非你想在DOS環境下手工編譯程序,否則你根本不需要它們,因為編輯器是會自己尋找JDK安裝位置的,像JBuilder甚至還自帶了一個JDK。呼~~長舒一口氣,休息一下吧,口干舌燥了。

第二節課我先介紹了一下當今Java比較流行的三個分支,這些名詞你肯定聽過:J2SE,J2EE和J2ME。

1.J2SE(Java 2 Platform,Standard Edition)指Java 1.2版以上的標準開發包

開發J2SE程序需要的編譯器為JDK,編輯器有記事本,JCreator, JBuilder(Borland), Eclipse(OpenSource), NetBeans(SUN), Visual Age For Java(IBM)等

如果要運行J2SE程序,需要安裝JRE(Java Runtime Environment)2.J2EE(Java 2 Platform,Enterprise Edition)Java2企業版由Jsp + Servlet + JavaBean + EJB組成 運行企業版程序需要J2EE容器,比如WebLogic, WebSphere等 3.J2ME(Java 2 Platform,Micro Edition)專門運行在移動設備和無限設備上的Java,手機游戲很多用此開發

好了,介紹部分就這么多吧,我要開始演示Hello World了,學生都很奇怪,為什么Java的源文件名要和類名完全一致,哎,記住就行了,管它那么多。大家對main函數的聲明叫苦不迭,那么長阿。其實我們仔細分析一下,會發現里面沒有一個多余的單詞:

public static void main(String args[]){ ?? } public將main聲明成公用,當然了,因為main函數是程序的起點,由Java虛擬機自動調用,如果是私有,不就訪問不到了嘛;下一個是static,將函數聲明稱靜態,由C++的知識我們知道,只有靜態函數可以被直接訪問,這也是為了讓Java虛擬機能夠方便的開始我們的程序;void說明main函數沒有返回值,而括號里面的數組表示了命令行參數,在我們還沒有圖形界面之前,我們幾乎只能靠這種方式來接收用戶的輸入。

看牛人如何學習JAVA-如何學習java(一)(二)2007年12月05日 星期三 07:52 P.M.看牛人如何學習JAVA

如何學習java(一)最近論壇上看到好幾個朋友都在問,如何學習Java的問題,“我已經學習了J2SE,怎么樣才能轉向J2EE?”,“我看完了Thinking in Java,可以學習J2EE了么?”。于是就有了寫這篇文章的想法,希望能幫助初學者少走一些彎路。也算是對自己幾年來學習Java的一個總結吧。

在開始之前有必要再討論一下J2ME,J2SE,J2EE這些概念。J2ME,The Micro Edition of the Java 2 Platform。主要用于嵌入式Java,如手機,PDA等等。J2SE,Java 2 Platform,Standard Edition,我們通常所說的JDK(Java Development Kit)包含在此,是J2EE的基礎。J2EE,Java 2 Platform,Enterprise Edition,就是所謂的企業級Java。這些只是從API級別上的劃分,實際上Sun給J2EE的定義是:開發基于組件的多層的企業級應用的規范。也就是為各種不同的技術定義一個Java的規范,使這些不同的技術結合起來,在Java平臺上構建強壯的企業級應用。從這一點來看,J2EE這個概念應該是涵蓋J2ME,J2SE的。比如一個典型的J2EE應用,網上商店,它支持web方式下訂單,也支持手機下訂單。顯然必須用到J2SE,J2ME。所以也就不存在所謂的從J2SE轉向J2EE的問題了,只是后者包含的范圍更廣而已。

來看看Sun給出的J2EE 相關技術主要分為幾大塊。1.Web Service技術

-Java API for XML Processing(JAXP)Java API for XML-based RPC(JAX-RPC)Java ServletJavaServer FacesJava Message ServiceJ2EE Deployment SpecificationJ2EE Client ProvisioningJDBCCORBA(Java IDL and Java RMI-IIOP)Transactions 如此之多的技術難免使初學者無所適從,望而卻步。即使是一位經驗豐富的J2EE開發者,又有幾個人敢說J2EE相關的技術我都熟練掌握了。不過作為一名普通J2EE應用程序的開發者來說,我們只需要重點學習其中的一部分技術就可以了,對于其他部分只要做到心中有數,哪天需要用到了知道跑哪里去找到資料就行了。以我個人的觀點,下面這些技術是一般J2EE應用開發人員所必須熟練掌握的。Java Server Page,Java Servlet,Enterprise JavaBean,JDBC,Transactions。還有JAXP等XML相關技術,Java Message Service,Java Mail,JDO等等是最好應該掌握的。其他Management Technologies,Connector Architecture等等主要是給容器提供商中間件提供商參考的,應用開發者不需要怎么關心,等用到了再去學習也不遲。

語言學習篇

首先是J2SE基礎。學習一門新技術,無外乎閱讀和實踐了。而一本好的參考書對于初學者來說顯得格外重要。現在市面上的 Java書籍可以說是鋪天蓋地,質量也是良莠不齊,令初學者無所適從。所以還是先推薦幾本書籍吧。目前對于Java基礎知識,大家一般都比較推薦兩本書,<>和<< Core Java? 2,Volume I: Fundamentals >>。第一本書不必多說了,Bruce Eckel的大作,Jolt獲獎書籍。內容比較全面,基本涵蓋了java語言的方方面面。這本書提供了相當豐富的例子,非常有利于對學習內容的了解。另外書中第一部分對于OO基本書籍的介紹,我覺得對于剛接觸OO的人來說幫助會很大。而且此書是Open Source的,可以從作者網上下載http://www.tmdps.cn/tomcat/ Jetty: http://jetty.mortbay.org/jetty/ 應用服務器常用的有,Jboss: http://www.tmdps.cn/products/index

Weblogic: http://www.tmdps.cn/。對于J2EE項目的具體實施,Rod Johnson的<>也很有價值,該書以作者豐富的實戰經驗向我們展示如何用盡可能簡單的解決方案構建J2EE 應用,書中作者第一次提出這樣的觀點,很多時候,J2EE應用完全沒有必要用到EJB,對于言必稱EJB的廣大J2EE開發者來說,怎么說也有點驚世咳俗的味道。當然,作為Servlet和JDO兩個專家組的成員,這可不是作者信口胡騶的。今天風靡Java世界的Spring框架最初便是源于此書,而IOC,AOP等概念更是被時下的java開發者掛在嘴邊。最后,作為對Java的深入學習,Java技術的各個Specification也有必要一讀。暫時就寫到這里吧。

一個牛人給java初學者的建議(1)2008年03月03日 星期一 20:41 給初學者之一:淺談java及應用

學java不知不覺也已經三年了

從不知java為何物到現在一個小小的j2ee項目經理

雖說不上此道高手,大概也算有點斤兩了吧

每次上網,泡bbs逛論壇,沒少去java相關的版面

總體感覺初學者多,高手少,精通的更少

由于我國高等教育制度教材陳舊,加上java自身發展不過十年左右的時間

還有一個很重要的原因就是java這門語言更適合商業應用

所以高校里大部分博士老師們對此語言的了解甚至不比本科生多

在這種環境下,很多人對java感到茫然,不知所措,不懂java能做什么

即便知道了java很有用,也不清楚該從哪里入手

所以就有了 java入門難 這一說法

ok,那我們就從java到底能做什么聊起

先說什么是java

java是一種面向對象語言,真正的面向對象,任何函數和變量都以類(class)封裝起來

至于什么是對象什么是類,我就不廢話了

關于這兩個概念的解釋任何一本面向對象語言的教材里面都有

知道了什么是java,那自然就會對java能干什么感興趣

在說java能做什么之前,先說java作為一個真正面向對象語言的優點

首先第一個,既然是真正的面向對象,那就要做到徹底的封裝

這是java和c++最大的不同,java所有的源碼以及編譯后的文件都以類的形式存在

java沒有所謂的類外部定義,所有的函數(方法)以及變量(屬性)都必須在類內部定義

這樣就不會出現一個類被切割成這里一塊那里一塊的情況,c++就可以,不是么?

這樣做使得整個程序的結構異常清晰,明了

其次第二個,最讓人歡呼雀躍的是完全屏蔽了指針,同時引入了垃圾回收機制

任何一個寫過c/c++代碼的人,都會對內存管理深惡痛絕

因為這使得我們不能把主要精力放在我們關心的事情上

而需要考慮計算機內部的一些事情,作為一個軟件工程師

我想沒有一個人愿意把大量的時間花在內存管理上,畢竟我們不是電子工程師

此時java的優勢體現出來了,它完全屏蔽了內存管理

也就是說,如果你用java寫程序,寫出來的任何一個程序內存上的開銷,都不受你控制

乍一看,似乎你受到了束縛,但實際上不是這樣

因為雖然你的程序無法對內存進行管理,降低了一定的速度

但你的程序會非常非常的安全,因為你無法調用一個空指針

而不像以前寫c的時候那樣,成天因為空指針而擔驚受怕

當然,如果你深入了解這一行,就會發現java其實也無法保證程序不去調用空的指針

但是它會在最大程度上避免空指針的調用

這已經很好了,安全,這是java的最突出的優點

第三個,虛擬機跨平臺,這是java最大的特點,跨平臺

可能所有人都知道windows,但是不是所有人都知道unix 和java一樣,很多人都不知道unix這種操作系統干什么用

我不想多說unix的應用,這不是主要,但是我要說,大部分小型機

工作站,都跑在unix一族的操作系統上,比如linux/solaris

unix比起windows有一個最顯著的特點,穩定,這就好比思科和華為

思科的機器慢但穩定,華為的機器快但不穩定,作為服務器這一端來說

要的皇怯卸囁歟 俏榷ǎ 評nix在服務器端還是非常有市場的 而且很重要的windows不安全,在ms的宣傳中我想所有人都很少看到安全二字

因為windows操作系統針對的是pc用戶,pc死機就死機咯,大不了重啟

瘟95最經常冒出來的就是藍屏,在服務器這一端上因為ms沒有自己的芯片

所以要做系統有些力不從心啊。扯遠了,那么java可以做到在windows上編譯

一個牛人給java初學者的建議(2)2008年03月03日 星期一 20:42 那么說到這里,java能做什么逐漸清晰起來

剛才說到了,java程序有一個的特點是安全

這個安全是針對你的系統來說得,系統在跑了java程序之后會特別地穩定

而且還能跨平臺,那么很明顯,java主要應用于除了windows操作系統以外所有的平臺

比如手機,服務器

想想看,如果你寫的程序要跑在手機上,而手機有多少款用的是windows? 就算有,那如果你用c/c++,是不是要針對每一款手機寫一套程序呢?

累死,那跨平臺的java就不用,做到編譯一次,隨時運行

同樣,在服務器這一端,如果我想給一個網絡門戶站點,比如sina

寫一個應用程序,pc的性能肯定無法滿足sina這樣大站點并發數量的要求

那么它就需要買服務器,那么服務器ms沒有市場,而且windows很不安全

那么十之八九會買一個sun/ibm的機器,或者hp,但不管是誰的機器

它裝的操作系統也不會是windows,因為windows太不安全了,而且多核的支持太差了

這個有空再說,那么如果你要寫一個程序在這樣的機器上跑

難道我們就在這個機器上做開發么?當然不可能,一般程序員開發用的都是pc,windows

那么該怎么辦?寫一個程序,然后再拿到服務器上去編譯,去調試?

肯定不可能,所以我們就希望找到一個語言,編譯完生成程序之后

在pc上調試,然后直接移植到服務器上去,那么此時,我們就會毫不猶豫地選擇java

因為在跨平臺以及安全性來說,java永遠是第一選擇

ok,下面說java的缺點

一慢,這其實是一種誤區,這就好比goto語句一樣

java也拋棄了指針,雖然看上去似乎變慢了,但是在這個兩三年硬件性能就能翻番的年代

速度已經不是我們關心的問題了,而且對于企業級的應用來說

沒有什么比安全穩定更重要的,換句話說,我們可以忍受慢,但是不能忍受死機和藍屏

而且越大型的應用,這種慢的劣勢體現得越模糊

因為當系統項目越做越大,任何一個環節做不好都可能影響全局的情況下

安全尤其重要,而且就像goto語句一樣

這種過分追求速度的主張會給系統開發和糾錯以及維護帶來無可挽回甚至不可避免的損失

把內存交給計算機去管理吧,這種代價值得 我們做的不是pc游戲,沒必要把內存的那一點點消耗當親爹

二難看,又是一個誤區,很多人甚至拿出java swing控件畫出的界面來說

呵呵,其實java不是不能畫得好看,IDEA就是java寫的IDE,挺漂亮的但為什么難看呢,是因為swing控件它本身就是unix時代的產物,swing控件貼近unix界面

老外看unix界面其實挺順眼的,他們就是吃unix飯長大的

而unix又是吃百家飯的,不像ms那么唯利是圖,所以不怎么對中國人友好

加上我國又沒有公司在做操作系統,所以看上去是不怎么順眼

其實玩過unix的人都知道,unix對中文的支持一直不怎么好

三我還沒想到,其他人補充

一個牛人給java初學者的建議(3)2008年03月03日 星期一 20:44 給初學者之二:從JDK說起

在知道了java有什么優點,能做什么之后

就該說一下java該如何去學了

在說java如何去學之前,有必要把java的幾個大方向做一個簡單說明

早在五年前,嗯,應該說是六年前,也就是99年的時候

sun公司做出了一個決定,將java應用平臺做一個劃分

畢竟在不同領域,語言應用特性是有區別的

針對不同領域內的應用,sun公司可以發布相關高端標準來統一規范代碼

這三大塊就是J2SE,J2EE以及J2ME 這個舉措今天看來無疑是非常了不起的

正是由于這次革命性的發展,使java從一種小打小鬧游戲性的語言

發展成為今天企業級應用的基礎

這里要特別說明一下J2SE J2EE J2ME中2的意思

其實2就是英文單詞to的諧音,就是to的意思

而不是second edition,當然java 2本身版本號就是1.2,也有點2nd edition的味道

說點題外的,sun公司發布的java版本很有意思

雖然總是寫是1.X但其實外界對這種版的說法也就是X.0 比如java 2,其實就是java 1.2

1.3其實就是3.0,1.4就是4.0,現在所說的5.0 其實就是1.5 只是以前我們更習慣叫1.X而已

可能到了5.0以后,就全改叫X.0而不是1.X了

所以以后聽到別人說java 5.0,千萬別驚訝,其實就是1.5

在這三個J2*E中J2SE是基礎,就是java 2的標準版(java 2 standard edition)也就是最基礎的java語言部分,無論學什么java技術,J2SE都是必須掌握的要使用J2SE就必須安裝JDK(java development kit)JDK在sun公司的主頁上可以免費下載,下載后需要安裝,具體安裝流程看教材

JDK包含有五個部分:核心API,集成API,用戶界面API,發布技術還有java虛擬機(JVM)

一個牛人給java初學者的建議(4)2008年03月03日 星期一 20:45 先說運行環境,運行環境最主要要說的就是java虛擬機(JVM)

前面我們說過java是跨平臺的語言,那么如何做到跨平臺呢?畢竟每種操作系統都是不同的

java的設計者們提出了一個虛擬機的概念

在操作系統之上建立一個統一的平臺,這個平臺必須實現某些功能以支持程序的運行

如下圖:

------| program |------| JVM |------

| UNIX | Windows | Linux | Solaris |..------

程序員所寫的每一個程序都先運行在虛擬機上

所有操作都必須經過虛擬機才能和操作系統交互

這樣做不僅統一了所有操作系統,同時也保證了操作系統的安全

要死機的話,死的是虛擬機(JVM)而操作系統并不會受此影響

而我們所說的java運行環境指的主要是JVM,其他的不說了,省略

下面說說JDK(java development kit)的API,其實用JDK來包括運行環境以及開發工具

個人感覺是不恰當的,因為這三個單詞僅能說明開發工具,也就是幾個標準的API

而沒有讓人感覺到有運行環境的意思在里面,這是題外

那么什么是API?

簡單地說就是Application Programming Interface,應用程序編程接口

在java里面,就是一些已經寫好了的類打成的包

這又要解釋什么是類什么是包了,簡單說一下,包就是類的集合一個包包含零個或多個類,嗯,具體的可以去看書

這些類是java的基礎類,常用的類,可以簡單理解成java的工具集

最后說一下JDK的發布技術,其實按我的理解,講白了就是編譯器

將.java文件轉換成.class文件的一種技術

這三部分組成了JDK,有了JDK,就可以開發出J2SE應用軟件了

最原始的只要用一個記事本寫幾行代碼就可以了

但一般來說我們會使用效果比較好的開發工具,也就是IDE 在J2SE這一塊,特別推薦JCreator這款IDE

sun公司的產品,與JDK結合得幾乎是天衣無縫,非常適合初學者使用

教材方面中文的推薦電子工業出版社出版的《java教程》初級與高級篇各一本

還有就是《21天學通java》雖然有人說21天系列是爛書,但個人感覺

對于j2se,這本書翻譯得已經很不錯了,基本沒有什么語法錯誤,語句也很通順

最后要說的就是《thinking in java》

這本書自然很經典,說得比較細,只是我覺得不太適合初學者,其實也不難

初學者直接看也不成問題,但個人感覺還是找本教材也就是前面推薦的兩款來看比較好

基本概念的理解還是用教材的,畢竟thinking in java有的版本翻譯得很爛

而且個人建議還是看原版比較好,當然這幾本都看最好了,但如果沒時間

至少精讀其中一本,然后再看其他兩本就可以,其實三本書內容也差不多

但看問題的角度方式以及面向的讀者也都不同,嗯,怎么說呢,找適合自己的吧

最后要說的是

由于虛擬機的存在,J2SE的大多數軟件的使用會比一般桌面軟件慢一些

效果不盡如人意,現在大概只有swing控件還在使用吧,其它沒怎么聽說

J2EE&J2ME

這是java應用的重中之重,如果想拿高薪,最好把J2EE學好

記得以前在csdn上看過一個調查,月薪上萬的程序員主要從事哪方面的工作

十個中有八個是做J2EE的,其他兩個一個做J2ME,還有一個做嵌入式

也許有些夸張,但也從某一方面說明J2EE人才的稀缺以及應用的廣泛

所以如果想學java,只精通j2se是永遠不夠的,至少還需要時間去了解其它兩個J2*E

給初學者之三:java企業級應用之硬件篇 總算講到企業級應用了,內容開始逐漸有趣起來

java企業級應用分為硬件篇和軟件篇

重點在軟件,硬件是外延,嚴格地說與java沒有必然聯系 但是,由于java是網絡語言,不了解硬件的一些基礎知識 軟件知道再多也沒什么用,不要上了戰場還不知道為什么而打仗

硬件是軟件的基礎,在這個前提下,有必要專門花一點點篇幅來聊一下硬件

硬件,簡單地說就是我們實際生活中看得見摸得著的東西

也就是那些冰冷的機器,比如服務器,個人電腦還有網絡交換機,路由器等等 那么先拋開網絡設備不談,先來說說計算機電腦的歷史

在很早很早以前,人類創造了第一臺電腦,那時候的電腦只是一臺用來計算的機器

無比大,無比重,無比傻,除了算其它屁事不會做,沒有所謂的人工智能與計算機網絡

但是總算是誕生了,雖然以今天的眼光去看那時候的機器巨傻無比 只配叫做計算器而不是電腦,沒有邏輯思維能力,只會死算 但千里之行,始于足下,反正是造出來了

然后隨著時間的推移,制造業發展發展發展

電腦性能逐漸得到提升,速度快了起來,成本也逐漸低了下來 于是人們造出了第二臺,第三臺,第四臺,第五臺??第n臺計算機 人們就造出了無數臺計算機并使其成為一種產品

逐漸應用于許多復雜計算領域,不僅僅是科研,許多生產領域也開始出現計算機的影子

然后又隨著時間的推移,人們發現不可能把所有的計算機都做成一個樣子 因為各行各業對計算機性能的要求各不相同

于是開始把計算機劃分檔次,最簡單地是按照計算機的大小劃分 就是教科書上寫的大型機,中型機,小型機

//個人感覺這樣分純粹扯淡,還以為是小孩子玩球,分為大球,中球和小球 但是不管怎樣,計算機不再是千篇一律一個樣子了

按照性能的不同,在不同領域,出現了滿足符合不同要求的計算機 幾乎在同時,人們也開始考慮計算機之間通訊問題

人們開始考慮將不同的計算機連接起來,于是網線出現了,網絡出現了 又隨著網絡的發展,出現了一下專門為了尋址而存在的機器 這就是路由器和交換機,然后又出現了一些公益性的組織或團體 他們制定了一系列的標準來規范以及管理我們的網絡 于是3w出現了,計算機的網絡時代來臨了

嗯,說到這里,計算機發展到今天的歷史大概說完了

我們來詳細說說網絡時代的計算機以及各個硬件供應商之間的關系 前面說到了,計算機分為大型機,中型機和小型機??

但是現在市場上沒有人這樣分,要是出去買機器,對硬件供應商說

我要買一款中型機,或者說,我要買一款小型機,硬件供應商肯定會問問題 他們會問你買機器干什么用的?科學計算啊還是居家用,是作服務器啊還是圖形設計

但不管怎樣,簡單地說大中小型機已經沒有什么意義了 我們按照使用范疇來劃分 簡單劃分為

服務器,工作站還有微機

服務器(server)

服務器涵蓋了幾乎所有的大型機以及大部分中型機甚至一些小型機 用通俗點話說 衿骶褪悄掣齬 ?4小時不間斷運行提供服務的機器 比如賣飛機票(中航信),比如酒店預定(攜程)

比如提供門戶站點相關服務(sina),比如電子商務(ebay,amazon,阿里巴巴)這些服務對機器都有一些特定的要求,尤其強調安全和穩定

工作站(workstation)

工作站其實是圖形工作站的簡稱,說白了,就是某種功能極其強大的計算機 用于特定領域,比如工程設計,動畫制作,科學研究等 個人電腦/微機(pc)

計算機網絡的最末端,這個應該不用我說太多了 網絡時代的pc已經普及到千家萬戶

說完了分類,我們就來說說各個硬件供應商 首先是服務器還有工作站

這兩類硬件供應商主要是以下三家 Sun,IBM還有HP(惠普)

然后是PC 以前IBM還有PC事業部,現在被聯想吞并了(蛇吞象)現在國際市場上有聯想和DELL(戴爾),目前戴爾還是國際老大 還有HP康柏

然后是網絡,也就是路由器和交換機

這塊市場嘛,Cisco(思科)Brocade(博科)還有McDATA三足鼎立

內核(CPU)PC內核

主要是AMD和Intel,前者最近與Sun公司合作,Sun也有一部分單雙核服務器用的是AMD的 服務器與工作站內核 這一塊與硬件廠商綁定 還是Sun,IBM,HP三家自己生產 題外

在一些大型主機應用市場,比如賣飛機票

德國的漢莎,中國的中航信,香港的國泰用的都是尤利(美國的公司,英文名我忘了)

其它用的是IBM的機器,現在能做大型機的感覺似乎只有IBM可以

尤利已經快倒了,技術太落后了,現在他們的系統還是fortran寫的,連c都不支持

要特別說明的是,一個超大型主機然后多個小終端/pc的結構現在越來越沒市場了

將來的趨勢是用一整個包含多個服務器的分布式操作系統來取代這些大型主機 因為大型主機更新換代極其困難,一旦數據量超過了主機的處理能力 那么就要換主機,這個成本是極大的,但是如果用分布式操作系統 那就只需要增加小服務器就行了

硬件就大概說到這里,與大多數人沒什么關系

因為大多數人壓根不可能進入這些硬件領域,除非做銷售 說了這么多,只是為了給軟件部分打基礎而已 //做嵌入式的除外

給初學者之四:java企業級應用之軟件篇 嗯,說過了硬件就該是軟件了 這篇是這個系列的重中之重

首先我們來說說什么是軟件,統一一下概念

所謂軟件通俗地說就是一套計算機程序 實現了某些功能的計算機程序 在很早很早以前,一臺計算機的軟件是不分層次結構的

一臺計算機只有一個系統,這個系統既是操作系統又是應用軟件,與硬件緊密綁定

后來經過許多年的發展發展發展

人們把一些與硬件緊密相連的又經常用到必不可少的功能做到一套程序中去 這一套程序就被人們稱做操作系統

另外一些可有可無的,不同工作適應不同環境的功能封裝到另外一套程序中去 而這一系列程序被人們稱作應用軟件 如下圖:

------------|應用軟件:falshgat/IE/realplayer/winamp..|------------|操作系統:UNIX/Windows/Linux/Solaris...|------------前一篇我們知道,硬件分為服務器工作站與pc 其實無論哪種硬件的軟件,都有操作系統與應用軟件 ok,那下面我們來談應用軟件

在現在企業級應用中,我們的應用軟件一般分為三層 三層分別是表示層,業務邏輯層,數據持久層------------------------------|表示層|業務邏輯層|數據持久層|------------------------------我們來說說三層中的代表軟件 表示層 這一層一般在客戶端pc機上,最常見的是IE瀏覽器,這就是表示層的軟件 表示層是直接與使用者交互的軟件 業務邏輯層

這一層一般在服務器端,顧名思義,所有業務邏輯處理都在這一層完成 最典型的是appserver,比如IBM的websphere,BEA的weblogic還有tomcat/jboss等

這一層也是三層中的重點,我們要說的大部分內容都是關于這一層的,這個等會再說

這一層就叫做中間層 數據持久層

這一層典型的就是數據庫,一般也在服務器端 但該服務器一般與裝業務邏輯層軟件的服務器分開 當然你也可以用IO輸入輸出流往硬盤上寫東西

但沒人會建議你這么做,因為這樣做你的數據缺乏管理,不管怎樣 這一層要做的就是保存數據,業務邏輯層軟件一般不負責保留數據

或者說業務邏輯層只負責暫時儲存數據,一關機,業務邏輯層數據全部over了 那么數據的持久化(也就是儲存數據)就必須要在這一層完成

下面放著這些概念不談,我們來說說將來的趨勢 趨勢一:

瘦客戶端,很早很早以前,當時C/S模式也就是client/server 客戶端軟件大行其道的年代,一個pc用戶,是采用一個傻終端連接到服務器上 然后進行相應的操作,最典型的就是我們上bbs經常用的c-term 這就是那個時代的產物,同樣還有我國現行的機票定座用的e-term 后來呢,瀏覽器變得非常流行,人們發現,瀏覽器也能傳遞一些數據 雖然這些數據并不像那些終端那樣準確,但應付大多數日常需求足夠了 于是人們就提出一個瘦客戶端概念,也就是說,將來表示層所有的其他軟件疾揮? 我們唯一需要的就是一個網頁瀏覽器,然后通過瀏覽器輸入ip地址連接到服務器

然后進行相關的操作,由于網頁瀏覽器一般每個操作系統都有自帶一個 這樣做就達到了給我們客戶端瘦身的目的(不需要安裝額外軟件)這樣模式被稱作B/S模式,也就是browser/server模式

但需要指出的是,雖然瘦客戶端是趨勢,但并不代表胖客戶端沒有市場 尤其是一些復雜的業務操作,還是瀏覽器這種簡單軟件無法勝任的 趨勢二:

傻數據庫,ok,首先,我承認,這個名詞是我發明的,但我實在無法找到一個更好的表達

什么是傻數據庫,如果誰對數據庫有所了解的話,就知道,以前的數據庫 有自己的一套管理體系,甚至有自己的客戶端,比如oracle,mysql,sqlserver都有

在某個管理工具上寫什么sql語句查詢數據庫是我們以前常做的事 那么將來我們提倡的是:將所有的業務邏輯封裝到業務邏輯層去 管理的事情由軟件來做,由業務邏輯層的軟件來做 所謂傻數據庫就是說,將來的數據庫什么事都不用做

只用把數據給我保存好就行了,那些復雜的業務邏輯什么外鍵什么關聯 都沒數據庫什么事了,都交給業務邏輯層軟件來做

這樣做的好處就是:我們就不需要這些該死難懂又復雜的數據庫系列管理工具了 而且這些工具每個數據庫都有自己的工具,完全不一樣,亂七八糟,沒有人喜歡面對他們

除了數據庫維護人員,也就是DBA,我們是軟件工程師,維護的事讓他們去做 而且嚴禁數據庫維護人員改動數據庫的數據,他們只做備份,必要時候恢復一下就是了

了解了這兩個趨勢之后,是不是有種砍頭去尾保中間的感覺?

沒錯,未來的趨勢就是中間件時代,中間件工程師將是未來計算機應用的主流 那再次統一一下概念,什么是中間件?

記得我上學的時候,看ibm的教材,看了半天中間件定義,就看懂記住一句話 中間件是做別人不愿意去做的事情,現在想想,狗屁定義,呵呵 什么是中間件,中間件是業務邏輯層的應用軟件 是處理業務數據與客戶端之間業務邏輯的一種應用軟件 一種提供網絡服務的服務器端應用軟件

舉個非常簡單的例子,網上銀行,某個人想用IE進入工行的賬戶,然后轉帳 在這個例子中,客戶端表示層顯然是IE,數據持久層顯然是銀行的核心數據庫 那么中間件是什么?中間件就是提供這種服務的系統 這三層的劃分如下

------------------------------|表示層 | 業務邏輯層 | 數據持久層 |------------------------------| IE | 網上銀行 | 數據庫 |------------------------------給初學者之五:企業級應用之中間件 前面一篇簡單介紹了一下應用軟件的分層

下面重點介紹一下中間件,也就是業務邏輯層的軟件結構 從本系列第二篇我們知道,java程序是跑在虛擬機之上的 大致結構如下:------------| grogram |------------| 虛擬機 |------------| 操作系統 |------------也就是說操作系統先運行一個java虛擬機,然后再在虛擬機之上運行java程序 這樣做的好處前面也說過了,就是安全,一旦出現病毒或是其他什么東西 掛掉的是虛擬機,操作系統并不會受多大影響

這時候有人可能會問,為什么非要虛擬機?把操作系統當成虛擬機為什么不行? 可以,當然可以,但是這樣做某一個應用軟件的bug就可能造成整個操作系統的死亡

比如說我們在某個服務器上安裝了一個收發電子郵件的軟件和java虛擬機 那么一旦黑客通過收發電子郵件的軟件入侵系統,那么操作系統就整個玩完 那么如果黑客通過java程序進行攻擊的話,那么死的將會是虛擬機而不是操作系統

大不了虛擬機崩潰,而操作系統正常運行不受任何影響

舉個簡單例子,比如說最常見的是將數據庫(DB)與中間件放在同一臺服務器上------------------------| program | |-----------| DB | | 虛擬機 | |------------------------| 操作系統 |------------------------那么此時如果沒有虛擬機,黑客病毒攻擊中間件系統,就有可能造成操作系統的死亡

那此時數據庫也有可能跟著一起玩完,那損失可就大咯

那如果此時有虛擬機,那么一旦被攻擊,死的是虛擬機,操作系統與數據庫不受任何影響

嗯,回顧完虛擬機,再來介紹中間件

在很早很早以前,任何一家企業,想要搭建一個局域網系統,他需要請許多個工程師

比如說我們想搭建一個網上銀行,客戶端用瀏覽器,后臺數據庫比如說用oracle 那么搭建這樣一個網上銀行,可能需要用到多少個工程師,我們來算一算 首先,由于客戶端用的是瀏覽器,我們需要一些了解網絡通訊協議以及一些瀏覽器標準的網絡工程師

其次,由于后臺數據庫用的是oracle,那我們還需要請oracle的工程師,因為數據庫這一層每個數據庫公司的接口什么都不一樣

然后,我們還需要一些操作系統的工程師,因為我們的系統需要跟操作系統直接交互

最后,我們需要一些設計網上銀行系統及其相關業務的工程師

太多了太多了,這樣一個中間件隊伍實在太龐大了,制作維護成本實在太高了 不僅如此,這樣一個中間件就算做出來,他們所寫的代碼也只能滿足這一家公司使用

其它公司統統不能再用,代碼重用率極低,近乎不可能重用 畢竟這個系統中改動任何一個部分都有可能涉及到整個系統的改動 那么如何降低成本? 我舉出了四組的工程師: 網絡工程師,數據庫工程師,操作系統工程師以及設計網上銀行系統的業務工程師

除了最后一組設計網上銀行的業務工程師之外,前面三組工程師是不是每一個項目都需要的?

就算不是每一個項目都需要,至少也是絕大多數項目需要的吧?

哪個項目能夠脫離網絡,數據庫和操作系統?不可能,在這個時代已經很少很少了

好,那既然每個項目都需要,我們是不是可以用一個產品來取代這三組的工程師呢?

我們的業務工程師只需要遵循這個產品所提供的接口,進行相應的開發就行了 人們提出了一種叫做appserver也就是應用服務器的東西

應用服務器是干什么的?按官方的說法,應用服務器是包括有多個容器的軟件服務器

那容器是什么?容器(Container)到底是個什么東西我想多數人還是不清楚 在說這個之前,先介紹一下組件

什么是組件,組件是什么?組件其實就是一個應用程序塊 但是它們不是完整的應用程序,不能單獨運行

就有如一輛汽車,車門是一個組件,車燈也是一個組件 但是光有車燈車門沒有用,它們不能跑上公路

在java中這些組件就叫做javabean,有點像微軟以前的com組件 要特別說明的是,由于任何一個java文件編譯以后都是以類的形式存在 所以javabean肯定也是一個類,這是毫無疑問的 好,那么容器里裝載的是什么呢?就是這些組件 而容器之外的程序需要和這些組件交互必須通過容器

舉個例子,IE發送了一個請求給容器,容器通過調用其中的一個組件進行相關處理之后 將結果反饋給IE,這種與客戶端軟件交互的組件就叫做servlet 但是組件有很多種,那么如何區分這些組件呢?

有多種管理辦法,比如同是同樣是servlet,有些是通過jsp生成的

而有些是開發人員自己寫的,那么通過jsp生成的servlet集中放在一個地方 而開發人員自己寫的則需要在xml里面配置一些基本的參數

同時,不同組件有可能還需要繼承一些特定的父類或者接口,這也是容器管理的需要

還有其他的一些組件,這里就不一一說明舉例了 那么容器有很多種,按照他們裝載的組件類型劃分

比如有裝ejb的ejb容器,有裝servlet與jsp還有靜態頁面的web容器等等 //這種只含有web容器的應用服務器也被叫做web服務器 當表示層的應用軟件通過網絡向appserver發送一個請求的時候

appserver自動找到相應容器中的組件,執行組件中的程序塊,把得到結果返還給客戶

而我們要做的事就是寫組件也就是javabean,然后放到appserver里面去就可以了

至于怎樣與IE通訊,怎樣截獲網絡上的請求,怎樣控制對象的數量等等 這些繁瑣而無味的工作我們都不管,都由appserver去做吧,把注意力集中在業務邏輯上

appserver與其他相關軟件的關系如下圖:

------------------------| 表示層 | 業務邏輯層 | 數據持久層 |------------------------| |-----------------| | | IE | | javabean | | | |->------------------> DB | | client <-appserver <-| | |-------------------------| | | | 虛擬機 | | |--------------|-------------------------|------------| | Windows | Linux/Saloris |LinuxSaloris| |--------------|-------------------------|------------| 圖上可以看出:虛擬機負責處理中間件與操作系統之間的交互 appserver則負責組件的管理以及與其他兩層的業務交互 1 附圖: image002.gif(76463 字節)

要說明的是上圖中還包含有應用程序客戶端容器(Application client container)管理應用程序客戶端組件的運行,應用程序客戶端和它的容器運行在客戶機 這種情況比較復雜一般說的是兩個server之間的通訊

比如jsp/servlet容器在一個服務器上,而ejb容器在另外一個服務器上等等 這是分布式操作系統大面積應用的基礎,這個以后再說 下面這張相對簡單: 附圖: j2ee.gif(8226 字節)

嗯,那么話題再回到中間件上去,什么是中間件?

appserver就是所謂的中間件,但是中間件不僅有appserver,還有其他的東西 換句話說,appserver只是中間件的一種

而關于中間件有諸多規范以及遵循這些規范的模型 最流行的規范無非兩種,一個是j2ee還有一個是.net 但是.net幾乎只有微軟在用,所以很多人把.net這個規范就當成是微軟的中間件產品

也不為過,畢竟沒幾個公司喜歡跟著微軟屁股后面跑的 給初學者之六:java企業級應用之綜合篇 我們知道中間件有很多種規范以及相關的模型 最流行的一個是j2ee還有一個是.net 那么各大公司關于這兩套規范各有什么產品以及周邊呢? j2ee: 黃金組合

操作系統:Solaris 應用服務器:Weblogic 數據庫:Oracle 開發工具:JBuilider/IntelliJ IDEA 優點:性能一級棒,大企業大公司做系統的首選,世界五百強幾乎都是這套組合 缺點:極貴

超級組合,也是最安全最酷的黃金組合,硬件采用SUN公司的機器 但是SUN的服務器很貴,同等價格不如去買IBM的機器

SUN的服務器支持Solaris的效果自然不用說,Solaris號稱是世界上最安全的操作系統

Oracle也是世界上最安全,性能最優的數據庫,Weblogic是當今性能最優的appserver JBuilder和IDEA各有所長,JBuilder是Borland公司的招牌之一

是當今世界上最流行的java IDE,用delphi寫的,但網絡上評價似乎不是很好 IDEA擁有插件功能,界面在所有java IDE中最為漂亮,東歐人開發的產品 東歐人嚴謹的作風在這個產品上體現得尤為突出,用java寫的 IDEA甚至號稱自己被業界公認為是最好的IDE//個人保留意見,沒有最好只有更好

但我用JBuilder的時候發現了不少bug,而至今還沒有在IDEA上發現什么bug 個人推薦IDEA 價格方面,Solaris開源,但是SUN的服務器比較貴,Weblogic最高是34萬 oracle標準版要18.6萬,企業版要49萬,JBuilder要2.7萬左右 IDEA零售價大概是500美金,也就是5000多元

另外,雖然理論上這些產品的綜合性能要高于其他選擇,但是必須看到 由于產商之間的利益沖突,比如oracle也有自己的appserver,但是性能不怎樣

使得這幾種產品之間協作的性能要比預想中的要差一點點

第二篇:牛人對初學者學Java的建議

一個牛人給java初學者的建議 給初學者之一:淺談java及應用 學java不知不覺也已經三年了

從不知java為何物到現在一個小小的j2ee項目經理

雖說不上此道高手,大概也算有點斤兩了吧

每次上網,泡bbs逛論壇,沒少去java相關的版面

總體感覺初學者多,高手少,精通的更少

由于我國高等教育制度教材陳舊,加上java自身發展不過十年左右的時間

還有一個很重要的原因就是java這門語言更適合商業應用

所以高校里大部分博士老師們對此語言的了解甚至不比本科生多

在這種環境下,很多人對java感到茫然,不知所措,不懂java能做什么

即便知道了java很有用,也不清楚該從哪里入手

所以就有了 java入門難 這一說法

ok,那我們就從java到底能做什么聊起

先說什么是java

java是一種面向對象語言,真正的面向對象,任何函數和變量都以類(class)封裝起來

至于什么是對象什么是類,我就不廢話了

關于這兩個概念的解釋任何一本面向對象語言的教材里面都有

知道了什么是java,那自然就會對java能干什么感興趣

在說java能做什么之前,先說java作為一個真正面向對象語言的優點

首先第一個,既然是真正的面向對象,那就要做到徹底的封裝

這是java和c++最大的不同,java所有的源碼以及編譯后的文件都以類的形式存在

java沒有所謂的類外部定義,所有的函數(方法)以及變量(屬性)都必須在類內部定義

這樣就不會出現一個類被切割成這里一塊那里一塊的情況,c++就可以,不是么?

這樣做使得整個程序的結構異常清晰,明了

其次第二個,最讓人歡呼雀躍的是完全屏蔽了指針,同時引入了垃圾回收機制

任何一個寫過c/c++代碼的人,都會對內存管理深惡痛絕

因為這使得我們不能把主要精力放在我們關心的事情上

而需要考慮計算機內部的一些事情,作為一個軟件工程師

我想沒有一個人愿意把大量的時間花在內存管理上,畢竟我們不是電子工程師

此時java的優勢體現出來了,它完全屏蔽了內存管理

也就是說,如果你用java寫程序,寫出來的任何一個程序內存上的開銷,都不受你控制

乍一看,似乎你受到了束縛,但實際上不是這樣

因為雖然你的程序無法對內存進行管理,降低了一定的速度

但你的程序會非常非常的安全,因為你無法調用一個空指針

而不像以前寫c的時候那樣,成天因為空指針而擔驚受怕

當然,如果你深入了解這一行,就會發現java其實也無法保證程序不去調用空的指針

但是它會在最大程度上避免空指針的調用

這已經很好了,安全,這是java的最突出的優點

第三個,虛擬機跨平臺,這是java最大的特點,跨平臺

可能所有人都知道windows,但是不是所有人都知道unix

和java一樣,很多人都不知道unix這種操作系統干什么用

我不想多說unix的應用,這不是主要,但是我要說,大部分小型機

工作站,都跑在unix一族的操作系統上,比如linux/solaris

unix比起windows有一個最顯著的特點,穩定,這就好比思科和華為

思科的機器慢但穩定,華為的機器快但不穩定,作為服務器這一端來說

要的皇怯卸囁歟俏榷ǎ評nix在服務器端還是非常有市場的

而且很重要的windows不安全,在ms的宣傳中我想所有人都很少看到安全二字

因為windows操作系統針對的是pc用戶,pc死機就死機咯,大不了重啟

瘟95最經常冒出來的就是藍屏,在服務器這一端上因為ms沒有自己的芯片

所以要做系統有些力不從心啊。扯遠了,那么java可以做到在windows上編譯

然后在unix上運行,這是c/c++做不到的那么說到這里,java能做什么逐漸清晰起來

剛才說到了,java程序有一個的特點是安全

這個安全是針對你的系統來說得,系統在跑了java程序之后會特別地穩定

而且還能跨平臺,那么很明顯,java主要應用于除了windows操作系統以外所有的平臺

比如手機,服務器

想想看,如果你寫的程序要跑在手機上,而手機有多少款用的是windows?

就算有,那如果你用c/c++,是不是要針對每一款手機寫一套程序呢? 累死,那跨平臺的java就不用,做到編譯一次,隨時運行

同樣,在服務器這一端,如果我想給一個網絡門戶站點,比如sina

寫一個應用程序,pc的性能肯定無法滿足sina這樣大站點并發數量的要求

那么它就需要買服務器,那么服務器ms沒有市場,而且windows很不安全

那么十之八九會買一個sun/ibm的機器,或者hp,但不管是誰的機器

它裝的操作系統也不會是windows,因為windows太不安全了,而且多核的支持太差了

這個有空再說,那么如果你要寫一個程序在這樣的機器上跑

難道我們就在這個機器上做開發么?當然不可能,一般程序員開發用的都是pc,windows

那么該怎么辦?寫一個程序,然后再拿到服務器上去編譯,去調試?

肯定不可能,所以我們就希望找到一個語言,編譯完生成程序之后

在pc上調試,然后直接移植到服務器上去,那么此時,我們就會毫不猶豫地選擇java

因為在跨平臺以及安全性來說,java永遠是第一選擇

ok,下面說java的缺點

一慢,這其實是一種誤區,這就好比goto語句一樣

java也拋棄了指針,雖然看上去似乎變慢了,但是在這個兩三年硬件性能就能翻番的年代

速度已經不是我們關心的問題了,而且對于企業級的應用來說

沒有什么比安全穩定更重要的,換句話說,我們可以忍受慢,但是不能忍受死機和藍屏

而且越大型的應用,這種慢的劣勢體現得越模糊

因為當系統項目越做越大,任何一個環節做不好都可能影響全局的情況下

安全尤其重要,而且就像goto語句一樣 這種過分追求速度的主張會給系統開發和糾錯以及維護帶來無可挽回甚至不可避免的損失

把內存交給計算機去管理吧,這種代價值得

我們做的不是pc游戲,沒必要把內存的那一點點消耗當親爹

二難看,又是一個誤區,很多人甚至拿出java swing控件畫出的界面來說

呵呵,其實java不是不能畫得好看,IDEA就是java寫的IDE,挺漂亮的

但為什么難看呢,是因為swing控件它本身就是unix時代的產物,swing控件貼近unix界面

老外看unix界面其實挺順眼的,他們就是吃unix飯長大的

而unix又是吃百家飯的,不像ms那么唯利是圖,所以不怎么對中國人友好

加上我國又沒有公司在做操作系統,所以看上去是不怎么順眼

其實玩過unix的人都知道,unix對中文的支持一直不怎么好

三我還沒想到,其他人補充

給初學者之二:從JDK說起

在知道了java有什么優點,能做什么之后

就該說一下java該如何去學了

在說java如何去學之前,有必要把java的幾個大方向做一個簡單說明

早在五年前,嗯,應該說是六年前,也就是99年的時候

sun公司做出了一個決定,將java應用平臺做一個劃分

畢竟在不同領域,語言應用特性是有區別的 針對不同領域內的應用,sun公司可以發布相關高端標準來統一規范代碼

這三大塊就是J2SE,J2EE以及J2ME

這個舉措今天看來無疑是非常了不起的

正是由于這次革命性的發展,使java從一種小打小鬧游戲性的語言

發展成為今天企業級應用的基礎

這里要特別說明一下J2SE J2EE J2ME中2的意思

其實2就是英文單詞to的諧音,就是to的意思

而不是second edition,當然java 2本身版本號就是1.2,也有點2nd edition的味道

說點題外的,sun公司發布的java版本很有意思

雖然總是寫是1.X但其實外界對這種版的說法也就是X.0

比如java 2,其實就是java 1.2

1.3其實就是3.0,1.4就是4.0,現在所說的5.0 其實就是1.5

只是以前我們更習慣叫1.X而已

可能到了5.0以后,就全改叫X.0而不是1.X了

所以以后聽到別人說java 5.0,千萬別驚訝,其實就是1.5

在這三個J2*E中J2SE是基礎,就是java 2的標準版(java 2 standard edition)

也就是最基礎的java語言部分,無論學什么java技術,J2SE都是必須掌握的

要使用J2SE就必須安裝JDK(java development kit)

JDK在sun公司的主頁上可以免費下載,下載后需要安裝,具體安裝流程看教材 JDK包含有五個部分:核心API,集成API,用戶界面API,發布技術還有java虛擬機(JVM)

先說運行環境,運行環境最主要要說的就是java虛擬機(JVM)

前面我們說過java是跨平臺的語言,那么如何做到跨平臺呢?畢竟每種操作系統都是不同的

java的設計者們提出了一個虛擬機的概念

在操作系統之上建立一個統一的平臺,這個平臺必須實現某些功能以支持程序的運行

如下圖:

------

|

program

|

------

|

JVM

|

------

| UNIX | Windows | Linux | Solaris |..------

程序員所寫的每一個程序都先運行在虛擬機上

所有操作都必須經過虛擬機才能和操作系統交互

這樣做不僅統一了所有操作系統,同時也保證了操作系統的安全

要死機的話,死的是虛擬機(JVM)而操作系統并不會受此影響

而我們所說的java運行環境指的主要是JVM,其他的不說了,省略

下面說說JDK(java development kit)的API,其實用JDK來包括運行環境以及開發工具

個人感覺是不恰當的,因為這三個單詞僅能說明開發工具,也就是幾個標準的API

而沒有讓人感覺到有運行環境的意思在里面,這是題外

那么什么是API?

簡單地說就是Application Programming Interface,應用程序編程接口

在java里面,就是一些已經寫好了的類打成的包

這又要解釋什么是類什么是包了,簡單說一下,包就是類的集合

一個包包含零個或多個類,嗯,具體的可以去看書

這些類是java的基礎類,常用的類,可以簡單理解成java的工具集

最后說一下JDK的發布技術,其實按我的理解,講白了就是編譯器

將.java文件轉換成.class文件的一種技術

這三部分組成了JDK,有了JDK,就可以開發出J2SE應用軟件了

最原始的只要用一個記事本寫幾行代碼就可以了

但一般來說我們會使用效果比較好的開發工具,也就是IDE

在J2SE這一塊,特別推薦JCreator這款IDE

sun公司的產品,與JDK結合得幾乎是天衣無縫,非常適合初學者使用

教材方面中文的推薦電子工業出版社出版的《java教程》初級與高級篇各一本

還有就是《21天學通java》雖然有人說21天系列是爛書,但個人感覺

對于j2se,這本書翻譯得已經很不錯了,基本沒有什么語法錯誤,語句也很通順

最后要說的就是《thinking in java》

這本書自然很經典,說得比較細,只是我覺得不太適合初學者,其實也不難

初學者直接看也不成問題,但個人感覺還是找本教材也就是前面推薦的兩款來看比較好

基本概念的理解還是用教材的,畢竟thinking in java有的版本翻譯得很爛

而且個人建議還是看原版比較好,當然這幾本都看最好了,但如果沒時間

至少精讀其中一本,然后再看其他兩本就可以,其實三本書內容也差不多

但看問題的角度方式以及面向的讀者也都不同,嗯,怎么說呢,找適合自己的吧

最后要說的是

由于虛擬機的存在,J2SE的大多數軟件的使用會比一般桌面軟件慢一些

效果不盡如人意,現在大概只有swing控件還在使用吧,其它沒怎么聽說

J2EE&J2ME

這是java應用的重中之重,如果想拿高薪,最好把J2EE學好

記得以前在csdn上看過一個調查,上萬的程序員主要從事哪方面的工作

十個中有八個是做J2EE的,其他兩個一個做J2ME,還有一個做嵌入式

也許有些夸張,但也從某一方面說明J2EE人才的稀缺以及應用的廣泛

所以如果想學java,只精通j2se是永遠不夠的,至少還需要時間去了解其它兩個J2*E

給初學者之三:java企業級應用之硬件篇 總算講到企業級應用了,內容開始逐漸有趣起來

java企業級應用分為硬件篇和軟件篇

重點在軟件,硬件是外延,嚴格地說與java沒有必然聯系

但是,由于java是網絡語言,不了解硬件的一些基礎知識

軟件知道再多也沒什么用,不要上了戰場還不知道為什么而打仗 硬件是軟件的基礎,在這個前提下,有必要專門花一點點篇幅來聊一下硬件

硬件,簡單地說就是我們實際生活中看得見摸得著的東西

也就是那些冰冷的機器,比如服務器,個人電腦還有網絡交換機,路由器等等

那么先拋開網絡設備不談,先來說說計算機電腦的歷史

在很早很早以前,人類創造了第一臺電腦,那時候的電腦只是一臺用來計算的機器

無比大,無比重,無比傻,除了算其它屁事不會做,沒有所謂的人工智能與計算機網絡

但是總算是誕生了,雖然以今天的眼光去看那時候的機器巨傻無比

只配叫做計算器而不是電腦,沒有邏輯思維能力,只會死算

但千里之行,始于足下,反正是造出來了

然后隨著時間的推移,制造業發展發展發展

電腦性能逐漸得到提升,速度快了起來,成本也逐漸低了下來

于是人們造出了第二臺,第三臺,第四臺,第五臺……第n臺計算機

人們就造出了無數臺計算機并使其成為一種產品

逐漸應用于許多復雜計算領域,不僅僅是科研,許多生產領域也開始出現計算機的影子

然后又隨著時間的推移,人們發現不可能把所有的計算機都做成一個樣子

因為各行各業對計算機性能的要求各不相同

于是開始把計算機劃分檔次,最簡單地是按照計算機的大小劃分 就是教科書上寫的大型機,中型機,小型機

//個人感覺這樣分純粹扯淡,還以為是小孩子玩球,分為大球,中球和小球

但是不管怎樣,計算機不再是千篇一律一個樣子了

按照性能的不同,在不同領域,出現了滿足符合不同要求的計算機

幾乎在同時,人們也開始考慮計算機之間通訊問題

人們開始考慮將不同的計算機連接起來,于是網線出現了,網絡出現了

又隨著網絡的發展,出現了一下專門為了尋址而存在的機器

這就是路由器和交換機,然后又出現了一些公益性的組織或團體

他們制定了一系列的標準來規范以及管理我們的網絡

于是3w出現了,計算機的網絡時代來臨了

嗯,說到這里,計算機發展到今天的歷史大概說完了

我們來詳細說說網絡時代的計算機以及各個硬件供應商之間的關系

前面說到了,計算機分為大型機,中型機和小型機……

但是現在市場上沒有人這樣分,要是出去買機器,對硬件供應商說

我要買一款中型機,或者說,我要買一款小型機,硬件供應商肯定會問問題

他們會問你買機器干什么用的?科學計算啊還是居家用,是作服務器啊還是圖形設計

但不管怎樣,簡單地說大中小型機已經沒有什么意義了

我們按照使用范疇來劃分

簡單劃分為 服務器,工作站還有微機

服務器(server)

服務器涵蓋了幾乎所有的大型機以及大部分中型機甚至一些小型機

用通俗點話說衿骶褪悄掣齬?4小時不間斷運行提供服務的機器

比如賣飛機票(中航信),比如酒店預定(攜程)

比如提供門戶站點相關服務(sina),比如電子商務(ebay,amazon,阿里巴巴)

這些服務對機器都有一些特定的要求,尤其強調安全和穩定

工作站(workstation)

工作站其實是圖形工作站的簡稱,說白了,就是某種功能極其強大的計算機

用于特定領域,比如工程設計,動畫制作,科學研究等

個人電腦/微機(pc)

計算機網絡的最末端,這個應該不用我說太多了

網絡時代的pc已經普及到千家萬戶

說完了分類,我們就來說說各個硬件供應商

首先是服務器還有工作站

這兩類硬件供應商主要是以下三家

Sun,IBM還有HP(惠普)

然后是PC

以前IBM還有PC事業部,現在被聯想吞并了(蛇吞象)

現在國際市場上有聯想和DELL(戴爾),目前戴爾還是國際老大

還有HP康柏

然后是網絡,也就是路由器和交換機

這塊市場嘛,Cisco(思科)Brocade(博科)還有McDATA三足鼎立

內核(CPU)

PC內核

主要是AMD和Intel,前者最近與Sun公司合作,Sun也有一部分單雙核服務器用的是AMD的

服務器與工作站內核

這一塊與硬件廠商綁定

還是Sun,IBM,HP三家自己生產

題外

在一些大型主機應用市場,比如賣飛機票

德國的漢莎,中國的中航信,香港的國泰用的都是尤利(美國的公司,英文名我忘了)

其它用的是IBM的機器,現在能做大型機的感覺似乎只有IBM可以

尤利已經快倒了,技術太落后了,現在他們的系統還是fortran寫的,連c都不支持

要特別說明的是,一個超大型主機然后多個小終端/pc的結構現在越來越沒市場了

將來的趨勢是用一整個包含多個服務器的分布式操作系統來取代這些大型主機

因為大型主機更新換代極其困難,一旦數據量超過了主機的處理能力

那么就要換主機,這個成本是極大的,但是如果用分布式操作系統

那就只需要增加小服務器就行了

硬件就大概說到這里,與大多數人沒什么關系

因為大多數人壓根不可能進入這些硬件領域,除非做銷售

說了這么多,只是為了給軟件部分打基礎而已

//做嵌入式的除外

給初學者之四:java企業級應用之軟件篇 嗯,說過了硬件就該是軟件了

這篇是這個系列的重中之重

首先我們來說說什么是軟件,統一一下概念

所謂軟件通俗地說就是一套計算機程序

實現了某些功能的計算機程序

在很早很早以前,一臺計算機的軟件是不分層次結構的

一臺計算機只有一個系統,這個系統既是操作系統又是應用軟件,與硬件緊密綁定

后來經過許多年的發展發展發展

人們把一些與硬件緊密相連的又經常用到必不可少的功能做到一套程序中去

這一套程序就被人們稱做操作系統 另外一些可有可無的,不同工作適應不同環境的功能封裝到另外一套程序中去

而這一系列程序被人們稱作應用軟件

如下圖:

------------

|應用軟件:falshgat/IE/realplayer/winamp..|

------------

|操作系統:UNIX/Windows/Linux/Solaris...|

------------

前一篇我們知道,硬件分為服務器工作站與pc

其實無論哪種硬件的軟件,都有操作系統與應用軟件

ok,那下面我們來談應用軟件

在現在企業級應用中,我們的應用軟件一般分為三層

三層分別是表示層,業務邏輯層,數據持久層

------------------------------

|表示層|業務邏輯層|數據持久層|

------------------------------

我們來說說三層中的代表軟件

表示層

這一層一般在客戶端pc機上,最常見的是IE瀏覽器,這就是表示層的軟件

表示層是直接與使用者交互的軟件

業務邏輯層 這一層一般在服務器端,顧名思義,所有業務邏輯處理都在這一層完成

最典型的是appserver,比如IBM的websphere,BEA的weblogic還有tomcat/jboss等

這一層也是三層中的重點,我們要說的大部分內容都是關于這一層的,這個等會再說

這一層就叫做中間層

數據持久層

這一層典型的就是數據庫,一般也在服務器端

但該服務器一般與裝業務邏輯層軟件的服務器分開

當然你也可以用IO輸入輸出流往硬盤上寫東西

但沒人會建議你這么做,因為這樣做你的數據缺乏管理,不管怎樣

這一層要做的就是保存數據,業務邏輯層軟件一般不負責保留數據

或者說業務邏輯層只負責暫時儲存數據,一關機,業務邏輯層數據全部over了

那么數據的持久化(也就是儲存數據)就必須要在這一層完成下面放著這些概念不談,我們來說說將來的趨勢

趨勢一:

瘦客戶端,很早很早以前,當時C/S模式也就是client/server

客戶端軟件大行其道的年代,一個pc用戶,是采用一個傻終端連接到服務器上

然后進行相應的操作,最典型的就是我們上bbs經常用的c-term

這就是那個時代的產物,同樣還有我國現行的機票定座用的e-term

后來呢,瀏覽器變得非常流行,人們發現,瀏覽器也能傳遞一些數據

雖然這些數據并不像那些終端那樣準確,但應付大多數日常需求足夠了

于是人們就提出一個瘦客戶端概念,也就是說,將來表示層所有的其他軟件疾揮? 我們唯一需要的就是一個網頁瀏覽器,然后通過瀏覽器輸入ip地址連接到服務器

然后進行相關的操作,由于網頁瀏覽器一般每個操作系統都有自帶一個

這樣做就達到了給我們客戶端瘦身的目的(不需要安裝額外軟件)

這樣模式被稱作B/S模式,也就是browser/server模式

但需要指出的是,雖然瘦客戶端是趨勢,但并不代表胖客戶端沒有市場

尤其是一些復雜的業務操作,還是瀏覽器這種簡單軟件無法勝任的

趨勢二:

傻數據庫,ok,首先,我承認,這個名詞是我發明的,但我實在無法找到一個更好的表達

什么是傻數據庫,如果誰對數據庫有所了解的話,就知道,以前的數據庫

有自己的一套管理體系,甚至有自己的客戶端,比如oracle,mysql,sqlserver都有

在某個管理工具上寫什么sql語句查詢數據庫是我們以前常做的事

那么將來我們提倡的是:將所有的業務邏輯封裝到業務邏輯層去

管理的事情由軟件來做,由業務邏輯層的軟件來做

所謂傻數據庫就是說,將來的數據庫什么事都不用做

只用把數據給我保存好就行了,那些復雜的業務邏輯什么外鍵什么關聯

都沒數據庫什么事了,都交給業務邏輯層軟件來做

這樣做的好處就是:我們就不需要這些該死難懂又復雜的數據庫系列管理工具了

而且這些工具每個數據庫都有自己的工具,完全不一樣,亂七八糟,沒有人喜歡面對他們

除了數據庫維護人員,也就是DBA,我們是軟件工程師,維護的事讓他們去做

而且嚴禁數據庫維護人員改動數據庫的數據,他們只做備份,必要時候恢復一下就是了

了解了這兩個趨勢之后,是不是有種砍頭去尾保中間的感覺?

沒錯,未來的趨勢就是中間件時代,中間件工程師將是未來計算機應用的主流

那再次統一一下概念,什么是中間件?

記得我上學的時候,看ibm的教材,看了半天中間件定義,就看懂記住一句話

中間件是做別人不愿意去做的事情,現在想想,狗屁定義,呵呵

什么是中間件,中間件是業務邏輯層的應用軟件

是處理業務數據與客戶端之間業務邏輯的一種應用軟件

一種提供網絡服務的服務器端應用軟件

舉個非常簡單的例子,網上銀行,某個人想用IE進入工行的賬戶,然后轉帳

在這個例子中,客戶端表示層顯然是IE,數據持久層顯然是銀行的核心數據庫

那么中間件是什么?中間件就是提供這種服務的系統

這三層的劃分如下

------------------------------

|表示層 | 業務邏輯層 | 數據持久層 |

------------------------------

| IE | 網上銀行

| 數據庫

|

------------------------------

給初學者之五:企業級應用之中間件

前面一篇簡單介紹了一下應用軟件的分層

下面重點介紹一下中間件,也就是業務邏輯層的軟件結構 從本系列第二篇我們知道,java程序是跑在虛擬機之上的 大致結構如下:------------| grogram |------------| 虛擬機

|------------| 操作系統 |------------也就是說操作系統先運行一個java虛擬機,然后再在虛擬機之上運行java程序 這樣做的好處前面也說過了,就是安全,一旦出現病毒或是其他什么東西 掛掉的是虛擬機,操作系統并不會受多大影響

這時候有人可能會問,為什么非要虛擬機?把操作系統當成虛擬機為什么不行? 可以,當然可以,但是這樣做某一個應用軟件的bug就可能造成整個操作系統的死亡 比如說我們在某個服務器上安裝了一個收發電子郵件的軟件和java虛擬機

那么一旦黑客通過收發電子郵件的軟件入侵系統,那么操作系統就整個玩完

那么如果黑客通過java程序進行攻擊的話,那么死的將會是虛擬機而不是操作系統 大不了虛擬機崩潰,而操作系統正常運行不受任何影響

舉個簡單例子,比如說最常見的是將數據庫(DB)與中間件放在同一臺服務器上------------------------| program |

|-----------|

DB

| | 虛擬機

|

|------------------------|

操作系統

|------------------------那么此時如果沒有虛擬機,黑客病毒攻擊中間件系統,就有可能造成操作系統的死亡 那此時數據庫也有可能跟著一起玩完,那損失可就大咯

那如果此時有虛擬機,那么一旦被攻擊,死的是虛擬機,操作系統與數據庫不受任何影響

嗯,回顧完虛擬機,再來介紹中間件

在很早很早以前,任何一家企業,想要搭建一個局域網系統,他需要請許多個工程師 比如說我們想搭建一個網上銀行,客戶端用瀏覽器,后臺數據庫比如說用oracle

那么搭建這樣一個網上銀行,可能需要用到多少個工程師,我們來算一算

首先,由于客戶端用的是瀏覽器,我們需要一些了解網絡通訊協議以及一些瀏覽器標準的網絡工程師

其次,由于后臺數據庫用的是oracle,那我們還需要請oracle的工程師,因為數據庫這一層每個數據庫公司的接口什么都不一樣

然后,我們還需要一些操作系統的工程師,因為我們的系統需要跟操作系統直接交互 最后,我們需要一些設計網上銀行系統及其相關業務的工程師 太多了太多了,這樣一個中間件隊伍實在太龐大了,制作維護成本實在太高了 不僅如此,這樣一個中間件就算做出來,他們所寫的代碼也只能滿足這一家公司使用 其它公司統統不能再用,代碼重用率極低,近乎不可能重用

畢竟這個系統中改動任何一個部分都有可能涉及到整個系統的改動

那么如何降低成本?

我舉出了四組的工程師:

網絡工程師,數據庫工程師,操作系統工程師以及設計網上銀行系統的業務工程師 除了最后一組設計網上銀行的業務工程師之外,前面三組工程師是不是每一個項目都需要的?

就算不是每一個項目都需要,至少也是絕大多數項目需要的吧?

哪個項目能夠脫離網絡,數據庫和操作系統?不可能,在這個時代已經很少很少了 好,那既然每個項目都需要,我們是不是可以用一個產品來取代這三組的工程師呢? 我們的業務工程師只需要遵循這個產品所提供的接口,進行相應的開發就行了 人們提出了一種叫做appserver也就是應用服務器的東西

應用服務器是干什么的?按官方的說法,應用服務器是包括有多個容器的軟件服務器 那容器是什么?容器(Container)到底是個什么東西我想多數人還是不清楚

在說這個之前,先介紹一下組件

什么是組件,組件是什么?組件其實就是一個應用程序塊 但是它們不是完整的應用程序,不能單獨運行

就有如一輛汽車,車門是一個組件,車燈也是一個組件 但是光有車燈車門沒有用,它們不能跑上公路

在java中這些組件就叫做javabean,有點像微軟以前的com組件 要特別說明的是,由于任何一個java文件編譯以后都是以類的形式存在 所以javabean肯定也是一個類,這是毫無疑問的

好,那么容器里裝載的是什么呢?就是這些組件

而容器之外的程序需要和這些組件交互必須通過容器

舉個例子,IE發送了一個請求給容器,容器通過調用其中的一個組件進行相關處理之后 將結果反饋給IE,這種與客戶端軟件交互的組件就叫做servlet

但是組件有很多種,那么如何區分這些組件呢?

有多種管理辦法,比如同是同樣是servlet,有些是通過jsp生成的

而有些是開發人員自己寫的,那么通過jsp生成的servlet集中放在一個地方 而開發人員自己寫的則需要在xml里面配置一些基本的參數

同時,不同組件有可能還需要繼承一些特定的父類或者接口,這也是容器管理的需要 還有其他的一些組件,這里就不一一說明舉例了

那么容器有很多種,按照他們裝載的組件類型劃分

比如有裝ejb的ejb容器,有裝servlet與jsp還有靜態頁面的web容器等等 //這種只含有web容器的應用服務器也被叫做web服務器 當表示層的應用軟件通過網絡向appserver發送一個請求的時候

appserver自動找到相應容器中的組件,執行組件中的程序塊,把得到結果返還給客戶 而我們要做的事就是寫組件也就是javabean,然后放到appserver里面去就可以了 至于怎樣與IE通訊,怎樣截獲網絡上的請求,怎樣控制對象的數量等等

這些繁瑣而無味的工作我們都不管,都由appserver去做吧,把注意力集中在業務邏輯上

appserver與其他相關軟件的關系如下圖:

------------------------|

表示層

|

業務邏輯層

| 數據持久層 |------------------------|

|

-----------------

|

| |

IE

|

|

javabean

|

|

| |

->

-----------------

->

DB

| |

client

<-

appserver <-

| |

|-------------------------|

| |

|

虛擬機

|

| |--------------|-------------------------|------------| |

Windows

|

Linux/Saloris

|LinuxSaloris| |--------------|-------------------------|------------| 圖上可以看出:虛擬機負責處理中間件與操作系統之間的交互 appserver則負責組件的管理以及與其他兩層的業務交互 附圖: image002.gif(76463 字節)

要說明的是上圖中還包含有應用程序客戶端容器(Application client container)管理應用程序客戶端組件的運行,應用程序客戶端和它的容器運行在客戶機 這種情況比較復雜一般說的是兩個server之間的通訊

比如jsp/servlet容器在一個服務器上,而ejb容器在另外一個服務器上等等 這是分布式操作系統大面積應用的基礎,這個以后再說 下面這張相對簡單: 2 附圖: j2ee.gif(8226 字節)

嗯,那么話題再回到中間件上去,什么是中間件?

appserver就是所謂的中間件,但是中間件不僅有appserver,還有其他的東西 換句話說,appserver只是中間件的一種

而關于中間件有諸多規范以及遵循這些規范的模型 最流行的規范無非兩種,一個是j2ee還有一個是.net 但是.net幾乎只有微軟在用,所以很多人把.net這個規范就當成是微軟的中間件產品 也不為過,畢竟沒幾個公司喜歡跟著微軟屁股后面跑的

給初學者之六:java企業級應用之綜合篇

我們知道中間件有很多種規范以及相關的模型 最流行的一個是j2ee還有一個是.net 那么各大公司關于這兩套規范各有什么產品以及周邊呢?

j2ee:

黃金組合

操作系統:Solaris 應用服務器:Weblogic 數據庫:Oracle 開發工具:JBuilider/IntelliJ IDEA 優點:性能一級棒,大企業大公司做系統的首選,世界五百強幾乎都是這套組合 缺點:極貴

超級組合,也是最安全最酷的黃金組合,硬件采用SUN公司的機器

但是SUN的服務器很貴,同等價格不如去買IBM的機器

SUN的服務器支持Solaris的效果自然不用說,Solaris號稱是世界上最安全的操作系統 Oracle也是世界上最安全,性能最優的數據庫,Weblogic是當今性能最優的appserver JBuilder和IDEA各有所長,JBuilder是Borland公司的招牌之一

是當今世界上最流行的java IDE,用delphi寫的,但網絡上評價似乎不是很好 IDEA擁有插件功能,界面在所有java IDE中最為漂亮,東歐人開發的產品 東歐人嚴謹的作風在這個產品上體現得尤為突出,用java寫的

IDEA甚至號稱自己被業界公認為是最好的IDE//個人保留意見,沒有最好只有更好 但我用JBuilder的時候發現了不少bug,而至今還沒有在IDEA上發現什么bug 個人推薦IDEA 價格方面,Solaris開源,但是SUN的服務器比較貴,Weblogic最高是34萬 oracle標準版要18.6萬,企業版要49萬,JBuilder要2.7萬左右 IDEA零售價大概是500美金,也就是5000多元

另外,雖然理論上這些產品的綜合性能要高于其他選擇,但是必須看到

由于產商之間的利益沖突,比如oracle也有自己的appserver,但是性能不怎樣 使得這幾種產品之間協作的性能要比預想中的要差一點點--開源系列

操作系統:-應用服務器:JBoss 數據庫:MySql 開發工具:Netbeans 優點:便宜,性能未必最佳,但是對付中小企業足夠了 缺點:出了問題自己抗吧

嗯,這是java陣營最大的特色,免費免費,還有在開發工具這一欄Eclipse也是免費的 但后面要說,算了,換個有代表性的開源產品來

tomcat僅有web容器而沒有ejb容器,而jboss已經集成了tomcat 也就是說下載了jboss之后,啟動的同時也就啟動了tomcat jboss在tomcat基礎之上多加了一個ejb容器,使得jboss+tomcat成為和weblogic websphere之外又一個得到廣泛應用的appserver 現在大概是這樣,中小型企業多用jboss,如果應用小一點就用tomcat 只有給那些大型企業做的項目,才會花錢去上一個weblogic或者websphere mysql也是開源的數據庫,做得非常不錯,如果系統對數據庫要求不高 或者安全要求不是非常嚴格,mysql是一個非常不錯的選擇 開發工具方面,netbeans是sun公司極力推廣的一種IDE 聽說在北美市場使用量已經超過eclipse了

操作系統,軟件再不用錢,服務器也要錢,看這臺機器上跑什么操作系統就用什么了--IBM套餐

操作系統:Linux 應用服務器:Websphere 數據庫:DB2 開發工具:Eclipse/WebSphere Studio 優點:服務好,IBM可以提供全套服務,也可以替客戶承擔風險 缺點:把機器數據全部交給IBM,安全什么的都由不得你了

呵呵,IBM全套產品,甚至包括硬件設備IBM的服務器

由于是一個公司的產品,各產品之間的協作自然不錯

價格方面,Linux,DB2,Eclipse都是開源產品,Websphere目前零售價是33.8萬人民幣 IBM服務器不錯,可以考慮--.net:

微軟陣營

操作系統:Windows 應用服務器:.net應用服務器(好像叫IIS)數據庫:SqlServer 開發工具:MS Visual Studio 優點:客戶端的用戶體驗良好,和客戶端諸多微軟產品的兼容性強 缺點:離開了微軟,寸步難行,和其他任何一家公司的產品都不兼容

微軟的東西,怎么說呢,太專橫了

微軟所有的東西都是圍繞著windows來做的

.net其實已經可以實現跨平臺了,但是微軟出于自身商業考慮 在其應用服務器跨平臺的實現上設置了種種障礙 而且針對windows,微軟做了大量的優化,可以這么看.net就是與windows捆綁的一套產品

所以有些人說,微軟的產品離開了windows,就是渣

而且.net開源選擇也少,安全性方面考慮,windows本身就有一堆補丁要打了 sqlserver也不安全,至于.net到底安全不安全我不清楚,畢竟我沒怎么用過 但整體考慮,感覺.net不是大企業的首選,鑒于其濃厚的商業背景 也不是中小企業的首選,但是必須看到

客戶端也就是微機pc市場已經完全被windows所壟斷

所以在一些快速開發,還有和微軟產品兼容性要求較高的領域,.net還是比較有市場的 最后一個visual studio對它之前的版本兼容,且支持c,c++,c#,vb等語言 在其傳統領域,比如寫一些桌面軟件等客戶端應用上,.net還是第一選擇--最后要說明的是

這些組合不是固定不變的

由于J2EE得到了絕大多數IT企業的支持以及JAVA跨平臺的特性 我們可以自由地定制個性化的組合

比如我可以選擇windows+jboss+eclipse+oracle 也可以選擇solaris+websphere+IDEA+mysql 等等,這些自由組合都是可以的,但是有一點必須說明 微軟的東西,一般來說離開了windows就不能用

比如你選擇了.net應用服務器,那操作系統就必須是windows 你選擇了sqlserver,那就必須在windows上用

還有就是遵循j2ee規范的所有的組件都可以在不同的應用服務器上互相移植 比如你可以在測試的時候用jboss 而在正式投產上線的時候使用websphere,只需要在配置文件中作相應改動即可

給初學者之七:java企業級應用之術語篇

在了解完J2ee的相關周邊產品之后需要深入J2ee規范內部去了解一下到底這些規范 這里介紹幾個最常用的規范

再繼續說下去之前有必要說幾個常識

Java的誕生

Java之父James Gosling早年從cmu畢業之后

從事了一段時間的開發工作,后來意外碰到一個項目

這個項目要求他用C++開發,但可愛的JG是天才,凡是天才在某方面特別突出的同時 必然有一些天生的缺陷,恩,或說共性,比如說懶,急躁和傲慢

JG既然是天才,那就必然具備這些共性,JG懶,以至于他學不好C++ 不僅他學不好,當年開發出Java的那個團隊也都學不好C++ 他們急噪,以至于他們中有人甚至威脅以辭職的方式離開這個需要使用CPP開發的項目 他們傲慢,所以他們決定開發出一種新的語言來取代那個該死的CPP 更可愛的是,他們一開始居然給這門語言起名C++++--//沒錯,我沒敲錯 叫什么C加加 加加減減,意思是加上一些好東西,減去一些壞東西

天才的設定,有時候你會發現天才和傻瓜真的只有一線之隔

還好這個可愛的名字沒有被繼承下來,這些天才們給他們的產物起名叫Oak//橡樹 只是后來當他們去注冊這個名字的時候,發現這個名字已經被注冊了

于是在Sun公司的一個女職員//mm就是心細,這個說法也是我們公司mm告訴我的 的提議下,把這個可愛的語言起名為Java,就是他們當時喝的咖啡的名字 所以我們看到Java的標志就是一杯冒著熱氣的咖啡

JavaBean 了解完Java之后,再來說說什么是JavaBean//華為面試題 JavaBean是什么? 咖啡豆

ja,更為科學點的解釋是

用java語言編寫的可重用的軟件組件//組件的定義前面說過了,不再重復

很形象不是么? 將javabean放入杯子//容器,還記得容器的概念么?web容器,ejb容器 就可以沖泡//編譯 成咖啡,供客人們品嘗//運行 完美的服務

下面進入正題 再談容器

前面介紹過容器,我覺得有必要再補充一點

容器從某種意義上說其實就是一個可運行的java寫的應用程序 猶如c++/c編譯后生成的.exe文件

不同的是java編譯后的文件需要用命令行或者腳本啟動執行 由于容器是由java寫的,所以容器都能夠跨平臺

雖說如此,似乎大部分容器都針對不同的操作系統提供了不同的版本 但可以肯定的一點是,相同容器間的移植組件不需要重新編譯

Servlet web容器組件

Servlet確切地說,就是web容器運行的java組件

與普通javabean不同的是,Servlet定義了一系列方法//比如init()和destroy()供容器調用,調用的主要目的是為了管理

當一個request請求被web容器截獲之后,容器分析該請求地址 然后通過一個配置文件中的映射表//web.xml 調用相應的Servlet組件處理后將結果返還給客戶端

JSP//Java Server Page web容器組件

Servlet出現了之后,人們發現幾乎沒有辦法用一個非常直觀的方式去編寫頁面 畢竟頁面是html語言編寫的

而讓我們用一種流程式的處理方式去逐行教計算機如何寫html代碼太困難 在這種情況下JSP應運而生,JSP將java代碼嵌入html代碼內部

然后存成.jsp文件,再由計算機編譯生成Servlet儲存起來//注意這個過程

所以JSP和Servlet對于web容器來說其實是一種東西,雖然它們編寫遵循的標準有所不同 極大地簡化了代碼同時增加了代碼的可讀性,生產維護成本下降 值得一提的是,在制定JSP規范的過程中,借鑒了ASP的很多規范 寫過ASP并熟悉Java語言的人應該能很快掌握JSP

EJB//Enterprise JavaBean ejb容器組件

隨著時間的推移,人們發現普通的JavaBean似乎并不能滿足企業級應用的需要 最典型的就是虛擬機提供的垃圾回收收集機制也就是GC不夠完善 可以優化的余地極大,在這種情況下,EJB應運而生

EJB和其它組件一樣,不過遵循了某些規范而已

但是這些規范更多的是為充分利用機器并提高性能為主要目的的 舉個簡單例子

比如某個web服務器有100個用戶同時連接上

由于網絡連接是瞬時連接,所以很多時候并發數并沒有100那么大 前一秒有可能有30個請求被發送過來并被處理 后一秒可以只有10個請求被發送過來并被處理 只有在非常非常極端的情況下才有可能發生100個請求同時被發送過來并被處理的情況 那么我們是否需要保留100個那么多個對象在服務器的內存里面去處理這些請求呢? 很顯然,不需要,大多數時候//甚至可以說是所有時候,我不相信有那么極端的情況 我們只需要保存其中的10-30%就夠了,那么什么時候需要20%,什么時候需要50% 甚至100%,這個過程就交給容器去管理,這就是ejb容器每天在干的事 管理內存中活躍的對象

恩,必須強調的一點是,由于使用的不成熟 我們經常把規范以及具體的應用兩個名詞混用

舉個簡單例子,我們說Servlet,極有可能說的是Servlet規范 也有可能說的是一個具體的Servlet,這個就要看情況而定了 EJB,JSP也是如此

JDBC 和數據庫的連接

這個嚴格說來是數據庫產商需要關心的事

關于AppServer如何與數據庫的連接

但是也需要開發人員做一點事,因為AppServer不知道什么時候組件需要用到數據庫 同時也需要開發人員告訴AppServer他們使用的是什么數據庫,ip地址等等 JDBC就是關于這一套東東的規范

包括數據庫的產商應提供什么樣的接口

AppServer應用服務器應該如何去連接 開發人員應該如何去配置這些連接等等

還有一些數據源,連接池等概念參考相關數據在此就不再贅述 其它的規范比如JMX等確切地說與開發人員關聯并不大了 這類高級應用只對AppServer應用服務器產商重要 也不再羅嗦了

---------記得聽說過這樣一種說法

大一時候不知道自己不知道 大二時候知道自己不知道 大三時候不知道自己知道 大四時候知道自己知道 為什么呢,因為大一時候剛進大學,什么都不懂,很正常,大家都一樣 大二或者大三時候開始接觸知識,雖然還是不懂,但慢慢地開始學習,開始積累 過了一段時間,知道自己知道了//也就是前一種說法的大四,后一種說法的大三 開始屁癲,開始拽得不得了,覺得自己懷才不遇,千里馬難尋伯樂的那種感覺 有些人是大四畢業了以后開始拽,悟性高一點的,大三就開始拽,因人而異 這幾乎是每一個初學者經過一段時間學習后的必然階段 不管如何,總之開始入門了,這也不是壞事

但最后每個人都會知道自己不知道的,也就是后一種說法的大四階段 //前一種說法里面的那些家伙估計要到工作以后才能明白 因為任何一門學科都博大精深,要是能在兩三年之內就統統搞懂 那不是在吹牛就是坐井觀天,java如此,c如此,c++也是如此

那么到了本系列的第七集,可愛的讀者應該處在什么階段呢?

恭喜,在看完這篇文章之后,你就基本處于知道自己不知道的那種階段 離拽起來還有那么一段距離,因為你們畢竟還沒有學習和積累一定的基礎知識 但是騙騙外行,蒙蒙國企那些吃閑飯的管理人員問題不大

給初學者之八:java高級應用之框架篇 沒錯,我沒敲錯

之所以不再聲稱是企業級應用而稱之為高級應用 是因為下面要講的東西屬于純民間性質 是java具體應用的上層建筑,可用可不用,沒有人強迫你用

首先給框架//framework 下一個定義

我想讀者你可能聽說過.net framework這個概念

沒錯,我們將要說的framework也和這個framework差不多 所不同的是.net framework的競爭對象是j2ee那一系列標準 而我們將要說到的幾個框架則應用在j2ee的不同層面 單就單個框架而言,沒有.net framework管得那么多

但是卻要比它精專多了,而且總量加起來,也遠比微軟那一套框架要廣泛得多 回到正題,框架是什么?

軟件工程之所以被叫做軟件工程就是因為有那么一批人覺得可以用工程學里面 那些管理Project的方法來管理軟件從開發到維護這一系列流程 那么在建筑工程里面框架是什么?

現在建筑多采用鋼筋混凝土結構,注意里面一個很重要的詞匯:鋼筋 托福閱讀中曾有一題聽力就是關于鋼筋結構的誕生,在美國

恩,現代建筑中多在建筑起來之前,先用鋼筋搭建出一個框架出來 然后往鋼筋中間填入混凝土,從而形成一個完成的建筑

而今天要說到的框架就是這么一個東西在每一個軟件中間的實現

框架就是那么一個通過預先寫好代碼從而幫我們建立起一個軟件結構的這么一個東西

這里提一下框架與規范//主要指J2ee規范也就是官方標準的區別

從某種意義上說,J2ee規范本身就是一個框架

無論是web容器也好,還是ejb容器也好,它們都開發了一部分通用的代碼 并且幫助我們搭建起來了一個軟件結構,我們要做的就是往里面填入組件 比如ejb/servlet/jsp等等

沒錯,要這么理解也沒錯,但是為了避免混亂,我們還是嚴格區分開來 本文中將要提到的框架如無特別說明,就是指的是非官方標準的框架 規范是規范,而框架是建立在規范之上的一種東西

可以說是標準的延續,或者說是民間的嘗試,總之是這么一個非官方的東西 說到這里順便提一下JCP組織也就是Java Community Process/Java社區 當初Sun公司在java發布之初,為了提倡開源和共項

同時也出于一個提出合理的標準的目的,而讓廣大的開發者參與標準的制定 而成立了這樣一個社區,現在還健在,網址是jcp.org 每一個新的規范發布之前都會在這個社區廣泛討論,最終對規范的制定產生巨大的影響 其中就包括企業級的參與者,相當有名的JBoss以及我國的金碟公司都是其中的成員

下面介紹一下幾個相當著名的框架,必須要指出的是,雖然框架大多開源 但并不代表所有的框架都開源,比如.net framework,但是java框架大多數開源 言歸正傳

Struts 表示層框架,名字來源于飛機的金屬框架 可能有讀者會提問了 表示層不是客戶端么?

沒錯,但是語言這東西,眾口爍金,別人都這么說你就不好不這么說了 最早表示層說的是客戶端,后來隨著時間的發展 人們也把服務器端直接與客戶端//比如IE 打交道的那部分也稱為表示層//JSP+Servlet 那么表示層框架是干什么的呢?

早先大規模應用JSP的時候,人們發現,JSP里面充斥著邏輯代碼與數據 可讀性極差,于是人們借用很早很早以前的MVC模式的思想 把表示層組件分為V-Viewer,也就是JSP M-Model模型,一般來說是一個JavaBean C-Controller控制器,一般來說是一個Servlet 所有人通過JSP和服務器打交道,發送請求,Viewer把這個請求轉發給Controller Controller通過調用一個Model來處理該請求,然后返回數據到Viewer 這么一個過程,從而達到數據與邏輯的剝離,增強代碼可讀性,降低維護成本 而幫助人們實現這一系列東西的就是Struts框架,就是這么一個東西 Struts的競爭對手主要是產商們極力倡導的JSF也就是Java Server Faces 但是由于Struts出道時間早,所以應用比較多

JSF則是產商們大力支持,前景看好

對于這一層來說,在JSP的html代碼中出現的java語句越少越好 因為java代碼越少說明頁面處理的業務邏輯越少,也越合理 這也是Struts最初的目的,記住這話

Spring 大名鼎鼎的Spring框架

有人曾說2005年一片叫春之聲,指的就是該框架

Spring起源于Rod Johnson的《Expert One-on-One J2EE Design and Development》一書 Rod Johnson認為,J2ee里面的那一套//尤其是ejb 太重了,對于單機的系統來說,沒有必要使用那么復雜的東西 于是就開始設計并引導Spring小組開發出這樣一個構架

不能不說他是個天才,因為的的確確不是所有的系統都是跨多服務器的

沒有必要把一個簡單的系統設計得那么復雜//天才的那幾個共性又體現出來了 Spring從誕生之日起就是針對EJB的,力爭在不少應用上取代EJB 而它也確實達到了這個目的

現在包括WebLogic等主流應用服務器還有主流IDE都開始逐漸接受該框架 并提供相應支持

提到Spring就不能不說控制反轉Ioc//Inversion of Control 和依賴注射DI//Dependency Injection 什么叫控制反轉呢?

套用好萊塢的一句名言就是:你呆著別動,到時我會找你。什么意思呢?就好比一個皇帝和太監

有一天皇帝想幸某個美女,于是跟太監說,今夜我要寵幸美女 皇帝往往不會告訴太監,今晚幾點會回宮,會回哪張龍床,他只會告訴太監他要哪位美女 其它一切都交由太監去安排,到了晚上皇帝回宮時,自然會有美女出現在皇帝的龍床上 這就是控制反轉,而把美女送到皇帝的寢宮里面去就是注射

太監就是是框架里面的注射控制器類BeanFactory,負責找到美女并送到龍床上去 整個后宮可以看成是Spring框架,美女就是Spring控制下的JavaBean 而傳統的模式就是一個饑渴男去找小姐出臺

找領班,幫助給介紹一個云云,于是領班就開始給他張羅

介紹一個合適的給他,完事后,再把小姐還給領班,下次再來

這個過程中,領班就是查詢上下文Context,領班的一個職能就是給客戶找到他們所要的小姐

這就是lookup()方法,領班手中的小姐名錄就是JNDI//Java Naming and Directory Interface 小姐就是EJB,饑渴男是客戶端,青樓是EJB容器

看到區別了么?饑渴男去找小姐出臺很麻煩,不僅得找,用完后還得把小姐給還回去 而皇帝爽翻了,什么都不用管,交給太監去處理,控制權轉移到太監手中去了 而不是皇帝,必要時候由太監給注射進去就可以了

看到Spring的美妙了吧,Spring還提供了與多個主流框架的支持 可以和其它開源框架集成

Hibernate 名字取材自ORM最早的一句玩笑話//ORM就是OR-Mapping 說用了ORM之后,程序員就可以去冬眠了,而不需要操心那么多事

這里不得不說的是,該框架由于做得太好,以至于被J2ee招安,成為EJB3.0的一部分 替代原有EJB2.X里面關于Entity Bean而成為EJB ORM的工具 這里解釋一下ORM//OR-Mapping 中文名對象關系映射

什么意思呢?我們知道傳統的數據庫都是關系型的

一條條記錄以表格的形式儲存,而表與表之間充斥著是關系/關聯

比如說一個人,名字zhaoce,性別男,年齡23那么數據庫中是這么儲存的 姓名 性別 年齡 zhaoce m 23 某女

f 22 而實際應用服務器中的實體都是以對象的形式存在,一個個對象 zhaoce是以這種形式存在的 Human human=new Human();human.setName(“zhaoce”)human.setSex(“m”);human.setAge(23);這樣的,那么我們知道,傳統的JDBC是通過一個二維字符串將數據取出 需要我們自己將其包裝成對象,在存入的時候,我們還需要將對象拆開 放入sql語句中//Insert into Huamn values('zhaoce','m',23)然后執行該sql語句

太麻煩太麻煩,ORM理念的提出改變了這一切,ORM認為,這些東西應該由框架來做 而不是程序員,程序員做他該做的,不要為這種破事分心,還測試半天 于是就出現了Hibernate,JDO,TopLink等等,甚至.net里面也有ADO.net 過去一段時間是Hibernate和JDO爭風,現在看來Hibernate逐漸成為主流并被官方接納 成為規范標準之一,替代掉原來EJB2.X的ORM EntityBean TopLink則是Oracle公司推出和Oracle數據庫結合的一種ORM 商業用軟件,貴且復雜,不過正在逐漸開放

而象表示層一樣,這一種專門面對數據層的代碼也被稱為數據持久層 所以數據持久層這一概念有時不僅僅指代數據庫

關于ORM,最高的境界應該是在java代碼中不出現任何一句的sql語句 注意,是不包括sql語句,Hibernate的hql以及ejb的ejb-ql不算在內

至于出現不出現hql/ejb-ql等替代ql,這要視具體情況而定,不過最好也是不出現 當然最后所說的過分理想的情況往往不現實,總之一句話

以sql為代表的ql/*還有hql,ejbql等*/語句在代碼中出現得越少越好 記住這話,現在未必能夠理解,學了以后就懂了

這三個是目前最為常用的框架 而目前光已公布的框架就>500 還在不停增加中,不可能一一列舉,有興趣的可以去看相應文檔 要指出的是框架不是應用程序

只是一堆組件的有序復合,應用時不能脫離于應用服務器單獨存在

給初學者之九:收尾

最后一篇介紹幾個常見的概念

設計模式

這可不僅是java獨有

我看的書就是c++和smalltalk例子的

先說說什么是設計模式

模式是什么?模式是經驗的總結,潛規則的抽象

什么意思呢?比如說我們坐飛機,上飛機前需要經過幾個步驟 什么安檢領取登機牌之類的,這一套流程能不能改呢?

可以,但為什么幾乎全世界的航空公司登機前都是這一套流程呢? 因為航空公司經過長期實踐之后得出了一堆結論和經驗 并認為這樣做才是最安全,或說是最有效率的 這就是模式,模式是編程高手之間交流的橋梁

兩個編程高手通過統一命名的模式了解對方的思想

當然不借助模式可不可以?當然可以,只是模式無處不在,你不知道而已

又比如吃飯,每吃一口飯,我們要先端碗,拿筷子,張嘴,塞飯入口,咀嚼最后吞咽 這就是一套模式,我們給這套模式命名為吃飯

那么當老爸叫吃飯的時候,我們就能明白什么意思

而不用老爸進來囈囈啊啊并比畫上半天,啞語也不是這么用的 這就是模式,已知的模式有400多種//好象更多,不記得了 比如數據庫有數據庫的設計模式,編程有編程的模式等等

面向對象有常用的21種模式,需要掌握,主要分為創建,行為,結構三類 J2ee有J2ee的模式,Sun公司出了一本書叫《J2EE核心模式》可以拿來看看 必需要指明的是,模式不是規范,比如吃飯模式

沒有人規定你吃飯非得要那么吃,你可以端碗,上拋,張嘴在下落后連碗一起吞咽 這也可以,只要你愿意,同樣,只要你愿意,你就可以不遵循模式

模式之外還有反模式,學模式不可定勢,不要學死,活學活用,無招勝有招才是最高境界 JavaDoc 文檔工具,極其好用

可以根據注釋自動生成HTML文檔

Ant 98年,有一位程序員在從歐洲飛回美國的飛機上想到了這么一個東西 從而改變了整個世界,他的名字叫James Duncan Davidson 組織管理工具,可以這么描述它

比如你想在編譯之后自動再次生成JavaDoc 那么你只需要編輯Ant腳本//對,就像Windows腳本那樣 然后批處理就可以了,不過現在Ant已經廣泛集成到IDE中去 不需要自己手動編寫,不過如果想要炫炫,據說此招百試不爽

JUnit 測試工具,Unit家族可不只有JUnit 還有其它版本的,這個不細說,具體實踐一下就明白了

POJO //Plain Old Java Object 就是傳統的Java對象,也就是一個JavaBean 由虛擬機來掌握其生死

常用的兩個管理構架/規范是Spring和EJB容器 命名由來是某人//名字我忘了

覺得我們使用了太多的規范,以至于我們都忘記了純粹的java對象 以至于我們都忽略了它的存在,所以叫了這么一個名字

以喚醒人們的記憶,這個意義上來說EJB其實不能算是POJO 畢竟遵循了一堆的接口,但是不管怎樣,接口歸接口,還是沒有繼承類 沒有被強加什么//遵循可以寫空方法假遵循 所以說還是POJO也對

但是由于這種東西缺乏管理,不象Servlet有專門的容器管理并繼承了一定的類 而沒有管理的對象在虛擬機中是很危險的,因為垃圾回收機制各個虛擬機不同 而且也不怎樣,極有可能長時間不回收,這樣在企業級的應用中呢 就有可能造成內存大量被占用從而死機,毫無疑問,這種機制需要優化 這種優化就是通過EJB容器或者Spring構架來實現

這么做還有一個好處就是迫使程序員對每一個類做封裝

強迫他做管理,以達到防止內存泄露的目的,內存泄露最經常出現的錯誤就是 引用未釋放,引用最典型體現在new這個關鍵字上,new得越多引用得越多 隨著時間地增長,有可能導致循環,不停new new new new new.....其中哪怕只要有一個new處理不當,虛擬機無法回收內存 那就極有可能完

第三篇:牛人眼光看世界

創業書籍推薦一:《世界十大富豪創業史》

這本書介紹的主要是比爾蓋茨、巴菲特等影響世界的財富巨人的創業經歷,也是他們膽識、智慧、才干的結晶品。

創業書籍推薦二:《李嘉誠全傳》

身無分文的青年李嘉誠如何賺得第一桶金;出身寒微的李嘉誠如何征服名門小姐的芳心;李嘉誠如何從小老板變為“塑膠花大王”;李嘉誠如何把握地產市道良機;李嘉誠如何兵不血刃以7億搏60億;李嘉誠如何連續多年穩跨全球華人首富寶座。他掌控著香港的經濟;他一年財富激增6成;他經營世界上最大的港口;享有頂級地產商和零售商的美譽;擁有最大移動手機運營商的頭銜;他被美國《商業周刊》譽為“全球最佳企業家”;他統領的“和黃”集團被美國《財富》雜志封為“全球最賺錢公司”;惟有他能夠在他的領域中頻繁地被世界所感知,進而影響全球這一行業的未來??

創業書籍推薦三:《馬云傳》

本書以傳記的方式,從馬云出世寫起,全面解析馬云的成功歷程,力圖向讀者展現一個全面的、立體的、鮮活的馬云形象。使讀者尤其是青年讀者從中得到一些激勵、一些感悟和一些靈感,開創出屬于自己的成功人生。

創業書籍推薦四:《世界因你而不同》

這是李開復唯一的一本自傳,字里行間,是歲月流逝中沉淀下來的寶貴的人生智慧和職場經驗。搗蛋的“小皇帝”,11歲的“留學生”,奧巴馬的大學同學,26歲的副教授,33歲的蘋果副總裁,谷歌中國的創始人,他有著太多傳奇的經歷,為了他,兩家最大的IT公司對簿公堂。而他的每一次人生選擇,都是一次成功的自我超越。透過這本自傳,李開復真誠講述了他鮮為人知的成長史、風雨兼程的成功史和燭照人生的心靈史,也首次全面披露了他親歷的蘋果、微軟、谷歌等IT巨頭風云變幻的內幕。娓娓道來,字字珠璣。抓住一切去探尋生命的意義,總有一天,世界將因你不同。

以上幾本創業書籍推薦是關于世界、中國及海歸創業成功者們的創業經歷,這些有助于創業者形成創業思維,塑造具備創業潛質的個人素質。這方面的書籍很多,甚至還有比這幾本更優秀的書。到此為止,如果創業者具備了膽識、意志和能力,那么接下來就應該是如何進行創業了。對此筆者又做了以下創業書籍推薦,旨在向志在創業的朋友介紹創業方法和策略,說白了是指明創業路應該如何走的問題。

創業書籍推薦五:《藍海戰略》

《藍海戰略》為企業甩脫競爭提供了一套系統性的方法。在這本顛覆傳統戰略思維的著作中,作者展示了一套經過實踐證明的分析框架和工具,供企業成功地開創和奪取藍海。通過對各種產業中為數眾多的戰略行動的分析,作者還提出了成功制定和執行藍海戰略的六項原則。這些原則告訴企業,該如何重建市場邊界、注重全局、超越現有需求、遵循合理的戰略順序、克服組織障礙并把戰略的執行建成戰略的一部分。

創業書籍推薦六:《中國商人最容易犯的一百個錯誤》

毋庸置疑,中國的商人們有得天獨厚的優勢:政府的支持、資源的豐富、勞動力的低廉、巨大的市場等等,然而,他們在經營中卻存在著明顯的缺憾,存在著長期為人們忽略的錯誤!進一步說,對商人而言,企業的規則、資本的運作、企業的經營、管理、銷售和產品的市場定位等諸多方面,都嚴重欠缺理論的指導和經驗的積累。

創業書籍推薦七:《高效能人士的七個習慣》

企業***都知道:只有每一位員工成為高效能人士,企業才會真正成高效率企業。這本書幾乎覆蓋所有美國成年人,它是美國成年人中最具影響力的書。一個強大的美國是由每一位高效能的美國人決定的,不能不說與這本書有重要的關系。

創業書籍推薦八:《孫子兵法》

《孫子兵法》是中國古典軍事文化遺產中的璀璨瑰寶,是中國優秀文化傳統的重要組成部分。其內容博大精深,思想精邃富贍,邏輯縝密嚴謹。《孫子兵法》成書于春秋末期,是我國古代流傳下來的最早、最完整、最著名的軍事著作,在中國軍事史上占有重要的地位,其軍事思想對中國歷代軍事家、政治家、思想家產生非常深遠的影響,其已被譯成日、英、法、德、俄等十幾種文字,在世界各地廣為流傳,享有“兵學圣典”的美譽。

適合自己的創業模式

二、捆綁成功人的創業模式。

創業成功的一個有效秘訣就是跟對人,跟成功的人做事。有一個關于個人財富的統計,一般你所擁有的財富是你身邊朋友的平均值。因此我們看到,窮人有的都是窮朋友,富人有的都是富朋友。在你有個人創業打算后,就要找出一個成功的人,想方設法地結交他。不管困難也好,冷落也好,屈辱也好,跟定他。無論東南西北風,咬住青山不放松。要有目的,有準備地用心去學習成功人如何做事,如何思考.要用心智去感悟成功人是如何成功的,因為成功是有方法和途徑的,要認認真真地幫助成功人做事,成為成功人的朋友,讓成功人能真心地幫助你,教導你.千點萬點,不如明師一點.成功的最好的方法,就是重疊成功人的腳印。

三、從業務代表做起的模式。

先確定一個你日后要經營的行業和產品,在這個行業中選擇一個好的公司,然后去做這個公司的業務代表。在你所在的城市為這個公司開拓市場,銷售產品,進而熟悉這個行業,了解這個產品,擁有這個市場。條件成熟后從業務代表轉換成代理商,開始自己的創業。為此目的只要選擇到好的公司,無論什么條件,無論有沒有底薪,你都要接受。因為你接受的不是打工的條件,而是接受未來的夢想。

從中國最新最賺錢的十大行業看計算機考研方向選擇 本帖最后由 jsj8 于 2010-9-29 15:44 編輯

一下是我轉載自網絡的中國最新最賺錢的十大行業,其中就包括3個與IT相關的!

1、同聲傳譯

年進賬三四十萬沒問題

同聲傳譯員被稱為“21世紀第一大緊缺人才”。隨著中國對外經濟交流的增多和奧運會帶來的“會務商機”的涌現,需要越來越多的同聲傳譯員。“同傳的薪金可不是按照年薪和月薪來算的,是按照小時和分鐘來算的,現在的價碼是每小時4000元到8000元。”“4年之后入駐中國和北京的外國大公司越來越多,這一行肯定更吃香,一年掙個三四十萬元應該很輕松的。”業內相關人士表示。2、3G工程師

基本年薪15萬元至20萬元

據計世資訊發布的相關研究報告稱,估計國內3G人才缺口將達到50萬人以上。

由于目前3G人才比較少,尤其是復合型人才奇缺,預計4年之后3G工程師的基本年薪會在15萬元至20萬元。“從目前的一些趨勢來看,在無線增值服務行業里的一些精通2.5G技術的人才年薪都在10萬元左右,3G到來之后這些人才的收入應該會更高。”空中網的相關人士表示。

3、網絡媒體人才

年收入在10萬元至12萬元

目前,類似于在新浪和搜狐的網絡編輯的月薪都在5000元左右、中等職位的收入在8000元至10000元。

“相信4年之后整個網絡媒體的廣告收入越來越多的時候,從業人員會有一個更好的回報。”新浪網的一位編輯對自己所從事的行業頗有信心。據預測,年收入應在10萬元至12萬元。

4、物流師

現在1年就能掙10萬

物流人才的需求量為600余萬人。相關統計顯示,目前物流從業人員當中擁有大學學歷以上的僅占21%。許多物流部門的管理人員是半路出家,很少受過專業的培訓。

據相關人士透露,殼牌在國內招聘的應屆大學生目前的薪金是每月6000元到8000元,在一年之后還會由相當大的提升空間。“現在一年就能掙個7萬元至10萬元,估計4年之后只會多不會少,因為能源越來越緊俏。”該人士表示。

5、系統集成工程師

估計年收入10萬至20萬元

一名剛剛畢業,毫無經驗的大學生應聘系統集成工程師之后的薪金是年薪8萬元。用戶對系統集成服務的要求不斷提高,從最初的網絡建設到基于行業的應用,再到對業務流程和資源策略的咨詢服務。未來系統集成工程師應該是一路走高的職業。

據招聘網站人士預測,系統集成工程師在未來的年薪估計會在10萬元至20萬元。

6、環境工程師

年收入將在8萬元至10萬元

相關資料顯示,目前我國環保產業的從業人員僅有13萬余人,其中技術人員8萬余人。按照國際通行的慣例計算,我國在環境工程師方面的缺口在42萬人左右。

記者從相關途徑獲悉,隨著國內房地產行業的發展,國內園林設計師、景觀設計師的月薪都在七八千元左右。據預測,年收入應在8萬元至10萬元。

7、精算師

年收入在12萬至15萬元

我國被世界保險界認可的精算師不足10人,“準精算師”40多人,在當今的國內人才市場上,精算師可謂鳳毛麟角。

隨著國際保險巨頭在中國開拓市場以及國內企業的需要,精算師是幾年后保險業最炙手可熱的人才,目前在國外的平均年薪達10萬美元,國內目前月薪也在1萬元以上。4年以后,隨著人們對于保險認識的加強,必然會需要更多的精算師。據預測,年收入應在12萬元至15萬元。

8、報關員

年掙10萬元很輕松

“入世”后,我國的對外貿易的迅速增長使得對報關員的需求增加。據中華英才網、智聯招聘網顯示的資料,報關員目前的收入每月在5000元至8000元之間,目前在貿易發達的珠三角地區報關員月薪都在七八千元。

未來幾年內,就業市場對報關員的需求將有數十倍的增長。報關員的工資漲幅一般在年10%-20%,到那時一年掙個10萬元幾乎不是問題。

9、中西醫師/醫藥銷售

年收入至少應在6萬元左右

“醫學院校畢業的學生有三條路可以走,一是進入醫院,急救醫生、產科醫生、婦科醫生、眼科醫生、兒科醫生及牙醫和理療醫師都將十分吃香;二是進入醫藥生產流通企業;三是繼續深造。”某招聘網校園部總監表示,這個行業的特點是越老越值錢,目前的醫藥行業月薪水平在3000元到5000元,相信4年之后會有一個更好的薪金水平。據預測,年收入至少應在6萬元左右。

10、注冊會計師

年收入將在10萬元左右

根據中國經濟高速發展的需要,至少急需35萬名注冊會計師,而目前實際具備從業資格的只有8萬人左右,其中被國際認可的不足15%。

每年包括德勤、畢博在內的四大會計師事務所都會在高校招收畢業生,專業涵蓋統計、法律、數學等。而進入四大會計師事務所的應屆畢業生月薪大都在五六千元,再加上每年豐厚的獎金,收入會超過10萬元。

從其中可以看出來:IT這個行業是很能賺錢的,現在比較熱門的就是3G移動開發與應用、計算機網絡、系統級的開發。大家在考研時可以考慮這些方向!

大學生創業調查

郜韶飛 上海五分鐘網絡科技有限公司創始人

創立時間:2006年9月

五分鐘(www.tmdps.cn)致力于成為一家卓越的社交游戲開發與運營商,代表作品“開心農場”自2008年11月推出以來,成為全球最受歡迎的社交游戲之一。

倪張驪 上海理工大學本科在讀學生,上海理工大學大學生創業項目“牛人文化”CEO

創立時間:2010年3月

“牛人文化”是在校學生的一個創業項目,組織在校學生在校園和學生宿舍中分送飲用水罐,同時派發廣告,以解決大學校園內廣告投放的精準性和延續性

查立:是什么原因促使你在大學創業?

郜韶飛:現在想來,大學階段的很多嘗試確實是我們一畢業就走上創業之路的基石。我和兩位伙伴大二搞計算機信息交流協會,舉辦的第一屆電子競技大賽現在已經到第七屆了,成為上海高校中非常知名的一個電子競技品牌;大三搞工作室,承接各種與互聯網有關的外包項目;在折騰了很多事情以后,發現自己最最喜歡的是互聯網,決定創業,就這樣,一拍即合,沒有太多深思熟慮的情況下就決定創業了!

倪張驪:大二時想到要自己掌控事業與命運,于是選擇創業,并且立即行動。如果我中學就明確了要創業,中學也會創的。

查立:但很多人說大學生沒有經驗、沒有資源,不適合創業。你怎么看?

郜韶飛:大學生的確沒有經驗,沒有資源,但是他們更有膽量、激情、負擔小、成本低;工作時間久的人可能有經驗,有資源,但未必敢于創業,就算能創業也未必能放空自己,從一點一滴做起。從這個角度很難說到底誰更適合創業。

倪張驪:正因為沒經驗,大學生才更不會被傳統所束縛,更容易創新、打破陳規,創業永遠不會是等你積累夠了資源后“只欠東風”的事情,即便你在一個行業再有經驗,創辦企業也會遇到管理、融資等別的方面的新問題。其次,畢業后到某個崗位摸爬滾打個幾年所積累的經驗、資源,也未必就會比在大學中就開始創業所累積的多。

查立:嗯。從戰中學會戰爭。你們的創業開始很難嗎?

郜韶飛:我們得到了上海市大學生科技創業基金的幫助,這筆錢雖然不多,但是給了我們非常大的勇氣,讓我們能夠更加有信心的度過創業的最初階段。后來,基金會老師們的幫助,也讓我們比社會上的大量小公司更加正規和成熟,得到社會的認可。

倪張驪:最初只是與幾個有興趣的同學一起聊idea,吸引了有同樣興趣并且優秀的同學組成團隊,各自聯系資源、籌集資金、調研、公關、選址等,到成立公司、持續經營。

查立:創業中,你們最大的擔憂是什么?

郜韶飛:說實話,創業之初幾乎沒有考慮過這個問題,但是創業過程中,的確遇到過各種的困難,曾經多次到了生死存亡的境地,但是每次更多的是要考慮如何讓公司繼續活下去。成功是堅持出來的,只要不斷的想辦法讓公司活下去,成功就不遠了!公司價值的體現,就是公司能活著,并且為社會創造價值。什么是成功呢?難道一個產品像開心農場那樣受歡迎就是成功?難道公司今年賺了很多錢就是成功?的確,這都是成功,但千萬不要忽略,這些東西都是階段性的,過了就是歷史,恐怕更重要的是企業的永續經營吧!

倪張驪:想失敗比成功多。一來,創業的死亡率確實太高;二來,失敗了要想好會敗到什么程度,我和團隊的成員能否承受?當時擔心多的是學業沖突,時間精力安排不過來。

查立:你們不為沒有去大公司工作而后悔嗎?

郜韶飛:我覺得重要的不是創業還是打工,而是你用什么樣的態度來面對創業和打工。對于大公司的工作,我并沒有太多向往,當然我也認為大公司的工作經驗非常重要,但是我比較反對的是對于大公司的盲目崇拜,因為這會讓你進入一種外在光環大于內在實力,而自己又渾然不覺的境地,從而麻痹你的心智,扭曲你的判斷,阻礙你的進步。

倪張驪:在這個過程中會了解到要做一個企業,要建設團隊,要穩定銷量、要研究顧客等等都是多么不容易,更能懂得堅韌、堅持究竟是怎么一回事。創業能學到的更多。

查立:創業中什么是你最失意的事情?

郜韶飛:困難和挫折,不是有沒有的問題,是有很多,說都說不完,一定要說最失意的,我想還沒有發生,可能下一個困難永遠都比已經遇到過的大很多!

倪張驪:當然會有。比如剛開始做銷售,進客戶的門前要給自己打氣,扯掉一些關于面子的情節。又比如有個項目長期沒有收入,原CEO退出了,團隊需要我來重組;最失意的挫折也是那個項目中最好的朋友沒能留下來幫我。

查立:如果你重新來一遍,你會采取不一樣的手段嗎?

郜韶飛:我想我會更加努力地學習和突破自己,這是創業成功的必然瓶頸,突破自己瓶頸的速度有多快,企業成長的速度就會有多快!

倪張驪:肯定方式方法上會有所調整的,因為這一遍下來不也學到經驗教訓了么?如果重新再來自然是盡量規避掉犯過的錯誤,比如再進貨的時候就會“貨比三家”。

查立:因為年輕,有足夠的時間一次次從頭再來!作為一個過來人,你對正在考慮創業的大學生們有什么建議?

郜韶飛:你永遠不會因為自己的短板而失敗,肯定是因為你不愿意突破和成長而受阻。你永遠不會因為錯過機會而沒能取得創業的成功,真正屬于你的機會上天是不會讓你錯過的,聽從自己內心的指引,或者叫做聽從上天的安排!

倪張驪:我還是個在路上的人。有一類人是注定要創業,因為他們信奉“不搏不精彩”,因為他們“創業后悔三年,不創業后悔一輩子!”我是這一類的。如果創業,做比想更重要,有令你心潮澎湃的idea就通過自己的雙手把它變成現實吧!

第四篇:牛人學習經歷

偶爾看到的,偶覺得可能對大家學習外語有用,于是,小手一抖,就轉載下來了,喜歡的,速速頂貼:

如果現在要問我的興趣愛好是什么,我肯定最先會說“學外語”。不知道為什么喜歡,仔細反思了下緣由也許有以下幾點。第一點也許是因為一直有聽不懂的經歷。從小家里人對我就說普通話,過年時聽親戚們用上海話聊天我總是一頭霧水,上小學以后還有很多詞匯不知道什么意思。此外到我外婆家也是整天聽直到現在都聽不懂的福州話。正因為如此,我非常享受從聽不懂到聽懂的過程。第二點是因為我對文化的差異一直都有興趣。

于是從初二暑假點開阿木日語的網頁到昨天用rosetta stone解決了計劃中的最后一門語言,一晃就是八年了。在這八年中,走過不少彎路,也會領悟到了一些捷徑。這篇文章就是想對自己八年的學習做個總結,并將學外語的經驗教訓分享給所有正在學外語,要學外語,以及想學外語的人。從日語開始

英語什么的都是從小按步就班學的,沒什么好說的,還是直接從日語入門開始吧。那是又一個在家上網的日子,不知道又搜到了什么東西,我又開始關鍵詞聯想了。這一次的關鍵詞是“日語入門”,我點進了搜索結果首頁比較醒目的“阿木日語入門”,看著通俗易懂的說明,學會了desu這個詞,并發現學日語還是一件挺簡單的事,便來了興致,從當時資源并不豐富的互聯網上下了老版標準日本語的電子書和mp3,便開始按步就搬的學起來了,之后也找到了教學視頻,又提高了學習效率。不過這也是多虧了日語是笑著進哭著出的語言,也許如果當時進的是法語入門的話,現在我也不會寫這篇文章

/ 21

了吧。

下完電子書便開始學五十音圖了,由于以前看動畫片看主題曲經常會注意下面的日文字幕,所以很多假名都很眼熟,一天學平假名,一天學片假名,第三天便開始第一課了。其實一開始學日語不必糾結假名的,把幾個區分度的看熟后,就可以猛看單詞,在頻繁的練習中自然就會了,字母這種基礎的東西也不必靠聯想法。

很認真地開始一課一課地學,剛開始還采用中國式的老辦法——抄單詞,這后來再回想就感覺完全沒必要了。學習語言最重要的是聽懂,然后是看懂,接著才是說和寫。一開始幾課的課文也學得很認真,幾乎都聽得爛熟,也都背下來了,平時沒事干嘴里就無意識地冒出幾句來。后來學別的語言急于求成,走了彎路,發現還是狂聽課文的辦法最好。

日語一開始的單詞并不是很好背,上網的時候看到了一篇講日語單詞背誦方法的文章(就是右腦記憶法 加 17天背gre法),便把后面附著的16頁單詞表下載,打印。背著背著猛然發現大多數竟然全是音讀漢字詞,也就是類似漢語方言的詞,每個漢字在日語中都有特定的映射關系。于是背到sa行就不用怎么背了,因為大多數漢字只是重復出現,只要看到漢字就知道讀音。同理,在家看nhk的時候,一些詞聽發音就能猜到漢字了,比如聽新聞的時候經常聽到kei satsu,一開始不知道什么意思,仔細和其他已知的單詞比對便猜出是 警察 這個詞了。這也就是我學外語悟出的其中一個方法——高級詞匯映射法。

高級詞匯映射法——漢字文化圈

世界上的語言不是孤立的,而是隨著民族之間的交流而充滿聯系的。有的語言比較強勢,一直在輸出詞匯,比如古代的漢語,阿拉伯語,拉丁語,希臘語,現代的英語,日語。有的語言也會輸出特定領域的詞匯,比如許多歐洲語言中食物,餐具,化妝品和

/ 21

衣物的單詞就全是法語。每種語言的基礎詞匯基本都是不一樣的,除非是同一語族的。比如德語的lieben,sprechen,sagen對應英語的love,speak,say,西班牙語的comprar,correr,leer對應意大利語的comprare,correre,leggere。但是語言的高級詞匯基本上來源都比較固定,歐洲語言的高級詞匯都是拉丁語和希臘語,伊斯蘭教國家的高級詞匯大多是阿拉伯語,東亞國家的高級詞匯基本上是漢語。漢語在古代向日本,朝鮮和越南輸出了大量詞匯,而近代日本又通過漢字的重新組合把科技政經詞匯傳到其他用漢字的國家。所以說如果要學日語,韓語或是越南語,一種比較方便的辦法就是先掌握漢字詞的讀音映射關系,然后就可以掌握大量的漢字詞。發音不能只學一次

初三時過得很忙,但不知道為什么又用了很多時間學外語。那時覺得光學日語不過癮,便開始染指其他外語了。那時沒有滬江網,小的語種也沒有教材下,只能到處找找在線學習的網站,于是便找到了一個韓語入門的網站。點著圖片學習方塊圈圈的字母,先學后忘,外加發音模糊,便感覺學韓語比日語困難多了。總算把字母學得差不多了,也沒東西學了。

之后一次學韓語就是高一暑假了,也就是在那個時候我知道了:發音不能只學一次。初三學韓語字母的時候,就想著找漢語或是英語的對應發音,有個oe的音就直接發o了。誰知道高一再學時看了幾集韓劇,發現明明oe是更接近“額”的讀音,此外n的讀音也是接近d的。在糾結聽到的和自己說的不一樣時,我突然意識到,既然我已經知道說韓語的人是怎么說的,我又為什么要堅持原來的念法呢?這就好像學英語的時候一直把run讀作“潤”,后來一直聽到“軟”的讀法,但還是堅持原來的“潤”。也許這就是每個地方學英語的人口音各異的緣故吧,或是受到母語影響,或是受到老師誤導,或是執著與音標,一旦形成錯誤的發音就改不過來了。然而正確的發音卻是應該靠純粹

/ 21

模仿當地人才能學到的。意大利語,西班牙語和法語的a在書上都有不同的描述文字,但沒有誰會看著文字學發音,最終只能發出英語或是漢語的a,但是仔細聽的話的確是有明顯的區別,這時如果只是堅持初學時自以為正確的發音,就一直是那樣了。不過如果聽不出區別的話,也只能作罷。有個變態叫法語

一直聽說法語是最美的語言,在學完韓語字母后我便開始嘗試了。然而對于那時候我的悟性和智商來說,法語就好像是因為游戲bug而提前登場的大boss一樣,把我擊敗了。下好了某大學的教學視頻,開始播放,開篇就說法語不像英語而是一門發音規則的語言,我心中竊喜。然而接下來就是整整兩頁的發音規則,什么開音節,閉音節啊,夾在兩個字母和一個字母之間又怎么樣啊。勉強知道怎么發音了,一看句子,才知道有個東西叫聯頌,又看到疑問句的三種問法云云,放棄了。邂逅羅塞塔

初三忙碌地過去了,中考完了在家沒事干,上電驢找資源的時候突然看到了一個神奇的軟件——rosetta stone 羅塞塔石碑。這款軟件號稱不學語法不背單詞就能學好外語,于是我便抱著試試看的心態點了下載鍵。

順利安裝好,打開試了試,全是圖片。每幅圖片都配有對應的單詞和句子,原來這就是傳說中的沉浸式外語學習方法。幾課學下來,一些基本事物的單詞就已經終生記憶了,簡單的語法也能在腦中形成形象的印象。這也多虧了西班牙語開始的語法簡單,拼讀也有規律。反觀法語,court和courent的發音竟然一樣,讓人無法接受。不過羅塞塔的難度還是偏低,第二版的編排也不太好,前面全是實意動詞,一開始說來說去就去就是“一個男孩在跑”,“男孩在桌子下”這種短句。沒什么成就感,玩膩了也就不用了。

/ 21

大舌和小舌

直到現在我才發現,除了漢語和英語外,世界上的其他大部分語言都有大舌或小舌音。大舌音一直都覺得很酷,很想學,在學西班牙語的時候用發“德拉”的方法學會了。但是后來才發現,我那時學會的只是rr,真正難的是r,也就是舌頭只彈一下,沒有震動。這個音我最近才學會,從前都是以l代替的。日語中也有,最常見的就是kora,也就是混蛋,一般人說這個ra一般就彈一次,但是流氓就要korrrrrrra!了。小舌音我也沒學會多久。在學法語的時候,我用喉嚨發出了比較響的“喝”,便以為那是小舌音。卻不知真正的小舌音聽起來跟大舌音是差不多的。后來在高中同學的示范下,我終于在高三某天洗澡時用漱口的辦法學會了。

錄了一小段發音示范http://。然后是豆瓣上貍貓的 14 / 21

《英法德西意俄等歐洲語言的學習體會》http://www.tmdps.cn/group/topic/10346074/。)

補1 厭倦與遺忘

如果要專精一門外語的話,是不可能天天開開心心學的。當我逐漸厭倦一門外語的時候,我就會采用低強度學習,(聽歌,電影)實在不想學了也會直接擱置轉投別的外語。我這樣是一種螺旋形的學習方法。但是這樣的方法難免會遭遇遺忘,這是外語學習者難以避免的問題。所以如果記憶力不好的話,最好還是把一門外語學到中級,再換一門,這樣下次再學第一門的時候至少還有很好的基礎,稍加回憶詞匯就全記起了。補2 為什么,以及怎樣使用rosetta stone 學外語完全可以按步就班地拿起教科書,一篇課文一篇課文地學,但是中國的英語教學已經證明了這是效率低下的,除非自己很自覺,能夠科學地安排復習時間,否則遺忘就會到來。而rosetta stone已經把課程安排好了,只要每天機械地下一課下一課就行了。一開始會覺得它很煩,因為重復了太多次,我也因此曾經跳過部分復習直接學新課。但是后來才發現,跳過那些復習課程直接造成了我的遺忘,有些單詞后來看到還要想想。所以rosetta stone的一個好處就是逼你恰到好處地復習。

rosetta stone的另一個好處就是它是沉浸式的。這跟母語學習一樣,完全通過聲音和圖像的刺激,使大腦掌握音素所對應的語義,因此最好一開始盡量不看文字,避免干擾。

/ 21

但是rosetta stone里全是圖片,有的圖片會讓人誤解,因此也可以帶有一定語法基礎來用。或者零基礎也是可以的,這樣需要放棄母語的思維。當你看到動詞突然變了,肯定會有疑惑。這時候可以先把疑惑擱置,將錯就錯,也許過一會兒就頓悟了,這樣記憶會比知道語法來學更深刻。如果實在不懂,也可以上網查,這樣通過解決問題學習肯定也是印象深刻的。不過rosetta stone也就是格的概念和抽象動詞表現地不是很好,單復數和基本時態動詞變位還是做得很好的。

還有一點,羅塞塔適合西方語言。東方語言的敬語它肯定是無能為力,此外軟件中的圖片也都是一樣西方特色的事物,比如三明治,意大利面,除臭劑,小費。補3 語速同步

rosetta stone這款軟件有個致命的缺陷就是語速太慢,對于法語西班牙語這種連珠炮般的語言,學完了一聽廣播,還是什么都不懂。這種時候要做的事就是語速同步,要通過大量真實語速聽力材料的磨練來習慣。由于rosetta stone里教的是很基礎的知識,所以廣播里面肯定會用到相應表達,因此如果語速同步了,那么肯定也能聽懂那些表達。聽廣播的時候需要專注而有耐心。我曾經犯過的一個錯誤就是聽到似乎認識的詞,就抓住不放,想要回憶。結果后面的內容全沒聽到。我后來就采用放任自流的辦法,只是聽廣播里的人說了什么音節,不去考慮那是什么意思,久而久之(每天幾個小時),便習慣了那種語速,原來陌生的音節在心中降慢速度了以后也都變成了有意義的單詞,最后便是連詞成句。補4 雜

我不是讀文科的,我是IT民工。我沒有老師教,除了英語和一學期的德語。我學外語是極度偏重聽力的,因為對于非專業的學習者來說,從聽懂中獲得的成就感是最大的。當然聽著聽著跟著默念口語也就跟上了。不過我沒有作業,因此不怎么會拼寫,只是看到

/ 21

能認識。我也不用考試,不會去摳語法,也不會沒事干寫作文。如果你是要靠書寫,閱讀,語法分析等手段學外語的話,我的方法就沒那么有用了。附:

括號中的是沒學過的。各語言難度排名(我眼中的)

綜合: 阿拉伯語>(俄語)>(拉丁語)>德語=法語>意大利語>西班牙語=葡萄牙語>英語>日語>韓語>泰語

發音:阿拉伯語>法語>(俄語)>泰語>韓語>葡萄牙語>英語>德語>西班牙語>意大利語>(拉丁語)>日語

語法:阿拉伯語>(俄語)>(拉丁語)>德語=法語>意大利語>西班牙語=葡萄牙語>日語>韓語>英語>泰語

詞匯:阿拉伯語>英語>其他

各語言悅耳程度排名(我眼中的)(勿噴)

日語>葡萄牙語(巴西)>意大利語>法語>西班牙語>英語>(拉丁語)>葡萄牙語(葡萄牙)>德語>(俄語)>泰語>韓語>阿拉伯語 各語言實用程度比較(不考慮經濟)英語忽略

法語通行于法國,瑞士部分地方,比利時,半個非洲,越南某些人,加拿大某省,美國某些地方。法語歌和法語電影很文藝很小清新。法國旅游很發達。法國文學很強大。日語是單一民族的語言,但由于ACG和其他日本文化太強勢,世界上很多國家都有很多人學。此外日本也是文學大國。

西班牙語別的沒什么,就是用的人多,從美國南下到麥哲倫海峽,基本上除了少數幾個

/ 21

國家(巴西,海地)以外,都用西班牙語。當然還有西班牙。西班牙語也是足球的語言。德語是哲學的語言,哲學作品太難翻譯,所以就要直接讀德文原版。此外德語對于音樂界也是比較重要的語言。

葡萄牙語通行于葡萄牙,巴西,非洲幾個國家。巴西的文化還是比較吸引人的,葡語的歌曲基本上都是巴葡,比較有異國情調。

意大利語是音樂界的第一語言,古代文化很燦爛,也是足球的語言。

阿拉伯語適合穆斯林,語言學家,喜歡挑戰自我的人學習。拉丁語是歐洲的文言文,學醫學生物的要學,學法律的要學,學英語的人也可以學兩句放在英語作文里嚇嚇老師,想一次搞定歐洲語言的人也可以學。

韓語和泰語我覺得除了旅游和流行文化就沒什么用了。

俄語雖然因為hx原因很多國家都不用了,但是應用范圍還是比較廣。且俄羅斯也是文學大國。俄語也適合軍事愛好者。但俄語的語法。(手賤點了下全站評論,發現自己被專業大牛爆出翔了,果然括號里的標題還是標題黨了。我本來就喜歡做總結,這次的總結有些大了,本來以為這篇日志會想以前的日志一樣沒什么人看,就加了括號里的標題,誰知結果拋了個大新聞,被批判了一番。會外語這個概念真不好說,各有各的標準。我自認為日語已經很不錯了,但是看芥川龍之介的小說還是基本看不懂。語言本來是有局限性的,雙方的語義不對稱也就有了誤會和矛盾。

我的智商很普通,學習成績從來沒有拔尖過,只是喜歡外語,想跟大家分享外語學習的經驗教訓而已。日志打完就沒怎么修改,很多地方不太具體,還希望大家包容,有什么問題可以直接問我,我還是很喜歡跟別人討論外語的。)

(剛才讀了下《每天學習八小時以下是不道德的》這篇文章,狗眼碎了。這個世界在大多數情況下都存在比自己好的和比自己差的。也許很多人都想向上,但這是沒有底線的,18 / 21

在定目標之前我會看到自己的極限,在極限范圍內進行努力是可行的。另外,得到一定有付出,如果在權衡之下發現努力需要的付出很大,然而收獲卻更大的話,我會毫不猶豫地選擇努力,因為人生是單行道。)

(為了減慢分享速度,把小標題去了。)

忍不住想說明或證明自己的水平,但是有什么用呢?多說不如多行動。后續記錄:

計劃:1-3月,法語鞏固加拉丁語學習。

1月3日:開始學習拉丁語,準備使用rosetta stone加韋洛克。

1月9日:看見一篇批評本文的文章,寫得很好。感謝作者推薦的Lingua Latina per se illustrata。這本書的編排方法以前從來沒見過,的確比rosetta還有效。準備把韋洛克放在一邊。

1月10日:拿出法語詞匯揭秘,準備采用17天方法,寫好表格,開始。

1月11日:堅持聽了幾天francais facile,發現精聽也有精聽的作用。今天聽了下cctv-F的新聞,發現竟然完全聽得懂了,老友記不看字幕也比以前聽懂得多了,只是reflets還是比較有壓力。不過這只是第一周。

1月18日: 聽了n天francais facile,覺得遍數不夠又把mp3下到itouch上,一天一小時。17天方法對于要編程寫文檔的寒假來說還是不太合適,詞匯書的詞匯又太偏,還是先把簡明法語教程補遺補完吧。這兩天專干別的了,注意力又有些發散,還是堅持latin學習吧。

/ 21

3月18日:很久沒記錄了。寒假到處跑,拉丁語已荒廢。法語聽力倒是越來越好,因為眼睛依然不行,所以還是在休息時間聽廣播。也把簡明法語教程下冊學到46課了,3月份還有10幾天,估計能搞定。reflets估計沒時間了,還是專注聽RFI吧。《法語詞匯揭秘》用17天方法不太現實,詞匯太偏,過一遍就算了,現在看完了5分之1,還得抓緊時間。馬上就到4月了,該重拾久違的德語了~~。泰語用rosetta stone第二版和泰劇電影結合學習,過了第一遍不看文字的1到8單元,第二遍針對閱讀,才進行到第二單元,感覺泰語字母讀起來還是沒有那么順,果然是單詞沒有空格的結果嗎。此外不務正業地學了幾課rosetta stone的土耳其語,沒什么感覺,也沒什么興趣,于是作罷。4月3日:由于時間關系,結束了法語學習,至少短時間內不會再學了。我發現自己去年的確是太閑了,學了那么多語言。仔細思考一下,覺得還是學精日法德西這幾門外語比較好,畢竟用處比較大。4月1日準時開始德語強化,先過了幾課rosetta 第3級,發現果然出現了遺忘的情況。不過沒關系,不遺忘反而奇怪。打算把4,5級也學好以后背完《德語詞匯聯想與速記》,然后再系統地過一遍語法,再把德語特有的復合詞學完,這一輪就差不多了,估計也要到6月底了。當然這期間每天大量聽dw進行泛聽和精聽也是必不可少的。對了,3月底還小學了一把俄語,領教了下完爆德語的變格,不過最后理智還是讓我專心回到德語上來。話說泰語呢。

5月24日:德語第四級前后用了1個多月,當中生病荒廢了幾個禮拜。感覺用Rosetta Stone時間太長,現在只是靠著慣性繼續下去,其實根本沒什么樂趣。德語還是一種學成了才有成就感的語言,不像法語,聽的時候本身就是一種享受。還是得繼續下去,然后到了7月開始英語突擊,爭取9月前能達到聽力口語無障礙,讀小說能穩定地達到1小時40頁的速度。先不管那么多。趕快開始德語5級的學習吧!

6月26日:選擇的時候總是要舍棄些什么,現在我很想學阿拉伯語和韓語,但是想到暑

/ 21

假還有好多事情要做,和接下來的留學,還是主攻英語抽空學德語吧。想試一試《千萬別學英語》中的精聽方法,準備用新約來練德語聽力。最近重開游戲,玩得有點過,想一想因為玩花去的時間而不能做的事情,果斷停手了。

/ 21

第五篇:java學習

.如何學習Java?

3.1 Java學習路線

3.1.1 基礎語法及Java原理基礎語法和Java原理是地基,地基不牢靠,猶如沙地上建摩天大廈,是相當危險的。學習Java也是如此,必須要有扎實的基礎,你才能在J2EE、J2ME領域游刃有余。參加SCJP(SUN公司認證的Java程序員)考試不失為一個好方法,原因之一是為了對得起你交的1200大洋考試費,你會更努力學習,原因之二是SCJP考試能夠讓你把基礎打得很牢靠,它要求你跟JDK一樣熟悉Java基礎知識;但是你千萬不要認為考過了SCJP就有多了不起,就能夠獲得軟件公司的青睞,就能夠獲取高薪,這樣的想法也是很危險的。獲得“真正”的SCJP只能證明你的基礎還過得去,但離實際開發還有很長的一段路要走。

3.1.2 OO思想的領悟掌握了基礎語法和Java程序運行原理后,我們就可以用Java語言實現面向對象的思想了。面向對象,是一種方法學;是獨立于語言之外的編程思想;是 CBD基于組件開發的基礎;屬于強勢技術之一。當以后因工作需要轉到別的面向對象語言的時候,你會感到特別的熟悉親切,學起來像喝涼水這么簡單。

使用面向對象的思想進行開發的基本過程是: ●調查收集需求。●建立用例模型。

●從用例模型中識別分析類及類與類之間的靜態動態關系,從而建立分析模型。●細化分析模型到設計模型。●用具體的技術去實現。●測試、部署、總結。

3.1.3 基本API的學習進行軟件開發的時候,并不是什么功能都需要我們去實現,也就是經典名言所說的“不需要重新發明輪子”。我們可以利用現成的類、組件、框架來搭建我們的應用,如SUN公司編寫好了眾多類實現一些底層功能,以及我們下載過來的JAR文件中包含的類,我們可以調用類中的方法來完成某些功能或繼承它。那么這些類中究竟提供了哪些方法給我們使用?方法的參數個數及類型是?類的構造器需不需要參數?總不可能SUN公司的工程師打國際長途甚至飄洋過海來告訴你他編寫的類該如何使用吧。他們只能提供文檔給我們查看,Java DOC文檔(參考文獻4.4)就是這樣的文檔,它可以說是程序員與程序員交流的文檔。基本API指的是實現了一些底層功能的類,通用性較強的API,如字符串處理/輸入輸出等等。我們又把它成為類庫。熟悉API的方法一是多查Java DOC文檔(參考文獻4.4),二是使用JBuilder/Eclipse等IDE的代碼提示功能。

3.1.4 特定API的學習Java介入的領域很廣泛,不同的領域有不同的API,沒有人熟悉所有的API,對一般人而言只是熟悉工作中要用到的API。如果你做界面開發,那么你需要學習Swing/AWT/SWT等API;如果你進行網絡游戲開發,你需要深入了解網絡API/多媒體API/2D3D等;如果你做WEB開發,就需要熟 悉Servlet等API啦。總之,需要根據工作的需要或你的興趣發展方向去選擇學習特定的API。

3.1.5 開發工具的用法在學習基礎語法與基本的面向對象概念時,從鍛煉語言熟練程度的角度考慮,我們推薦使用的工具是Editplus/JCreator+JDK,這時候不要急于上手JBuilder/Eclipse等集成開發環境,以免過于關注IDE的強大功能而分散對Java技術本身的注意力。過了這一階段你就可以開始熟悉 IDE了。程序員日常工作包括很多活動,編輯、編譯及構建、調試、單元測試、版本控制、維持模型與代碼同步、文檔的更新等等,幾乎每一項活動都有專門的工具,如果獨立使用這些工具的話,你將會很痛苦,你需要在堆滿工具的任務欄上不斷的切換,效率很低下,也很容易出錯。在JBuilder、Eclipse等IDE中已經自動集成編輯器、編譯器、調試器、單元測試工具JUnit、自動構建工具ANT、版本控制工具CVS、DOC文檔生成與更新等等,甚至可以把UML建模工具也集成進去,又提供了豐富的向導幫助生成框架代碼,讓我們的開發變得更輕松。應該說IDE發展的趨勢就是集成軟件開發中要用到的幾乎所有工具。從開發效率的角度考慮,使用IDE是必經之路,也是從一個學生到一個職業程序員轉變的里程碑。Java開發使用的IDE主要有Eclipse、JBuilder、JDeveloper、NetBeans等幾種;而Eclipse、JBuilder 占有的市場份額是最大的。JBuilder在近幾年來一直是Java集成開發環境中的霸主,它是由備受程序員尊敬的Borland公司開發,在硝煙彌漫的 Java IDE大戰中,以其快速的版本更新擊敗IBM的Visual Age for Java等而成就一番偉業。IBM在Visual Age for Java上已經無利可圖之下,干脆將之貢獻給開源社區,成為Eclipse的前身,真所謂“柳暗花明又一村”。浴火重生的Eclipse以其開放式的插件擴展機制、免費開源獲得廣大程序員(包括幾乎所有的骨灰級程序員)的青睞,極具發展潛力。

3.1.6 學習軟件工程 對小型項目而言,你可能認為軟件工程沒太大的必要。隨著項目的復雜性越來越高,軟件工程的必要性才會體現出來。參見“軟件開發學習路線”小節。

3.2學習要點 確立的學習路線之后,我們還需要總結一下Java的學習要點,這些要點在前文多多少少提到過,只是筆者覺得這些地方特別要注意才對它們進行匯總,不要嫌我婆婆媽媽啊。

3.2.1勤查API文檔當程序員編寫好某些類,覺得很有成就感,想把它貢獻給各位苦難的同行。這時候你要使用“Javadoc”工具(包含在JDK中)生成標準的Java DOC文檔,供同行使用。J2SE/J2EE/J2ME的DOC文檔是程序員與程序員交流的工具,幾乎人手一份,除了菜鳥之外。J2SE DOC文檔官方下載地址:http://Java.sun.com/j2se/1.5.0/download.jsp,你可以到google搜索CHM版本下載。也可以在線查看:http://Java.sun.com/j2se/1.5.0/docs/api/index.html。對待DOC文檔要像毛主席語錄,早上起床念一遍,吃飯睡覺前念一遍。當需要某項功能的時候,你應該先查相應的DOC文檔看看有沒有現成的實現,有的話就不必勞神費心了直接用就可以了,找不到的時候才考慮自己實現。使用步驟一般如下: ●找特定的包,包一般根據功能組織。●找需要使用類,類命名規范的話我們由類的名字可猜出一二。●選擇構造器,大多數使用類的方式是創建對象。●選擇你需要的方法。

3.2.2 查書/google->寫代碼測試->查看源代碼->請教別人 當我們遇到問題的時候該如何解決?這時候不要急著問別人,太簡單的問題,沒經過思考的問題,別人會因此而瞧不起你。可以先找找書,到google中搜一下看看,絕大部分問題基本就解決了。而像“某些類/方法如何使用的問題”,DOC文檔就是答案。對某些知識點有疑惑是,寫代碼測試一下,會給你留下深刻的印象。而有的問題,你可能需要直接看 API的源代碼驗證你的想法。萬不得已才去請教別人。

3.2.3學習開源軟件的設計思想 Java領域有許多源代碼開放的工具、組件、框架,JUnit、ANT、Tomcat、Struts、Spring、Jive論壇、PetStore寵物店等等多如牛毛。這些可是前輩給我們留下的瑰寶呀。入寶山而空手歸,你心甘嗎?對這些工具、框架進行分析,領會其中的設計思想,有朝一日說不定你也能寫一個XXX框架什么的,風光一把。分析開源軟件其實是你提高技術、提高實戰能力的便捷方法。

3.2.4 規范的重要性 沒有規矩,不成方圓。這里的規范有兩層含義。第一層含義是技術規范,多到http://www.tmdps.cn下載JSRXXX規范,多讀規范,這是最權威準確最新的教材。第二層含義是編程規范,如果你使用了大量的獨特算法,富有個性的變量及方法的命名方式;同時,沒給程序作注釋,以顯示你的編程功底是多么的深厚。這樣的代碼別人看起來像天書,要理解談何容易,更不用說維護了,必然會被無情地掃入垃圾堆。Java編碼規范到此查看或下載http://Java.sun.com/docs/codeconv/,中文的也有,啊,還要問我在哪,請參考3.2.2節。

3.2.5 不局限于Java 很不幸,很幸運,要學習的東西還有很多。不幸的是因為要學的東西太多且多變,沒時間陪老婆家人或女朋友,導致身心疲憊,嚴重者甚至導致抑郁癥。幸運的是別人要搶你飯碗絕非易事,他們或她們需要付出很多才能達成心愿。Java不要孤立地去學習,需要綜合學習數據結構、OOP、軟件工程、UML、網絡編程、數據庫技術等知識,用橫向縱向的比較聯想的方式去學習會更有效。如學習Java集合的時候找數據結構的書看看;學JDBC的時候復習數據庫技術;采取的依然是“需要的時候再學”的原則。

4.結束語需要強調的是,學習軟件開發確實有一定的難度,也很辛苦,需要付出很多努力,但千萬不要半途而廢。本文如果能對一直徘徊在Java神殿之外的朋友有所幫助的話,筆者也欣慰了。哈哈,怎么聽起來老氣橫秋呀?沒辦法,在電腦的長期輻射之下,都快變成小老頭了。最后奉勸各位程序員尤其是MM程序員,完成工作后趕快遠離電腦,據《胡播亂報》報道,電腦輻射會在白皙的皮膚上面點綴一些小黑點,看起來鮮艷無比……

下載看牛人如何學習JAVAword格式文檔
下載看牛人如何學習JAVA.doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發現有涉嫌版權的內容,歡迎發送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯系你,一經查實,本站將立刻刪除涉嫌侵權內容。

相關范文推薦

    JAVA學習

    1 買本《java瘋狂講義》 或者 在網上下載下來看看2 主要看java語法部分和面向對象編程部分3 這些要速度過 接下來開始寫一些小例子 從例子里面學習會更快4 例子差不多了就開......

    如何深入學習java

    在開發領域的技術人員,只有不斷地充電提高才能夠讓自己始終處于不敗之地。技術日新月異,推陳出新,讓技術人員目不暇接。我們都知道,java技術是目前最流行的編程語言,java入門很難......

    從牛人論文造假看學術不端

    從牛人論文造假看學術不端 去年,日本東京大學分子細胞生物學研究所前教授加藤茂明的研究小組發表的41篇論文因存在大量篡改和捏造實驗數據的行為被撤回。時隔一年,數月前加藤......

    Java學習路線

    怎么學習Java,這是很多新手經常會問我的問題,現在我簡單描述下一個Java初學者到就業要學到的一些東西: 首先要明白Java體系設計到得三個方面:J2SE,J2EE,J2ME(KJAVA)。J2SE,Java 2 P......

    java 學習線路

    怎么學習Java,這是很多新手經常會問我的問題,現在我簡單描述下一個Java初學者到就業要學到的一些東西: 首先要明白Java體系設計到得三個方面:J2SE,J2EE,J2ME(KJAVA)。J2SE,Java 2 P......

    學習必經之路JAVA

    很多網友問我學習Java有沒有什么捷徑,我說“無他,唯手熟爾”。但是我卻很愿意將自己學習的一些經驗寫出來,以便后來者少走彎路,幫助別人是最大的快樂嘛! 要想學好Java,首先要知......

    java學習方向

    如何學習java(一) 最近論壇上看到好幾個朋友都在問,如何學習Java的問題,“我已經學習了J2SE,怎么樣才能轉向J2EE?”,“我看完了Thinking in Java, 可以學習J2EE了么?”。于是就......

    java學習步驟

    java 學習步驟-_- J2EE又包括許多組件,如JSP,Servlet,JavaBean,EJB,JDBC,JavaMail等。要學習起來可不是一兩天的事。那么又該如何學習J2EE呢?當然Java語法得先看一看的,I/O包......

主站蜘蛛池模板: 免费看久久妇女高潮a| 最新的国产成人精品2020| 中文国产成人精品久久久| 潮喷失禁大喷水aⅴ无码| 亚洲影院天堂中文av色| 国产做a爰片久久毛片a片白丝| 精产国品一二三产区m553麻豆| 少妇饥渴偷公乱av在线观看涩爱| 8888四色奇米在线观看| 国产美女口爆吞精普通话| 欧美人与动牲交xxxxbbbb| 国产成人精品午夜福利软件| 国产日韩一区二区三区在线观看| 日韩人妻无码精品无码中文字幕| 久久久久久国产精品美女| 亚洲日韩欧洲无码av夜夜摸| 天堂网在线最新版www| 国产综合视频一区二区三区| 亚洲第一无码专区天堂| 国产精品女视频一区二区| 中国精品偷拍区偷拍无码| 久久青青草免费线频观| 免费毛片a线观看| 狠狠色狠狠色综合日日不卡| 精品国产亚洲一区二区三区在线观看| 国产精品熟女高潮视频| 中文无码精品一区二区三区| 水牛影视一区二区三区久| 精品视频一区二区三区在线观看| 一二三四在线视频社区3| 国产裸体舞一区二区三区| 久久在精品线影院精品国产| 第九色区av天堂| 国产精品久久久久久久久人妻| 国产极品美女高潮无套| 亚洲最大av无码网站| 久久国产精品精品国产色婷婷| 好紧好湿太硬了我太爽了视频| 2020狠狠狠狠久久免费观看| 免费看又色又爽又黄的国产软件| 精品国产拍国产天天人|