{eval=Array;=+count(Array);}
不扯那些虛的,要來就來實質性的干貨。
問問自己是抱著什么目的要學習Java,沒有目標的學習是效率極低的,并且容易半途而廢;
了解Java可以做什么,Java可以從事的崗位以及軟件行業的發展情況;
自己是否對Java方向感興趣;
學習準備
推薦看視頻入門,可以通過某寶以及某魚購買相關的視頻,別挑三揀四,選中一個視頻看完再說,對于初學者,無論選哪一個都是值得你學習的。可以選擇傳智、黑馬、尚學堂等教學視頻,買一個系列的即可;
有人說編輯器等IDE環境不適合看視頻,浪費時間,但是初學者在學習第一個編程IDE時,推薦看視頻或者通過搜索引擎了解工具的使用,看書其實在剛開始可能更浪費時間;
看完基礎視頻對知識有個大概的了解,這時候看書就不會一頭霧水,此時可以通過看書來深入學習,之后的學習可以自己選擇看書還是看視頻,最好的方法是花時間既看視頻也看書;
學著學著忘掉前面的別總想著回頭記住,先往后學,有些基礎知識暫時用不上,當你學到應用的知識時自然會慢慢理解;
書籍推薦
入門書籍:《Head First Java》、《Java 核心技術》
進階書籍:《Java編程思想》
學習完Java基礎,接著適合學習Java Web,這個推薦看視頻,學習數據庫和JDBC基礎知識以及基本的前端知識,然后學習SSM框架,學習路線為:
Mysql -> JDBC -> HTML、CSS、JavaScript、JSP -> Spring -> SpringMVC -> Mybatis -> SSM整合 -> SSM項目實戰
推薦兩本書:
《深入分析 java web 技術內幕》
《架構探險-從零開始寫java web框架》:講解 ioc、aop 通俗易懂,實現 ioc、aop
實戰之后返回深入學習 Java 相關知識,自頂向下學習,通過大概學習基礎,實戰之后返回深入學習基礎知識,由廣至深。
推薦書籍:
《Java并發編程的藝術》
《Head First 設計模式》
《深入理解 Java 虛擬機》
要想超越別人,不僅僅要掌握實戰技能,更重要的是基礎扎實
《算法》第4版
《圖解TCP/IP》
《圖解HTTP》
《操作系統概念》(恐龍書)
這么多已經夠你學習了,主要是行動起來,還有更深入的,比如數據庫方面以及Java相關的方面,等你學完以上知識相信你自己已經知道需要學習什么了,不要一次被這么多內容嚇到,只要靜下心來,下一個大神就是你。
我是17年某工科非計算機本科畢業的,坐標某二線城市,大四的時候找了某個中型企業做了一年的打雜工作。平時的工作就是負責到流水線上檢驗產品之類的,在辦公室寫寫文檔。薪資不高,但福利還算不錯,五險一金交的基數是同城市最高的。
曾經有在五個月的時間里面,我一直都處在一個很焦慮的狀態,所謂的焦慮就是錢少,上升空間也沒有。每天拿著一點微薄的薪水勉強度日。上班忙于上班,下班了便躺在床上什么都不做,玩玩手機上上網。我一直在思考,這輩子是否會這么平庸的活下去,以我目前的薪資這輩子也不可能在這個城市里買房,我又不想回老家。那里已經沒有我的圈子了,所以我必須思考著其它出路。那時候的我每天都很焦慮,活了這么久,卻什么也沒干,什么事情都是在拖延。我想我以后的生活可以按照自己的想法而活。
俗話說,鵪鶉要吃紅櫻桃,光想是沒有用的。每一個疲憊生活里的英雄夢想都是從一個小的開始。
大概在三月份的時候,我向公司遞交了辭職申請。主管和老板一直在挽留我,花了將近一個月的時間在給我做思想工作,給我描繪了大好的藍圖。不過我還是遵從了內心的指示。
很早就想做軟件了,不僅僅是現在軟件行業一直保持著快速健康發展的趨勢,還有收入平均的增速。像我們這樣非科班出身,如果想走軟件這條路,大多數的方法就是先進入一家培訓公司學習。我有好多同學在當初畢業的時候或者在大四的時候,都是這么選擇的。從事的方向也很多,什么嵌入式,安卓、Ios、游戲什么的。不過據我所知,有的只是在學習課程結束后找了一個測試的工作。我也上網查了很多培訓機構,琳瑯滿目,不過價格來說都是一個貴字。有些風評也不好,未必適合我。總之,最后根據自己的興趣,決定從Java入手。因為崗位多啊!同志們。
下面就是我自己學習的一些心得和過程。
先確定學習的方向,因為我想從事Web開發,也就是說。我需要知道這門體系的一個學習路線圖
20180216103838768.jpgJavaSE
關于這方面的知識,網上有很多資源。一些培訓機構的視頻也可以下載下來看。我在這方面選擇的是看書學習。先找了一本Java2實用教程(第五版),這里我不推薦一上來就看什么Java編程思想,核心技術這樣的書。對我這種新人來說,里面的內容太苦難了。先把語法看懂,寫一寫書上的小例子,知道Java是怎么一回事就行。
等回過頭來,再去翻翻Java編程思想會容易理解很多。當然,余下的時間我推薦你最好看看計算機內部底層是怎么一回事,不需要精通,只需明白是怎么回事就可以了。
學SE的過程中,可以有那些不懂的地方,可以看看那一部分視頻。結合起來才能有效率。GUI可以不學,多線程也可以先了解。因為多線程不是你看書一時半會就能明白的,需要大量的實戰。
數據庫
關于數據庫方面的知識也是必學的,這里我推薦某傳劉道成的 MySQL 視頻教程。一定要結合JavaSE寫一些JDBC的操作。學習一下事務的特性,因為這個面試會問。我在好幾家面試面試官都會問你JDBC驅動加載過程,事務是什么,有什么特性。
以上兩方面的內容,假設在你每天學8小時的情況下,一個月就可以學完了。我覺得你應該是可以做一些小的軟件了。比如聊天室(涉及Socket內容)、飛機大戰等等。
JavaWeb
來說說這方面的知識怎么學,HTML、CSS、Javascript、Jquerry、Ajax肯定是必不可少的。企業開發必須要懂這些,沒有捷徑。
其次是Jsp、Servlet。Jsp其實底層就是Servlet,所以你一定要把Servlet學好。API你一定要會用。到時候面試問你Servlet的知識你一定要能答得上來。這方面的知識只能找視頻學習,對于不是科班出身的人不推薦看書。我一開始也不知道怎么開始,在網上找了很多方法,遇到不懂的就百度查資料。一定要嘗試,多寫。俗話說萬事開頭難。
接下來就是框架了,現在企業流行SSM框架。所以我只學了這三個、Spring、SpringMVC、Mybatis。學完框架之后我想你可以開始試著做一個Web項目了。這部分網上的資源也很多。可以跟著做。遇到不明白的或者代碼有報錯可以求助網友,畢竟網友是很強大的。
此時,我想你已經具備了可以去實習了,僅僅是實習,因為現在的你才剛剛開始,還有更多的技術需要你去不斷的學習。我就是因為覺得人生是不能停止學習的,才毅然辭職,選擇從事軟件的行業。
心路歷程
整個學習的過程很痛苦,那種痛苦雖然比不上考研。我在圖書館,通宵熬夜沒命的看書。每天回到出租屋里就會覺得空虛,迷茫。第二天起來又去圖書館。看到之前從事這方面的同學一個個都加薪了,心里面不是滋味。歷時三個多月都是這種狀態。找工作的時候更加如此,不斷的撞南墻。回家查面試遇到不會的問題,其實選擇公司面試的題目大部分都是差不多的。只要你虛心一點,和面試官多聊聊,我相信你會找到第一份軟件開發的工作。
找工作部分
首先是簡歷,因為我沒有這方面的經驗和經歷。簡歷一定要寫的真誠,說明自己的清空。寫明自己的教育背景,如果你的外語能力比較強,這也是比較加分的。然后就是Java的一些技能,千萬不要寫精通什么什么,被面試官問到深一點的你答不上來,那么印象分會大打折扣。如果你在學校有獲得什么證書最好也寫上。多投投一些要求低的。面試多了,你也就大概知道什么套路了。找工作的一個月時間里,我收到了四個offer,雖然不多。但是我很開心。最終選擇了一家薪資,發展空間,平臺也好的一家公司。對方很看重我的毅力,給了我4.5K的工資。雖然不多,但這才是開始!目前我已經在這家公司入職了,氛圍很好,老人愿意帶我,真的很幸運!
屏幕前的你,一定要相信自己,可以完成你想象中的事情!
說道JAVA,本人也是有很深的體悟和感慨,本人也是從程序員開始,然后一直到現在從事產品工作,經歷了挺多,也獲得了挺多,好了不跑題了,在這里分享一下一些個人的體悟.
JAVA其實說白了就是一門開發語言,但是實際在社會上,利用JAVA這個開發的語言衍生出了非常多的工種和內容,比如Android的開發,JAVA后臺的開發(Struts2,Spring,Hibernate,MyBatis等等框架)
假若你想想要走前端Android工程師路線,個人建議的學習路徑:
JAVA語言學習(開發環境搭建,基本語法,面向對象,集合框架,泛型,等等等等,可購買書籍或網上下載視頻) --> 數據庫基礎學習(可以專門學習Mysql等知識,網上有教程視頻免費下載) --> Android基礎學習(Android開發環境搭建,空間的學習,xml-Layout學習) --> 實戰學習(自己摸索開發一款軟件).
JAVA-WEB開發工程師路線,個人建議學習路徑:
JAVA語言學習-->數據庫學習(可重點學習Oracle)-->JAVAWeb基礎學習(JDBC,HTML,CSS,TOmcat服務器,Ajax等等)-->JAVAWeb高級學習(Struts2,Spring,SpringMVC,SCM,Log4j等等框架內容)-->JAVAEE實戰做項目
其實就個人的建議,假若在時間的允許下,想要學習好JAVA并可以快速入門形成自有的競爭力,建議還是去一些培訓機構學習. 相對與個人獨自學習,培訓機構有以下幾點優勢的:
當然假若去培訓機構,也會有弊端:
當然,相對于培訓機構的弊端,個人認為他們優勢還是比較大的,其實就本人經歷來說,從畢業到現今,工作的也有6~7年的時光,其實在這些時間里,為了獲得技能,也是花費了很多時間與成本在培訓和學習上,如軟件培訓,產品經理學習,高級職稱,高級管理師學習等等... 當然就個人而言,付出總會有回報,所以依據自己曾經走過的道路,在這里給出大家的小建議。
本人現今從事互聯網產品工作,高級項目管理師,PMP國際管理師,歡迎有想在互聯網或者在科技技術領域有所經驗的人兒們相互關注交流學習.
我使用Java的時間比較久,也出版過關于Java的編程書籍,所以對Java語言非常熟悉。
Java語言是目前使用最為廣泛的編程語言之一,對于沒有基礎的初學者來說,學習Java還是有一定難度的。為了高效率學習Java我給出以下幾點建議:
第一,學習Java的重點是對核心概念的理解。這里的核心概念有類、對象、屬性、方法、封裝、繼承、多態,以及由這些核心概念派生出的一系列概念,比如方法重載、方法重寫、虛方法、抽象方法、靜態方法、接口等概念。
第二,掌握Java面向對象的編程過程和思想。Java的編程過程分為三個步驟:類的設計、對象的創建、方法的調用。核心思想是以對象為基礎來構建功能間的交互,類則是對象的抽象。
第三,理解容器(JVM)的作用。Java的容器功能十分強大,基本上實現了所有系統級的問題,比如垃圾回收、線程管理、對象生命周期管理、事件管理、本地化管理等等功能。了解Java的重點是了解容器的機制,容器在java中無處不在。
第四,多做實驗。無論學習什么語言,多做實驗一定是對的,尤其對一些比較抽象的概念,通過實驗能建立畫面感,同時能通過實驗驗證自己的想法。
第五,多交流。學習編程語言要多與別人交流,尤其是資深的Java程序員。如果身邊沒有這樣的資源,也可以通過看一些視頻資料來輔助學習。
第六,做實際的項目(實習)。當學習完基本的語法,做了一定的實驗之后,就應該通過實際項目來提升自己的編程能力了,通過實際項目獲得的經驗是十分寶貴的。
我在頭條上寫了關于Java學習的系列文章,想學習Java的朋友可以關注我的頭條號,相信一定會對你有所幫助。
謝謝!
最快的方法就是語言遷移。
假如你已經知道任何其他編程語言,或者面向對象的知識?
如果是的話,你的學習路徑可以更順暢。轉移到Java將非常容易和快速。
假如真實純小白。個人建議先從基礎開始吧。
從基礎的概念開始。
比如,你先分清java和javascript吧。
入手的媒介因人而異,可以是書籍或者視頻或者老師。名師出高徒,但是不是每個老師都是24小時的盯著你。基礎的概念弄清楚:
Java基礎知識,注釋,修飾符,變量,運算符,條件語句,循環語句,字符串,數組,文件處理,方法和異常處理。 Java面向對象編程系統基礎,繼承,多態,抽象和封裝。了解包,對象,類和實例方法、數據結構,線程等等基礎知識。這些概念本身有很多細節和實踐;
無論何種語言入門,都會需要很多時間。 當然,你可以非常快地學習一些語法,但是你的代碼很可能會在頭幾個月變得糟糕,而且會慢慢地變得更好。 基本上沒有辦法解決這個問題,直到人類能發明AI代碼機器人。
計算機算法里有一個分而治之。
中國式的教育,無論哪種方式,都會從源頭開始,全面學習,從高考到上大學。
學一種語言,個人覺得更適合專科的思路,即你先分而治之。
java學完基礎之后,你要做網絡編程, 就學網絡的api,要做底層驅動就學驅動的api,分而治之,沒必要都學習。
整理了需要掌握的,自己比較一下:
我是小鳥,多年深蹲于互聯網大坑里,歡迎關注來撩。
結合本人艱難的自學 Java 之路,談談自己的幾點建議:
1.不要相信知乎上推薦的自學書籍 《Thinking In Java》,我甚至很是懷疑這些張口閉口推薦這本書的家伙自己有沒有認真看完這本書,說實話,完全不適合自學的新手學習,反正一開始我是看的云里霧里的。
2.學習基礎知識時不要著急,要多做練習多敲代碼,熟悉 Java 常用的 API。一開始可以跟著視頻教程學習,后面慢慢的就可以自己跟著教材學習(我是跟著一個個人站長的 Java 教程學習的),這個時候對教材的選擇千萬不要多,隨便挑一本跟著好好學就對了。一定要自己多敲代碼多做練習,只有寫的多了,才會有感覺,說實話,我最開始學習的時候起個類名、變量名、方法名都要糾結半天。
3.學完基礎知識后,嘗試自己寫個小項目。對于無人指導的自學者而言,這一點是最難的,因為一開始肯定時無從下手的,不知道怎樣開始一個項目,甚至可能自己想要實現什么功能做個什么樣的項目都是模模糊糊的。這時可以在網上找一個簡單的項目跟著學習,先弄懂別人的項目,再仿造寫一個類似的項目就 OK 了,在這個過程中你會遇到很多的問題,這時你的提升會非常快,也可以迅速的增強自信。比如,做一個 web 項目,首先會指定需求,然后設計表,最后開始編碼工作……
當然,我上面談的都是自學 Java,如果覺得自己的執行力和意志力不太夠的話,也可以報個被訓班,可以幫你快速入門,不會像自學這樣痛苦,但就像大家說的,IT 技術日新月異,工作之后也要不斷的學習充電,必須做好心理準備。
我也是自學出來的,這里每個學習階段的視頻我都有,需要的話可以發私信我,放心我不會收取任何費用的。
1.基礎階段的學習
在這個學習階段你應該找一個好的基礎學習視頻,對著視頻認真進行學習,每天自己要逼著自己學習,大學很容易讓人頹廢。邊看還要變敲代碼,不要用ide用記事本有利于后期的代碼編寫習慣,還要做好筆記哦。
2.java web階段的學習
當你學習了前面基礎階段后你肯定會困惑,天天打印幾個字有啥用,其實不然基礎階段就是為這個階段做準備的,有了前面的基礎你可以輕松的學習這個階段的知識:servlet,jsp,Tomcat,數據庫等。同樣這個階段也要做好筆記用于以后的回顧。
3.框架學習階段
上面兩個階段學習完后要想去參加工作是不行的,你需要學習一些公司流行的框架來提供開發效率和質量,現在流行的框架有:spring,springmvc,mybatis,shiro等等,學習這些框架時你不需要了解透徹它,你只要知道怎么用怎么去搭建環境就可以了,等以后有了工作后你自然會理解它。
大體就是這幾個階段吧,希望能幫到你,還有在大學里一定要能控制住自己不能頹廢,兩天打魚,三天曬網。那樣是學不好東西的,加油吧少年!
先說一個我親身的經歷,我有一個同事是半路轉行做JAVA的,他也是在培訓機構學習之后才開始做JAVA編程。他現在可以說是已經達到了高級JAVA工程師的水平,無論是并發編程,分布式,設計模式,數據結構都能很好的應用,而他僅僅只用了2年的時間。要說真正的原因,首先是興趣,其次是方法。
大多數人都會對自己擅長的東西感興趣,而對無法勝任的事情感到厭煩,因此首先要通過練習的方式讓自己有成就感和自信,可以從簡單的,有意思的示例,讓自己對編程感興趣。學習要循序漸進,不能冒進。
無論學什么,打好基礎很重要。作為一名在培訓機構的學生,首先要認真學習培訓課程,培訓課程基本上都包含JAVA語言的基礎、數據結構、算法、數據庫等理論知識,這些知識是寫好程序的奠基石,即便它們不會被立即使用,它們也將成為你能夠在這一行中走的更遠的奠基石。可以通過刷題的方式來檢驗自己的學習進度。
俗話說實踐出真知,JAVA中的很多概念特別抽象,像類和對象,繼承和多態,多線程等,只有在真實的運行環境中才能夠真正的體會抽象的概念,才能夠真正的掌握其用法。因此,在學習理論的基礎上,多思考,多寫代碼示例。
大量的閱讀JDK、框架(spring、struts、hibernate等)、git上的項目源碼,可以說是提高編碼水平的捷徑。
總之想要學好JAVA語言,就要理論結合實際,在多讀書學習理論的基礎上,完成一個又一個程序和項目,迭代自己的認知和編碼水平。
關注@照亮職場,每天收獲一點職場小知識。如果認可我的觀點,煩請點贊、轉發和評論。你的支持,是我最大的動力!本人自學Java也有一年多時間了,期間斷斷續續的學了好幾次。以下說說自己學習Java的歷程。
大二暑假在家,天天玩游戲,感覺玩膩了,又因為馬上大三了,想搞一下學習,由于專業是計算機相關的,所以就想好好學一下編程,湊巧大二下學期開了Java課,但是沒怎么聽講,期末考試也是踩線過的,當時不知道怎么想的,立馬就百度搜了下如何自學Java,一搜全是培訓的廣告亂七八糟的。于是我就放棄百度了,轉而去看看有沒有Java自學群,QQ一搜果然有好多,隨便加了幾個群,詢問一下群里的大佬如何學Java,經過大佬們的建議,我給自己設定了幾個目標:
1. 跟著視頻學,首先跟著老師敲,敲完有不明白的問問大佬或者百度。過程很枯燥,堅持下去定會有收獲。(基礎視頻推薦畢向東老師的Java基礎)
2. 學會做筆記,總結自己在最近學習中遇到的問題和收獲。(有道云筆記或者為知筆記都是很好的工具,也可以寫成博客與他人一起討論)
3. 學完Java基礎后,一定要做幾個小項目,小游戲也好,小工具也行,總之要給自己一些激勵。
附上自己學完Java基礎之后做的一個小游戲
基礎階段學完之后,一般有兩個方向Android開發和JavaWeb開發。根據自己的興趣愛好選擇即可,如果有足夠的時間,兩個方向都可以嘗試一下,有比較才知道自己比較熱愛哪個方面嘛。個人比較推薦兩方面都了解了解。
最后,推薦一下書籍《Java核心技術卷一》,《Java核心技術卷二》,這兩本書可以說是比較經典的教材了,建議在學習過程中多看多敲多思考。如果學完Java基礎想學習Android開發則《第一行代碼》是一個不錯的選擇哦。祝題主早日學會Java。
你是一名希望開始或者正在學習機器學習的Java程序員嗎?
利用機器學習編寫程序是最佳的學習方式。你可以從頭開始編寫算法,但是利用現有的開源庫,你可以取得更大的進步。
本文介紹了主要的平臺和開放源碼的機器學習庫。你可以使用這些機器學習庫。
環境
本節描述了用于機器學習的Java環境或工作域。它們提供了用于執行機器學習任務的圖形用戶界面,還提供了用于開發自己應用程序的Java API。
WEKA
懷卡托環境知識分析(Weka)( https:// www.cs.waikato.ac.nz/ml/weka/)是一個由新西蘭懷卡托大學開發的機器學習平臺。提供Java的圖形用戶接口,命令行接口和Java API接口。它可能是最流行的Java機器學習庫,也是開始或練習機器學習的好地方。
KNIME
康斯坦茨信息挖掘(KNIME)(https://www.knime. com/)是德國康斯坦茨大學開發的一個分析和報告平臺。它的研發重點是藥物研究,但已擴展到一般商業智能。它提供一個圖形用戶接口(基于Eclipse)和Java API。
快速挖掘
快速挖掘(https://rapidminer.com/)由德國多特蒙德應用技術大學研發。它提供了一個GUI和一個Java API來開發自己的應用程序。還提供了數據處理、可視化和建模的機器學習算法。
ELKI
ELKI是一個用于開發由索引結構支持的KDD-應用程序的環境(https://elki-project.github.io/),它是由德國慕尼黑的路德維希馬克西米利安大學用Java語言開發的一款數據挖掘工作平臺。它的重點是在關系型數據庫中處理數據,例如異常值檢測和分類(基于距離函數方法)。它提供了一個迷你GUI、命令行接口和Java API。
庫
其實本文列出的每個項目都帶有Java API庫。不過在這一節中列出的這些項目僅提供了一個Java API。從狹義上來說,它們是機器學習庫。
Java-ML
Java機器學習庫(Java-ML)(http://java-ml.sourceforge.net/)提供了在Java中實現的機器學習算法的集合。它為每一種算法提供了標準接口,沒有UI(用戶界面),也沒有引用相關的科學文獻來進一步閱讀。它包括數據操作、群集、特性選擇和分類的方法。值得注意的是,截止本文成稿為止,它的最新一個版本是在2012年。
JSAT
Java統計分析工具(JSAT)(https://github.com /EdwardRaff/JSAT/tree/master)提供了一個純Java語言實現的標準機器學習算法,用于解決中等規模的問題。JSAT的作者稱他開發的這個庫部分是為了進行自我學習,部分是為了完成工作。盡管如此,算法的列表還是令人印象深刻的。它包括分類、回歸、合集、聚類和特征選擇方法。
Java大數據項目
本節列出了適合大數據的Java項目,例如機器集群。
Mahout (Hadoop)
Apache Mahout(https://mahout.apache.org/)提供了用于實現Apache Hadoop平臺(分布式映射化簡)的機器學習算法。該項目主要關注集群和分類算法,一個流行的應用程序驅動實現是它在推薦系統的協作篩選中使用。還包括在單個節點上運行算法的引用實現。
MLlib (Spark)
Apache機器學習庫(MLlib)(http://spark. apache.org/mllib/)提供了用于Apache Spark平臺(HDFS,而不是映射化簡)機器學習算法的實現。盡管Java庫和平臺支持Java、Scala和Python綁定。這個庫是新的,算法的列表很短,但是增長很快。
MOA
大規模在線分析(MOA)(https://moa.cms. waikato.ac.nz/)是一個開源平臺,由新西蘭懷卡托大學的數據流挖掘設計。和Weka相同(開發在相同的地方),提供一個GUI,命令行接口和Java API。它提供了一長串的算法,重點是分類和支持離群檢測,解決概念漂移。MOA使用先進的數據挖掘和機器學習系統(ADAMS)(https://adams.cms.waikato.ac.nz/)管理工作流,開發也在相同的地方。
SAMOA
可擴展的高級在線分析(SAMOA)(http://samoa-project.net/)是一個由雅虎開發的分布式流媒體機器學習框架。它的設計運行在Apache Storm 和 Apache S4上。系統可以利用MOA項目提供的算法來完成分類等任務。
自然語言處理
本節將致力于Java庫和項目,用于解決來自機器學習的子領域的問題,稱之為自然語言處理(NLP)。
自然語言處理不是我的領域,所以我僅僅指出關鍵的庫。
OpenNLP: Apache OpenNLP(http://opennlp. apache.org/)是處理自然語言文本的工具包,它為諸如標記化、分割和實體提取等自然語言處理任務提供了方法。
LingPipe:LingPipe(http://alias-i.com/lingpipe/)是計算語言學的一個工具包,包括了主題分類、實體提取、聚類和情緒分析的方法。
GATE: 文本工程一般結構(GATE)(http://gate.ac.uk/)是一個開源的用于文本處理的庫。它提供了針對不同用例子項目的數組。
MALLET:機器學習語言工具包(MALLET)( http://mallet.cs.umass.edu/)是一種Java工具包,用于統計自然語言處理、文檔分類、集群、主題建模和信息提取。
計算機視覺
本節列出了機器學習子領域庫,稱之為計算機視覺(VC)。
計算機視覺不是我熟悉的領域,所以我僅僅指出關鍵的庫。
BoofCV:BoofCV(http://boofcv.org/index.php?title=Main_Page)是一個用于計算機視覺和機器人應用的開放源碼庫。它支持圖像處理、特征、幾何視覺、校準、識別和圖像數據輸入等功能。
深度學習
隨著深度學習方法和硬件的快速發展,神經網絡又重新流行起來。本節列出了用于處理神經網絡和深度學習的關鍵Java庫。
Encog:Encog(http://www.heatonresearch.com/encog)是一個機器學習庫,提供了諸如SVM、經典神經網絡、遺傳編程、貝葉斯網絡、HMM和遺傳算法的算法。
Deeplearning4j:Deeplearning4j(http://deeplearning4j.org/)被認為是一個用Java編寫的商業級的深度學習庫。它被描述為與Hadoop兼容并提供了一些算法,包括受限的Boltzmann機,深層的信念網絡和堆疊的降噪自動編碼器。
總結
在這篇文章中,當我們在Java中選擇一個用于機器學習的庫或平臺時,我們已經接觸到了大項目名稱選項。這些是倍受學習者歡迎的項目,但絕不只這些列出來的。比如:看一下MLOSS.org (http://mloss.org/software/language/java/)上的這個頁面,(截止本文時)它列出了71個基于java的開源機器學習項目。這是一件很重要的工作,我相信GitHub和SourceForge還有更多的工作要做。
學習者的關鍵是要認真考慮自己的項目和需求。從一個庫或者一個平臺中找出你需要的東西,然后選擇和學習一個最適合自己的項目。
0
回答0
回答0
回答0
回答0
回答10
回答0
回答5
回答0
回答0
回答