Java從入門(mén)到精通可以到IT學(xué)習(xí)聯(lián)盟下載。
但是這套教程只是基礎(chǔ)。要學(xué)會(huì)真正到j(luò)ava就要一套完整到j(luò)ava視頻教程。
完整的java教程可以看看IT學(xué)習(xí)聯(lián)盟的<>。零基礎(chǔ)Java就業(yè)班包括Java基礎(chǔ) 進(jìn)階 高級(jí) 項(xiàng)目。
是一套完整的Java視頻教程。這套教程從零基礎(chǔ)開(kāi)始教起,零基礎(chǔ)到就業(yè)水平。
就算沒(méi)基礎(chǔ)也可以學(xué)習(xí)的?!?關(guān)于如何學(xué)習(xí)java,我剛才看到一篇很不錯(cuò)的文章,是一個(gè)農(nóng)民工介紹自己如何自學(xué)java,并找到j(luò)ava的工作,里面介紹了他的學(xué)習(xí)方法和學(xué)習(xí)過(guò)程,希望對(duì)你有幫助。
我是一名地地道道的農(nóng)民工,生活在經(jīng)濟(jì)落后的農(nóng)村,有一個(gè)哥哥和一個(gè)弟弟,父母都是地道的農(nóng)民,日出而作,日落而息,我從小到大學(xué)習(xí)一直很好,從小學(xué)到高一都,成績(jī)?cè)谌?jí)一直名列前茅,這樣我也順利了考上省的重點(diǎn)高中,然而,每個(gè)學(xué)期開(kāi)學(xué)是家里最為難的時(shí)候,每次交學(xué)費(fèi)都讓父母發(fā)愁許久,家里為了給我籌錢(qián)讀書(shū),都借了不少錢(qián),才讓我讀上高中。我知道我讀到高中家里已經(jīng)欠了好多債,為了減輕家里的負(fù)擔(dān),我選擇了退學(xué)。
2009年我高一退學(xué),為了給家里還債,干過(guò)建筑工地的小工,搞過(guò)塑料制品加工,送水工等等。很工資都很低,一個(gè)月也就1000多,加上加班費(fèi)一個(gè)月能拿2000多一點(diǎn),我每個(gè)月都向家里寄回800-1000元,到了2011年末,一次偶然的機(jī)會(huì)我接觸了Java,聽(tīng)說(shuō)Java的前景挺不錯(cuò),工資相對(duì)于我一個(gè)農(nóng)民工來(lái)說(shuō)簡(jiǎn)直是天文數(shù)字,于是我在新華書(shū)店買(mǎi)了幾本Java的書(shū),盡管白天辛苦工作,晚上回來(lái)還是堅(jiān)持看書(shū),但有于基礎(chǔ)太差很多都很不明白,但還是堅(jiān)持看,一有看1-2個(gè)小時(shí)Java的書(shū),看著看著許多基礎(chǔ)都慢慢的學(xué)會(huì)了,但那些比較難的還是看不懂,后來(lái)還買(mǎi)了有些關(guān)于框架的書(shū),還是看不懂,這樣斷斷續(xù)續(xù)的持續(xù)了半年多,覺(jué)得自己Java的基礎(chǔ)都差不多懂了,但框架還是看不懂,還有最缺的項(xiàng)目經(jīng)驗(yàn),看了很多招聘Java程序員的簡(jiǎn)介都要項(xiàng)目經(jīng)驗(yàn),相對(duì)我一個(gè)農(nóng)民工來(lái)連框架都弄不明白,想找一份Java工作對(duì)我來(lái)說(shuō)簡(jiǎn)直是奢侈。
我只想學(xué)Java,并不敢想以后能從事Java的工作。 一次,在百度上看到一篇讓我很鼓舞的文章,是一個(gè)Java高手介紹在沒(méi)有基礎(chǔ)的朋友怎么自學(xué)入門(mén)Java,文章寫(xiě)的很好,包含了如何學(xué)習(xí),該怎么學(xué)習(xí),他提到一個(gè)方法就是看視頻,因?yàn)榭磿?shū)實(shí)在太枯燥和費(fèi)解的,不少是我們也看不懂,這點(diǎn)我真的很認(rèn)同,我自己看書(shū)都看了很久才學(xué)會(huì)基礎(chǔ)。
曾經(jīng)有想過(guò)參加培訓(xùn),但是上萬(wàn)元的培訓(xùn)費(fèi)讓我望而卻步,我工資這么低,每個(gè)月還有向家里匯錢(qián),加上城市消費(fèi)比較高,雖然每個(gè)月只有幾百剩下,但是相對(duì)于上萬(wàn)萬(wàn)學(xué)費(fèi)和四個(gè)月的吃住費(fèi)用逼我連想不敢想。 于是我決定看視頻,我就去搜索Java的視頻,雖然我零星的找到一些Java的視頻,但是都不系統(tǒng)。
最重要連項(xiàng)目都沒(méi)有。后來(lái)我找到一份很好的視頻,是IT學(xué)習(xí)聯(lián)盟這個(gè)網(wǎng)站一套視頻叫<>,網(wǎng)址:/portal.php?mod=view&aid=5。
的教程還不錯(cuò),很完整。還贈(zèng)送11個(gè)頂級(jí)企業(yè)項(xiàng)目。
價(jià)格很合理,于是我買(mǎi)下來(lái)。 于是開(kāi)始了我的自學(xué)Java的路,收到光盤(pán)后,我就開(kāi)始學(xué)習(xí),剛開(kāi)始學(xué)習(xí)還不錯(cuò),是從零基礎(chǔ)教起,老師幽默風(fēng)趣而又輕松的課堂教課,使我發(fā)現(xiàn)原來(lái)學(xué)習(xí)JAVA并不是一件很難的事情。
因?yàn)槲冶緛?lái)基礎(chǔ)還不錯(cuò),前面的基礎(chǔ)看一篇我就過(guò)去了,到了框架,我覺(jué)不又不是很難,可能老師太牛了,他能把復(fù)雜的問(wèn)題講的比較通俗易懂,有些難點(diǎn)的地方我還是連續(xù)看了五六次,把他弄懂。每天下午6點(diǎn)下班后,吃了飯,馬上跑回家。
看視頻,買(mǎi)了幾本筆記本。當(dāng)時(shí),為了編程還花幾百元了臺(tái)二手的臺(tái)式電腦,配置一般,但編程是足夠的。
一邊看視頻,一邊記筆記,把重點(diǎn)都記下來(lái),還一邊跟著老師敲代碼,為了能盡早學(xué)會(huì)Java。每天都堅(jiān)持學(xué)5-6個(gè)小時(shí)。
經(jīng)常學(xué)到晚上一點(diǎn)多才睡覺(jué)。星期六,日不用上班,每天7點(diǎn)多起床,學(xué)到晚上11,12點(diǎn)。
那段時(shí)間特別辛苦,特別累。在學(xué)習(xí)Java的三個(gè)多月里,除了吃飯睡覺(jué)工作,剩余的時(shí)間都在學(xué)習(xí),因?yàn)槲抑雷约旱挠?jì)算機(jī)基礎(chǔ)不是很好,也沒(méi)有學(xué)過(guò)什么計(jì)算機(jī),只是學(xué)了些Java基礎(chǔ),相對(duì)于那些科班的人來(lái)說(shuō)我要比他們付出更多的努力。
我只能咬緊牙關(guān),堅(jiān)持下去,我不能放棄,我要完成我的夢(mèng)想,我要讓我的家人過(guò)上好日子。終于三個(gè)多月后我把Java教程里的內(nèi)容和項(xiàng)目都學(xué)完了,在學(xué)項(xiàng)目的過(guò)程中我發(fā)現(xiàn)項(xiàng)目特別重要,他能把你學(xué)過(guò)的知識(shí)全部聯(lián)系起來(lái),能更好的理解你所學(xué)的知識(shí)。
還有學(xué)習(xí)過(guò)程中,動(dòng)手很重要,要經(jīng)常跟著老師動(dòng)手敲,動(dòng)手吧,跟著做,一行一行的跟著敲,再試著加一些自己的功能,按照自己的思路敲一些代碼,收獲遠(yuǎn)比干聽(tīng)大的多。 如果遇到暫時(shí)對(duì)于一些思路不能理解的,動(dòng)手寫(xiě),先寫(xiě)代碼,慢慢你就會(huì)懂了。
這套視頻還贈(zèng)送了11個(gè)頂級(jí)企業(yè)項(xiàng)目,對(duì)于我沒(méi)有任何經(jīng)驗(yàn)的人來(lái)說(shuō),這個(gè)太重要了,還有在學(xué)習(xí)項(xiàng)目是提升能力最快的方法。項(xiàng)目能把所有的知識(shí)點(diǎn)全都連到一起了,不再是分散的,而是形成一個(gè)整體了。
那種感覺(jué)是僅僅深入鉆研知識(shí)點(diǎn)而不寫(xiě)真實(shí)項(xiàng)目的人所不能體會(huì)的。一個(gè)項(xiàng)。
試試這個(gè)怎么樣 import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; public class Test extends JFrame implements ActionListener {private JMenuBar menuBar; private JMenu menuFile; private JMenu menuHelp; private JLabel label; private JButton button; private JMenuItem menuClose; private JMenuItem menuAbout; private static final long serialVersionUID = 1L; public Test() { init(); setLayout(null); add(menuBar); add(label); add(button); setVisible(true); setLocation(900,100); setSize(250,500); setResizable(false); } private void init() { menuBar=new JMenuBar(); menuBar.setBounds(0,0,250,30); menuFile=new JMenu("文件"); menuHelp=new JMenu("幫助"); menuBar.add(menuFile); menuBar.add(menuHelp); label=new JLabel("單擊幫助菜單或按鈕,查看信息。
"); label.setBounds(10,350,250,30); button=new JButton("關(guān)于"); button.setBounds(50,250,70,30); menuClose=new JMenuItem("關(guān)閉"); menuFile.add(menuClose); menuAbout=new JMenuItem("關(guān)于"); menuHelp.add(menuAbout); button.addActionListener(this); menuAbout.addActionListener(this); menuClose.addActionListener(this); } public static void main(String[] args) { new Test(); } public void actionPerformed(ActionEvent e) { if(e.getSource()==button||e.getSource()==menuAbout) {new Test2();} if(e.getSource()==menuClose) {this.dispose(); } } } class Test2 extends JDialog { private JLabel label; private static final long serialVersionUID = 1L; public Test2() {init(); add(label); setSize(300,200); setLocation(500,200); setVisible(true); } private void init() { label=new JLabel(); label.setText("我愛(ài)java!"); } }。
java初學(xué)者到精通,要掌握的知識(shí)點(diǎn)可以參考如下內(nèi)容:一、學(xué)習(xí)DreamWaveMX中文版的網(wǎng)頁(yè)設(shè)計(jì)技術(shù)。
HTML網(wǎng)頁(yè)設(shè)計(jì),這是最基本的。學(xué)習(xí)XML的一些基本知識(shí)。
初步掌握一些Jscript..的應(yīng)用。二、學(xué)習(xí)Java語(yǔ)言。
學(xué)習(xí)Java語(yǔ)言的第一步是安裝好JDK,JDK的環(huán)境變量的配置,至于如何配置JDK的環(huán)境變量,網(wǎng)上關(guān)于這樣的文章很多,你可以搜索一下,這里就不多說(shuō)。配置好環(huán)境變量以后,寫(xiě)一個(gè)Hello World的小程序測(cè)試一下JDK是否已安裝成功。
環(huán)境變量配置成功以后就可以著手學(xué)習(xí)Java的語(yǔ)法了,先找一本系統(tǒng)的java程序設(shè)計(jì)的書(shū),開(kāi)始最好不要用eclipse等之類(lèi)的高度集成的IDE環(huán)境,用文本編輯器配合JDK就行了,這樣助你理解下列幾個(gè)基礎(chǔ)概念:path,class_path,package ,并熟悉基本命令:JDK的最重要命令行工具: java: 啟動(dòng)JVM執(zhí)行class javac: Java編譯器 jar: Java打包工具 javadoc: Java文檔生成器 這些命令行必須要非常熟悉。對(duì)于這些命令的學(xué)習(xí),JDK Documentation上有詳細(xì)的文檔。
下載和你的JDK版本一致的API幫助。三、是學(xué)習(xí)Java的面向?qū)ο蟮木幊陶Z(yǔ)言的特性的地方,比如繼承,構(gòu)造器,抽象類(lèi),接口,方法的多態(tài),重載,覆蓋,Java的異常處理機(jī)制。
可以參照《Thinking in java》這本書(shū),對(duì)面向?qū)ο蟮闹v解很透徹。四、就是開(kāi)始熟悉Java的類(lèi)庫(kù),Java的基礎(chǔ)類(lèi)庫(kù)非常多,但是真正對(duì)于我們來(lái)說(shuō)最核心的只有4個(gè),分別是 java.lang.*; java.io.*; java.util.*; java.sql.*; 要知道包有哪些方面的類(lèi)構(gòu)成的,這些類(lèi)的用途是什么,最核心的幾個(gè)類(lèi)分別是完成什么功能的。
五、JDK Documentation。通過(guò)上面的學(xué)習(xí),如果學(xué)的比較扎實(shí)的話(huà),就打好了Java的基礎(chǔ)了,接著要學(xué)習(xí)Documentation里面除了上面4個(gè)包之外的其他一些比較有用處的類(lèi)。
相信進(jìn)展到這一步,Java的自學(xué)能力已經(jīng)被培養(yǎng)出來(lái)了,可以到了直接學(xué)習(xí)Documentation的水平了。除了要做GUI編程之外,JDK里面其他會(huì)有用處的包是這些: java.text.*; java.NET.*; javax.naming.*; 這些包里面真正用的比較多的類(lèi)其實(shí)很少,只有幾個(gè),所以不需要花很多時(shí)間。
六、Java Web 編程學(xué)習(xí)java web 編程之前要先下載安裝應(yīng)用服務(wù)器(App Server),比較常用的應(yīng)用服務(wù)器(App Server)有Tomcat 、BEA Weblogic、IBM Webshpere、Jboss 。以Tomcat為例,下載安裝Tomcat以后設(shè)置兩個(gè)環(huán)境變量: JAVA_HOME=C:/j2sdk1.4.2 CATALINA_HOME=D:/tomcat4 (你的Tomcat安裝目錄)Java的Web應(yīng)用至少需要安裝JDK和一個(gè)web容器(例如Tomcat),以及一個(gè)多用戶(hù)數(shù)據(jù)庫(kù),Web應(yīng)用至少分為三層: Browser層:瀏覽器顯示用戶(hù)頁(yè)面 Web層:運(yùn)行Servlet/JSP DB層:后端數(shù)據(jù)庫(kù),向Java程序提供數(shù)據(jù)訪問(wèn)服務(wù)七、學(xué)習(xí)J2EE的基本程序設(shè)計(jì)。
(1)首先學(xué)習(xí)JSP動(dòng)態(tài)網(wǎng)頁(yè)設(shè)計(jì)。掌握J(rèn)SP、JAVABEANS、JDBC、JSTL等技術(shù),最好以TOMCAT作為實(shí)驗(yàn)環(huán)境。
因?yàn)樗绊懥Υ螅m然性能不怎么的,很多JSP技術(shù)討論都是以它為背景。(2)學(xué)習(xí)EJB的程序設(shè)計(jì)思想。
在學(xué)習(xí)EJB之前要學(xué)習(xí)對(duì)象序列化和RMI,RMI是EJB的基礎(chǔ)。接著學(xué)習(xí)JMS和EJB,對(duì)于EJB來(lái)說(shuō),最關(guān)鍵是要理解EJB是如何通過(guò)RMI來(lái)實(shí)現(xiàn)對(duì)遠(yuǎn)端對(duì)象的調(diào)用的,以及在什么情況下要用到EJB。
八、學(xué)習(xí)“設(shè)計(jì)模式”??梢詤⒄铡秊ava設(shè)計(jì)模式》,這本書(shū)學(xué)習(xí)。
九、學(xué)習(xí)一些經(jīng)典框架的應(yīng)用:(1)struts1.1、webwork2(2)hibernate(3)Ibatis/DAO框架(4)spring十、分析一些經(jīng)典的應(yīng)用系統(tǒng):Jive、XPetstore、JPetstore等。
1. PATH環(huán)境變量。
作用是指定命令搜索路徑,在命令行下面執(zhí)行命令如javac編譯java程序時(shí),它會(huì)到PATH變量所指定的路徑中查找看是否能找到相應(yīng)的命令程序。我們需要把jdk安裝目錄下的bin目錄增加到現(xiàn)有的PATH變量中,bin目錄中包含經(jīng)常要用到的可執(zhí)行文件如javac/java/javadoc等待,設(shè)置好PATH變量后,就可以在任何目錄下執(zhí)行javac/java等工具了。
CLASSPATH環(huán)境變量。作用是指定類(lèi)搜索路徑,要使用已經(jīng)編寫(xiě)好的類(lèi),前提當(dāng)然是能夠找到它們了,JVM就是通過(guò)CLASSPATH來(lái)尋找類(lèi)的。
我們需要把jdk安裝目錄下的lib子目錄中的dt.jar和tools.jar設(shè)置到CLASSPATH中,當(dāng)然,當(dāng)前目錄“.”也必須加入到該變量中。2、public class Test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int sum=0;//設(shè)定一個(gè)變量,求和的值 for(int i=1;i<=100;i++){ sum=sum+i; } System.out.println("1+2+3+。
.+100的和:"+sum); }}3、import java.util.Arrays;public class Test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int str[]={1,3,9,5,4,8,2}; Arrays.sort(str); System.out.println("數(shù)組中最大數(shù):"+str[str.length-1]); }}4、public class Test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub String str="abc.java.txt";//定義一個(gè)變量設(shè)置文件名稱(chēng) System.out.println(str.substring(str.lastIndexOf(".")+1)); }}5、public class Student {private String name;//姓名private int age;//年齡private double score;//成績(jī)public Student(String name,int age,double score){ this.name=name; this.age=age; this.score=score;}public String getName() { return name;}public void setName(String name) { this.name = name;}public int getAge() { return age;}public void setAge(int age) { this.age = age;}public double getScore() { return score;}public void setScore(double score) { this.score = score;}}6、我就不貼代碼了。你自己創(chuàng)建借個(gè)對(duì)象。
然后把五個(gè)對(duì)象的成績(jī)放在一個(gè)數(shù)組中,直接調(diào)用Arrays.sort(數(shù)組名) 這個(gè)方法排序輸出就ok了。7、方法:可以使用文件流來(lái)讀寫(xiě)。
樓主可根據(jù)文件的類(lèi)型選擇是字節(jié)流還是字符流來(lái)實(shí)現(xiàn)。如果樓主還需要,可以把代碼寫(xiě)出來(lái)8、TCP(Transmission Control Protocol,傳輸控制協(xié)議)是基于連接的協(xié)議,也就是說(shuō),在正式收發(fā)數(shù)據(jù)前,必須和對(duì)方建立可靠的連接。
一個(gè)TCP連接必須要經(jīng)過(guò)三次“對(duì)話(huà)”才能建立起來(lái),其中的過(guò)程非常復(fù)雜,我們這里只做簡(jiǎn)單、形象的介紹,你只要做到能夠理解這個(gè)過(guò)程即可。我們來(lái)看看這三次對(duì)話(huà)的簡(jiǎn)單過(guò)程:主機(jī)A向主機(jī)B發(fā)出連接請(qǐng)求數(shù)據(jù)包:“我想給你發(fā)數(shù)據(jù),可以嗎?”,這是第一次對(duì)話(huà);主機(jī)B向主機(jī)A發(fā)送同意連接和要求同步(同步就是兩臺(tái)主機(jī)一個(gè)在發(fā)送,一個(gè)在接收,協(xié)調(diào)工作)的數(shù)據(jù)包:“可以,你什么時(shí)候發(fā)?”,這是第二次對(duì)話(huà);主機(jī)A再發(fā)出一個(gè)數(shù)據(jù)包確認(rèn)主機(jī)B的要求同步:“我現(xiàn)在就發(fā),你接著吧!”,這是第三次對(duì)話(huà)。
三次“對(duì)話(huà)”的目的是使數(shù)據(jù)包的發(fā)送和接收同步,經(jīng)過(guò)三次“對(duì)話(huà)”之后,主機(jī)A才向主機(jī)B正式發(fā)送數(shù)據(jù)。TCP協(xié)議能為應(yīng)用程序提供可靠的通信連接,使一臺(tái)計(jì)算機(jī)發(fā)出的字節(jié)流無(wú)差錯(cuò)地發(fā)往網(wǎng)絡(luò)上的其他計(jì)算機(jī),對(duì)可靠性要求高的數(shù)據(jù)通信系統(tǒng)往往使用TCP協(xié)議傳輸數(shù)據(jù)。
面向非連接的UDP協(xié)議“面向非連接”就是在正式通信前不必與對(duì)方先建立連接,不管對(duì)方狀態(tài)就直接發(fā)送。這與現(xiàn)在風(fēng)行的手機(jī)短信非常相似:你在發(fā)短信的時(shí)候,只需要輸入對(duì)方手機(jī)號(hào)就OK了。
UDP(User Data Protocol,用戶(hù)數(shù)據(jù)報(bào)協(xié)議)是與TCP相對(duì)應(yīng)的協(xié)議。它是面向非連接的協(xié)議,它不與對(duì)方建立連接,而是直接就把數(shù)據(jù)包發(fā)送過(guò)去!UDP適用于一次只傳送少量數(shù)據(jù)、對(duì)可靠性要求不高的應(yīng)用環(huán)境。
比如,我們經(jīng)常使用“ping”命令來(lái)測(cè)試兩臺(tái)主機(jī)之間TCP/IP通信是否正常,其實(shí)“ping”命令的原理就是向?qū)Ψ街鳈C(jī)發(fā)送UDP數(shù)據(jù)包,然后對(duì)方主機(jī)確認(rèn)收到數(shù)據(jù)包,如果數(shù)據(jù)包是否到達(dá)的消息及時(shí)反饋回來(lái),那么網(wǎng)絡(luò)就是通的。例如,在默認(rèn)狀態(tài)下,一次“ping”操作發(fā)送4個(gè)數(shù)據(jù)包(如圖2所示)。
大家可以看到,發(fā)送的數(shù)據(jù)包數(shù)量是4包,收到的也是4包(因?yàn)閷?duì)方主機(jī)收到后會(huì)發(fā)回一個(gè)確認(rèn)收到的數(shù)據(jù)包)。這充分說(shuō)明了UDP協(xié)議是面向非連接的協(xié)議,沒(méi)有建立連接的過(guò)程。
正因?yàn)閁DP協(xié)議沒(méi)有連接的過(guò)程,所以它的通信效果高;但也正因?yàn)槿绱?,它的可靠性不如TCP協(xié)議高。QQ就使用UDP發(fā)消息,因此有時(shí)會(huì)出現(xiàn)收不到消息的情況。
TCP協(xié)議和UDP協(xié)議各有所長(zhǎng)、各有所短,適用于不同要求的通信環(huán)境。9、
用戶(hù)名: | |
密碼: |