其實(shí)Java并沒(méi)有想象中的那么難,首先想要入這個(gè)行就要做心理準(zhǔn)備,零基礎(chǔ)java開(kāi)發(fā)如何自學(xué)?需要參加java培訓(xùn)班嗎?如果想成為技術(shù)大牛,就需要不間斷學(xué)習(xí),去汲取知識(shí),前期不能怕辛苦,不要閑下來(lái)就打游戲,有空就得多看看各種開(kāi)源項(xiàng)目的代碼,API的設(shè)計(jì)方式,各大網(wǎng)站的設(shè)計(jì)架構(gòu),理解各個(gè)環(huán)節(jié)的作用開(kāi)闊知識(shí)視野。
零基礎(chǔ)java開(kāi)發(fā)如何自學(xué)?需要參加java培訓(xùn)班嗎?需要參加java培訓(xùn)班嗎?學(xué)習(xí)前先準(zhǔn)備兩個(gè)開(kāi)發(fā)工具:
1、JDK -(Java SE Development Kit)
JDK是Java開(kāi)發(fā)所需要的環(huán)境,就跟我們想玩某個(gè)網(wǎng)游一樣,玩之前一定是需要先安裝相應(yīng)的程序包的。
那這個(gè)JDK就是我們準(zhǔn)備登陸Java大陸前需要安裝的一個(gè)程序包。
2、IDE是集成開(kāi)發(fā)環(huán)境
一般集成開(kāi)發(fā)環(huán)境都會(huì)帶有JDK,可以使用自帶的JDK也可以使用我們下載的JDK,不同的IDE配置不同。Java常用的IDE有Eclipse、MyEclipse、IntelliJ
IDEA。IDE具備代碼分析、補(bǔ)全、變異、調(diào)試等常用功能,可以大大的提高開(kāi)發(fā)人員的編程效率。
java開(kāi)發(fā)怎么自學(xué)?java技術(shù)如何自學(xué)?
一、入門基礎(chǔ):Java基礎(chǔ)
代碼語(yǔ)法基本格式;輸出表達(dá)式。了解Java大致的編譯以及執(zhí)行過(guò)程Java語(yǔ)言基礎(chǔ)、循環(huán)、數(shù)組 ;
了解類和對(duì)象掌握J(rèn)ava的基本數(shù)據(jù)類型和引用數(shù)據(jù)類型有哪些;掌握強(qiáng)制數(shù)據(jù)類型轉(zhuǎn)換和自動(dòng)類型提升規(guī)則;
常量如何聲明及賦值;循環(huán)的語(yǔ)法及作用;數(shù)組的聲明及定義;掌握類的概念以及什么是對(duì)象。OOP封裝、繼承、多態(tài)面向?qū)ο蟮娜筇卣?,本?jié)內(nèi)容非常重要也相對(duì)來(lái)說(shuō)較為難以理解,一定要耐下心來(lái)好好理解。java.util.*包下的常用類util包下的Collection、Comparator、Iterator、List、Map、Set接口都很重要,著重看一下他們的實(shí)現(xiàn)類,
如:ArrayList、linkedList、HashSet、HashMap、Hashtable、TreeMap、TreeSet等。java.lang.*包下的常用類lang包下的基本數(shù)據(jù)類型對(duì)應(yīng)的包裝類(Byte、Short、Integer、Long、Double、Float、Character、Boolean);字符串相關(guān)的類String、StringBuffer、StringBuilder。
IO流操作,多線程及Socket掌握IO讀寫流相關(guān)的類,了解字節(jié)流,字符流和字符流緩沖區(qū);掌握線程的概念,多線程的創(chuàng)建、啟動(dòng)方式,鎖和同步的概念及運(yùn)用;掌握Socket通信的概念,如何聲明客戶端服務(wù)端,如何完成雙端數(shù)據(jù)通信。
數(shù)據(jù)庫(kù)基礎(chǔ)(Mysql)及JDBC掌握數(shù)據(jù)庫(kù)的基本概念,Mysql的安裝、啟動(dòng)與停止Mysql數(shù)據(jù)庫(kù)客戶端的安裝與使用JDBC的概念,在Java中使用Mysql驅(qū)動(dòng)包連接MysqlMysql
通過(guò)第一階段的學(xué)習(xí)掌握J(rèn)ava語(yǔ)法和常用類,數(shù)據(jù)庫(kù)入門技術(shù)相關(guān)知識(shí)。讓自己對(duì)于存儲(chǔ),IO,這些有個(gè)大概的了解。這時(shí)候,暫時(shí)不需要花大量的精力以及篇幅去學(xué)習(xí)多線程和Socket,當(dāng)然這里不是說(shuō)他們不重要,而是對(duì)于現(xiàn)階段的你,或許很難非常清晰的明白以及了解他們具體的作用。這里第一節(jié)忽略掉了Swing,Swing章節(jié)的內(nèi)容可以不學(xué),因?yàn)樵趯?shí)際的工作中基本上沒(méi)有用武之地。
使用第一階段的技術(shù)完成一個(gè)小型的系統(tǒng),找一個(gè)自己做容易理解的系統(tǒng)練練手,比如超市管理系統(tǒng)、成績(jī)管理系統(tǒng)等等這類需求簡(jiǎn)單卻能講整章內(nèi)容結(jié)合起來(lái)使用的項(xiàng)目。當(dāng)然這個(gè)時(shí)候可能會(huì)有人覺(jué)得沒(méi)有圖形界面沒(méi)法完成系統(tǒng)操作。實(shí)際上我們可以通過(guò)Console的輸入輸出來(lái)做系統(tǒng)界面。
新手在第一階段的學(xué)習(xí)時(shí),是最難熬的,因?yàn)檫@個(gè)時(shí)候需要背的東西特別多,且不再像看小說(shuō)一樣,什么東西都能看明白。路就變成了前面熟悉,左右陌生。這個(gè)時(shí)候人的求知欲作祟,往往會(huì)把自己帶著偏移了方向,因?yàn)槲覀冏约阂膊恢肋@樣走對(duì)不對(duì)。
漸而遠(yuǎn)之,也就慢慢放棄了。而這樣的放棄,是最不值得的。所以,學(xué)習(xí)Java一定要按照某一個(gè)大綱,一直往下不要往其他地方偏,先走完一遍之后,再回頭慢慢撿。
java開(kāi)發(fā)怎么自學(xué)?java技術(shù)如何自學(xué)?
二、前端基礎(chǔ)HTML
基本標(biāo)簽、表格、表單和框架;掌握網(wǎng)頁(yè)的基本構(gòu)成;掌握HTML的基本語(yǔ)法;表格的作用以及合并行、合并列;表單標(biāo)簽的使用,提交方式get/post的區(qū)別;框架布局的使用CSS樣式表;掌握CSS的語(yǔ)法及作用,在html中的聲明方式;
1、掌握CSS布局的函數(shù)使用
掌握CSS外部樣式的引入。Javascript;掌握J(rèn)S的語(yǔ)法及作用,在HTML中的聲明方式;掌握J(rèn)S的運(yùn)行方式;掌握J(rèn)S中的變量聲明、函數(shù)聲明、參數(shù)傳遞等;
2、掌握HTML中的標(biāo)簽事件使用
掌握J(rèn)S中的DOM原型上述三節(jié)都可以查看w3school : HTML
系列教程jQuery了解如何使用jQuery,下載最新版或者老版本的jQuery.js掌握選擇器、文檔處理、屬性、事件等語(yǔ)法及使用;能夠靈活使用選擇器查找到想要查找的元素并操作他們的屬性;動(dòng)態(tài)聲明事件;動(dòng)態(tài)創(chuàng)建元素。
3、jQuery文檔
jQuery API 中文文檔 | jQuery API 中文在線手冊(cè) | jquery
api;掌握BootStrap的設(shè)計(jì)理念,以及使用方式。這是我們需要接觸的第一個(gè)前端框架,使用起來(lái)也很簡(jiǎn)單;掌握BootStrap的柵格系統(tǒng)、表單、全局樣式、分頁(yè)工具欄、模態(tài)框等。
4、Servlet掌握J(rèn)ava中的Web項(xiàng)目目錄結(jié)構(gòu)
掌握J(rèn)ava Web項(xiàng)目的重要中間件Tomcat;掌握Servlet中的Request和Response;掌握Servlet的基本運(yùn)行過(guò)程。
掌握Servlet的聲明周期動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)JSP在Java
Web中的角色;JSP的編碼規(guī)范,以及JSPServlet;JSP顯示亂碼的解決辦法等。JSP數(shù)據(jù)交互JSP中如何編寫Java代碼,如何使用Java中的類;JSP中的參數(shù)傳遞。
5、狀態(tài)管理Session和cookie掌握Session的作用及作用域
掌握cookie的作用及作用域;掌握Session及cookie的區(qū)別,存儲(chǔ)位置,聲明周期等;掌握Session及cookie分別在JSP和cookie中的使用JSTL和EL表達(dá)式使用EL表達(dá)式輸出page、request、session、application作用域中的值使用JSTL來(lái)做邏輯判斷或循環(huán)控制JNDI數(shù)據(jù)庫(kù)連接池JNDI的作用以及如何使用JNDI連接數(shù)據(jù)庫(kù)分頁(yè)和文件上傳掌握在JSP中如何使數(shù)據(jù)達(dá)到分頁(yè)的目的;
6、掌握在JSP表單中如何上傳文件
Servlet如何處理上傳請(qǐng)求(Commons-Fileupload、Commons-IO)。Ajax掌握Ajax的基本概念;掌握jQuery中的Ajax請(qǐng)求;掌握J(rèn)SONFilter、Listener;掌握Filter和Listener掌握Session過(guò)濾器和編碼過(guò)濾器
通過(guò)第二階段了解前端相關(guān)的技術(shù),如果你喜歡前端各種酷炫的效果,那么就深入學(xué)習(xí)JS、CSS。不大感興趣的話,就淺嘗輒止,并重點(diǎn)學(xué)習(xí)Servlet、Filter、Listener。
學(xué)習(xí)完第二階段的內(nèi)容之后,就可以進(jìn)行B/S版本的系統(tǒng)開(kāi)發(fā)了。這個(gè)時(shí)候我們可以挑選個(gè)稍微復(fù)雜點(diǎn)兒的項(xiàng)目來(lái)練練手,能找到商業(yè)項(xiàng)目練手的那是最好不過(guò)的,沒(méi)有的話,就寫寫學(xué)生管理系統(tǒng),檔案管理系統(tǒng),人事管理系統(tǒng)之類的練練手吧。
java開(kāi)發(fā)怎么自學(xué)?java技術(shù)如何自學(xué)?
三、 主流技術(shù)應(yīng)用Struts2
1、Struts2應(yīng)用通過(guò)學(xué)習(xí)Struts,了解什么是MVC;掌握Struts是如何完成界面控制的;掌握Struts的參數(shù)接收及傳遞;掌握Struts的攔截器;掌握Struts的OGNL和標(biāo)簽使用。
2、Hibernate應(yīng)用了解什么是ORM,ORM在項(xiàng)目中的作用及優(yōu)勢(shì);Hibernate中的hbm與實(shí)體類之間的關(guān)系;什么是HQL,什么是關(guān)系映射(一對(duì)一,多對(duì)一,多對(duì)多);了解Hibernate的事務(wù)、懶加載和緩存。Spring應(yīng)用Spring容器的作用;Spring的AOP和IOC;Spring托管Hibernate事務(wù);Spring整合Struts2和Hibernate。
通過(guò)第三階段了解目前Java領(lǐng)域比較經(jīng)典的三大框架,了解他們的大概功能,并加以使用。通過(guò)使用SSH開(kāi)發(fā)一個(gè)簡(jiǎn)易CRM之類的項(xiàng)目來(lái)加強(qiáng)了解,理清楚框架的大致原理。搞清楚這三個(gè)框架之間的作用域以及角色。
在第三階段的內(nèi)容學(xué)習(xí)完了之后,就應(yīng)該對(duì)整個(gè)系統(tǒng)研發(fā)有個(gè)大概的印象,實(shí)際上這個(gè)時(shí)候,獨(dú)立完成一個(gè)系統(tǒng)之后,再回過(guò)頭來(lái)仔細(xì)思考下Servlet+JDBC+JSP與SSH實(shí)現(xiàn)項(xiàng)目的相同點(diǎn)及區(qū)別。這樣會(huì)讓你更加的有收獲。
java開(kāi)發(fā)怎么自學(xué)?java技術(shù)如何自學(xué)?
四、模擬實(shí)際項(xiàng)目開(kāi)發(fā)1SpringMVC的應(yīng)用
SpringMVC中的控制器注解、請(qǐng)求注解、參數(shù)注解、響應(yīng)注解等;SpringMVC中的靜態(tài)資源處理;SpringMVC的容器。Mybatis的應(yīng)用Mybatis的Mapping與實(shí)體映射;Mybatis中的SQL語(yǔ)句寫法;Mybatis的緩存。
1、Spring+SpringMVC+Mybatis整合SSM的整合使用
回顧SSH與SSM的區(qū)別。Redis+Mysql的查詢優(yōu)化設(shè)計(jì)Redis的安裝與連接;Redis常用命令;Redis存儲(chǔ)機(jī)制;Redis的持久化機(jī)制。
2、FastDFS的使用什么是分布式文件系統(tǒng)
分布式文件系統(tǒng)解決的問(wèn)題是什么;FastDFS的使用Linux操作系統(tǒng)Linux中的常用命令;Linux下的JDK、tomcat安裝;Linux下的項(xiàng)目部署方式。
Nginx的使用Nginx的作用;反向代理和正向代理分別是什么;Nginx實(shí)現(xiàn)tomcat代理。
3、Mysql集群方案Mysql集群的常用方案有哪些
Mycat中間件的概念Mycat的使用準(zhǔn)則;了解數(shù)據(jù)庫(kù)的主從復(fù)制;了解數(shù)據(jù)庫(kù)的主備切換;為什么需要主從和主備。
4、Solr入門什么是全文檢索
Solr做搜索的優(yōu)勢(shì)是什么;Lucene、ElasticSearch、Solr之間的關(guān)系;Solr的安裝與使用。JVM回顧所有所學(xué)習(xí)到的知識(shí),聯(lián)系所有框架中的自定義容器、上下文來(lái)理解變量及對(duì)象的存儲(chǔ)理解垃圾回收是怎么一回事理解集中回收算法完全理解整個(gè)堆棧模型
通過(guò)第四個(gè)階段了解更簡(jiǎn)單易用的SpringMVC,應(yīng)用和存儲(chǔ)集群相關(guān)的概念及實(shí)現(xiàn)方案。讓自己具備一個(gè)設(shè)計(jì)高可用,可擴(kuò)展的項(xiàng)目框架視野。這樣對(duì)于后面繼續(xù)專研SpringCloud
/ Dubbo、zookeeper這些RPC相關(guān)的框架有很大的好處。
第四階段的內(nèi)容更加偏向于互聯(lián)網(wǎng)技術(shù)棧,通過(guò)這一節(jié)的內(nèi)容能夠脫離出基本的增刪改查,了解出了增刪查改之后,需要了解的集群、系統(tǒng)性能優(yōu)化、外部緩存服務(wù)器使用、集群負(fù)載等概念。這些思維對(duì)于后面的提高以及學(xué)習(xí)會(huì)很有好處。
我提到的這些東西都能搜到對(duì)應(yīng)的資料,無(wú)非多踩點(diǎn)坑罷了。但是,看文檔or項(xiàng)目永遠(yuǎn)進(jìn)步不了。一定要上手敲,想再多也不如動(dòng)手。有機(jī)會(huì)聯(lián)系一名優(yōu)秀學(xué)長(zhǎng),有個(gè)走在前面的人給你指路肯定比你自己走要快得多。
零基礎(chǔ)java開(kāi)發(fā)如何自學(xué)?需要參加java培訓(xùn)班嗎?在所有的學(xué)習(xí)過(guò)程中,每一個(gè)節(jié)點(diǎn)都應(yīng)該有相應(yīng)的練習(xí)或者項(xiàng)目來(lái)進(jìn)行練手,看再多的博文和視頻都是不行的,
不能讓自己的雙手停下來(lái),只有不停的敲打鍵盤,寫出自己的項(xiàng)目,然后在實(shí)際的開(kāi)發(fā)中學(xué)會(huì)如何使用debug,總結(jié)所有遇到的bug及解決思路,這樣才叫做學(xué)習(xí)技術(shù)。