Java從入門到精通可以到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ǔ)開始教起,零基礎(chǔ)到就業(yè)水平。
就算沒基礎(chǔ)也可以學(xué)習(xí)的。…………………………………………………………………… 關(guān)于如何學(xué)習(xí)java,我剛才看到一篇很不錯(cuò)的文章,是一個(gè)農(nóng)民工介紹自己如何自學(xué)java,并找到j(luò)ava的工作,里面介紹了他的學(xué)習(xí)方法和學(xué)習(xí)過程,希望對(duì)你有幫助。
我是一名地地道道的農(nóng)民工,生活在經(jīng)濟(jì)落后的農(nóng)村,有一個(gè)哥哥和一個(gè)弟弟,父母都是地道的農(nóng)民,日出而作,日落而息,我從小到大學(xué)習(xí)一直很好,從小學(xué)到高一都,成績(jī)?cè)谌?jí)一直名列前茅,這樣我也順利了考上省的重點(diǎn)高中,然而,每個(gè)學(xué)期開學(xué)是家里最為難的時(shí)候,每次交學(xué)費(fèi)都讓父母發(fā)愁許久,家里為了給我籌錢讀書,都借了不少錢,才讓我讀上高中。我知道我讀到高中家里已經(jīng)欠了好多債,為了減輕家里的負(fù)擔(dān),我選擇了退學(xué)。
2009年我高一退學(xué),為了給家里還債,干過建筑工地的小工,搞過塑料制品加工,送水工等等。很工資都很低,一個(gè)月也就1000多,加上加班費(fèi)一個(gè)月能拿2000多一點(diǎn),我每個(gè)月都向家里寄回800-1000元,到了2011年末,一次偶然的機(jī)會(huì)我接觸了Java,聽說Java的前景挺不錯(cuò),工資相對(duì)于我一個(gè)農(nóng)民工來說簡(jiǎn)直是天文數(shù)字,于是我在新華書店買了幾本Java的書,盡管白天辛苦工作,晚上回來還是堅(jiān)持看書,但有于基礎(chǔ)太差很多都很不明白,但還是堅(jiān)持看,一有看1-2個(gè)小時(shí)Java的書,看著看著許多基礎(chǔ)都慢慢的學(xué)會(huì)了,但那些比較難的還是看不懂,后來還買了有些關(guān)于框架的書,還是看不懂,這樣斷斷續(xù)續(xù)的持續(xù)了半年多,覺得自己Java的基礎(chǔ)都差不多懂了,但框架還是看不懂,還有最缺的項(xiàng)目經(jīng)驗(yàn),看了很多招聘Java程序員的簡(jiǎn)介都要項(xiàng)目經(jīng)驗(yàn),相對(duì)我一個(gè)農(nóng)民工來連框架都弄不明白,想找一份Java工作對(duì)我來說簡(jiǎn)直是奢侈。
我只想學(xué)Java,并不敢想以后能從事Java的工作。 一次,在百度上看到一篇讓我很鼓舞的文章,是一個(gè)Java高手介紹在沒有基礎(chǔ)的朋友怎么自學(xué)入門Java,文章寫的很好,包含了如何學(xué)習(xí),該怎么學(xué)習(xí),他提到一個(gè)方法就是看視頻,因?yàn)榭磿鴮?shí)在太枯燥和費(fèi)解的,不少是我們也看不懂,這點(diǎn)我真的很認(rèn)同,我自己看書都看了很久才學(xué)會(huì)基礎(chǔ)。
曾經(jīng)有想過參加培訓(xùn),但是上萬(wàn)元的培訓(xùn)費(fèi)讓我望而卻步,我工資這么低,每個(gè)月還有向家里匯錢,加上城市消費(fèi)比較高,雖然每個(gè)月只有幾百剩下,但是相對(duì)于上萬(wàn)萬(wàn)學(xué)費(fèi)和四個(gè)月的吃住費(fèi)用逼我連想不敢想。 于是我決定看視頻,我就去搜索Java的視頻,雖然我零星的找到一些Java的視頻,但是都不系統(tǒng)。
最重要連項(xiàng)目都沒有。后來我找到一份很好的視頻,是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à)格很合理,于是我買下來。 于是開始了我的自學(xué)Java的路,收到光盤后,我就開始學(xué)習(xí),剛開始學(xué)習(xí)還不錯(cuò),是從零基礎(chǔ)教起,老師幽默風(fēng)趣而又輕松的課堂教課,使我發(fā)現(xiàn)原來學(xué)習(xí)JAVA并不是一件很難的事情。
因?yàn)槲冶緛砘A(chǔ)還不錯(cuò),前面的基礎(chǔ)看一篇我就過去了,到了框架,我覺不又不是很難,可能老師太牛了,他能把復(fù)雜的問題講的比較通俗易懂,有些難點(diǎn)的地方我還是連續(xù)看了五六次,把他弄懂。每天下午6點(diǎn)下班后,吃了飯,馬上跑回家。
看視頻,買了幾本筆記本。當(dāng)時(shí),為了編程還花幾百元了臺(tái)二手的臺(tái)式電腦,配置一般,但編程是足夠的。
一邊看視頻,一邊記筆記,把重點(diǎn)都記下來,還一邊跟著老師敲代碼,為了能盡早學(xué)會(huì)Java。每天都堅(jiān)持學(xué)5-6個(gè)小時(shí)。
經(jīng)常學(xué)到晚上一點(diǎn)多才睡覺。星期六,日不用上班,每天7點(diǎn)多起床,學(xué)到晚上11,12點(diǎn)。
那段時(shí)間特別辛苦,特別累。在學(xué)習(xí)Java的三個(gè)多月里,除了吃飯睡覺工作,剩余的時(shí)間都在學(xué)習(xí),因?yàn)槲抑雷约旱挠?jì)算機(jī)基礎(chǔ)不是很好,也沒有學(xué)過什么計(jì)算機(jī),只是學(xué)了些Java基礎(chǔ),相對(duì)于那些科班的人來說我要比他們付出更多的努力。
我只能咬緊牙關(guān),堅(jiān)持下去,我不能放棄,我要完成我的夢(mèng)想,我要讓我的家人過上好日子。終于三個(gè)多月后我把Java教程里的內(nèi)容和項(xiàng)目都學(xué)完了,在學(xué)項(xiàng)目的過程中我發(fā)現(xiàn)項(xiàng)目特別重要,他能把你學(xué)過的知識(shí)全部聯(lián)系起來,能更好的理解你所學(xué)的知識(shí)。
還有學(xué)習(xí)過程中,動(dòng)手很重要,要經(jīng)常跟著老師動(dòng)手敲,動(dòng)手吧,跟著做,一行一行的跟著敲,再試著加一些自己的功能,按照自己的思路敲一些代碼,收獲遠(yuǎn)比干聽大的多。 如果遇到暫時(shí)對(duì)于一些思路不能理解的,動(dòng)手寫,先寫代碼,慢慢你就會(huì)懂了。
這套視頻還贈(zèng)送了11個(gè)頂級(jí)企業(yè)項(xiàng)目,對(duì)于我沒有任何經(jīng)驗(yàn)的人來說,這個(gè)太重要了,還有在學(xué)習(xí)項(xiàng)目是提升能力最快的方法。項(xiàng)目能把所有的知識(shí)點(diǎn)全都連到一起了,不再是分散的,而是形成一個(gè)整體了。
那種感覺是僅僅深入鉆研知識(shí)點(diǎn)而不寫真實(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("我愛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)于這樣的文章很多,你可以搜索一下,這里就不多說。配置好環(huán)境變量以后,寫一個(gè)Hello World的小程序測(cè)試一下JDK是否已安裝成功。
環(huán)境變量配置成功以后就可以著手學(xué)習(xí)Java的語(yǔ)法了,先找一本系統(tǒng)的java程序設(shè)計(jì)的書,開始最好不要用eclipse等之類的高度集成的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)造器,抽象類,接口,方法的多態(tài),重載,覆蓋,Java的異常處理機(jī)制。
可以參照《Thinking in java》這本書,對(duì)面向?qū)ο蟮闹v解很透徹。四、就是開始熟悉Java的類庫(kù),Java的基礎(chǔ)類庫(kù)非常多,但是真正對(duì)于我們來說最核心的只有4個(gè),分別是 java.lang.*; java.io.*; java.util.*; java.sql.*; 要知道包有哪些方面的類構(gòu)成的,這些類的用途是什么,最核心的幾個(gè)類分別是完成什么功能的。
五、JDK Documentation。通過上面的學(xué)習(xí),如果學(xué)的比較扎實(shí)的話,就打好了Java的基礎(chǔ)了,接著要學(xué)習(xí)Documentation里面除了上面4個(gè)包之外的其他一些比較有用處的類。
相信進(jìn)展到這一步,Java的自學(xué)能力已經(jīng)被培養(yǎng)出來了,可以到了直接學(xué)習(xí)Documentation的水平了。除了要做GUI編程之外,JDK里面其他會(huì)有用處的包是這些: java.text.*; java.NET.*; javax.naming.*; 這些包里面真正用的比較多的類其實(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è)多用戶數(shù)據(jù)庫(kù),Web應(yīng)用至少分為三層: Browser層:瀏覽器顯示用戶頁(yè)面 Web層:運(yùn)行Servlet/JSP DB層:后端數(shù)據(jù)庫(kù),向Java程序提供數(shù)據(jù)訪問服務(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來說,最關(guān)鍵是要理解EJB是如何通過RMI來實(shí)現(xiàn)對(duì)遠(yuǎn)端對(duì)象的調(diào)用的,以及在什么情況下要用到EJB。
八、學(xué)習(xí)“設(shè)計(jì)模式”。可以參照《java設(shè)計(jì)模式》,這本書學(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)境變量。作用是指定類搜索路徑,要使用已經(jīng)編寫好的類,前提當(dāng)然是能夠找到它們了,JVM就是通過CLASSPATH來尋找類的。
我們需要把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è)置文件名稱 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、方法:可以使用文件流來讀寫。
樓主可根據(jù)文件的類型選擇是字節(jié)流還是字符流來實(shí)現(xiàn)。如果樓主還需要,可以把代碼寫出來8、TCP(Transmission Control Protocol,傳輸控制協(xié)議)是基于連接的協(xié)議,也就是說,在正式收發(fā)數(shù)據(jù)前,必須和對(duì)方建立可靠的連接。
一個(gè)TCP連接必須要經(jīng)過三次“對(duì)話”才能建立起來,其中的過程非常復(fù)雜,我們這里只做簡(jiǎn)單、形象的介紹,你只要做到能夠理解這個(gè)過程即可。我們來看看這三次對(duì)話的簡(jiǎn)單過程:主機(jī)A向主機(jī)B發(fā)出連接請(qǐng)求數(shù)據(jù)包:“我想給你發(fā)數(shù)據(jù),可以嗎?”,這是第一次對(duì)話;主機(jī)B向主機(jī)A發(fā)送同意連接和要求同步(同步就是兩臺(tái)主機(jī)一個(gè)在發(fā)送,一個(gè)在接收,協(xié)調(diào)工作)的數(shù)據(jù)包:“可以,你什么時(shí)候發(fā)?”,這是第二次對(duì)話;主機(jī)A再發(fā)出一個(gè)數(shù)據(jù)包確認(rèn)主機(jī)B的要求同步:“我現(xiàn)在就發(fā),你接著吧!”,這是第三次對(duì)話。
三次“對(duì)話”的目的是使數(shù)據(jù)包的發(fā)送和接收同步,經(jīng)過三次“對(duì)話”之后,主機(jī)A才向主機(jī)B正式發(fā)送數(shù)據(jù)。TCP協(xié)議能為應(yīng)用程序提供可靠的通信連接,使一臺(tái)計(jì)算機(jī)發(fā)出的字節(jié)流無差錯(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,用戶數(shù)據(jù)報(bào)協(xié)議)是與TCP相對(duì)應(yīng)的協(xié)議。它是面向非連接的協(xié)議,它不與對(duì)方建立連接,而是直接就把數(shù)據(jù)包發(fā)送過去!UDP適用于一次只傳送少量數(shù)據(jù)、對(duì)可靠性要求不高的應(yīng)用環(huán)境。
比如,我們經(jīng)常使用“ping”命令來測(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í)反饋回來,那么網(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ù)包)。這充分說明了UDP協(xié)議是面向非連接的協(xié)議,沒有建立連接的過程。
正因?yàn)閁DP協(xié)議沒有連接的過程,所以它的通信效果高;但也正因?yàn)槿绱耍目煽啃圆蝗鏣CP協(xié)議高。QQ就使用UDP發(fā)消息,因此有時(shí)會(huì)出現(xiàn)收不到消息的情況。
TCP協(xié)議和UDP協(xié)議各有所長(zhǎng)、各有所短,適用于不同要求的通信環(huán)境。9、
。
第2章 一切都是對(duì)象2.1 用句柄操縱對(duì)象2.2 必須創(chuàng)建所有對(duì)象2.2.1 保存在什么地方2.2.2 特殊情況:主類型2.2.3 Java中的數(shù)組2.3 絕對(duì)不要清除對(duì)象2.3.1 作用域2.3.2 對(duì)象的作用域2.4 新建數(shù)據(jù)類型:類2.4.1 字段和方法2.5 方法、自變量和返回值2.5.1 自變量列表2.6 構(gòu)建Java程序2.6.1 名字的可見性2.6.2 使用其他組件2.6.3 static關(guān)鍵字2.7 我們的第一個(gè)Java程序2.8 注釋和嵌入文檔2.8.1 注釋文檔2.8.2 具體語(yǔ)法2.8.3 嵌入HTML2.8.4 @see:引用其他類2.8.5 類文檔標(biāo)記2.8.6 變量文檔標(biāo)記2.8.7 方法文檔標(biāo)記2.8.8 文檔示例2.9 編碼樣式2.10 總結(jié)2.11 練習(xí) 第3章 控制程序流程3.1 使用Java運(yùn)算符3.1.1 優(yōu)先級(jí)3.1.2 賦值3.1.3 算術(shù)運(yùn)算符3.1.4 自動(dòng)遞增和遞減3.1.5 關(guān)系運(yùn)算符3.1.6 邏輯運(yùn)算符3.1.7 按位運(yùn)算符3.1.8 移位運(yùn)算符3.1.9 三元if-else運(yùn)算符3.1.10 逗號(hào)運(yùn)算符3.1.11 字串運(yùn)算符+3.1.12 運(yùn)算符常規(guī)操作規(guī)則3.1.13 造型運(yùn)算符3.1.14 Java沒有“sizeof”3.1.15 復(fù)習(xí)計(jì)算順序3.1.16 運(yùn)算符總結(jié)3.2 執(zhí)行控制3.2.1 真和假3.2.2 if-else3.2.3 反復(fù)3.2.4 do-while3.2.5 for3.2.6 中斷和繼續(xù)3.2.7 切換3.3 總結(jié)3.4 練習(xí) 第4章 初始化和清除4.1 由構(gòu)建器保證初始化4.2 方法過載4.2.1 區(qū)分過載方法4.2.2 主類型的過載4.2.3 返回值過載4.2.4 默認(rèn)構(gòu)建器4.2.5 this關(guān)鍵字4.3 清除:收尾和垃圾收集4.3.1 finalize()用途何在4.3.2 必須執(zhí)行清除4.4 成員初始化4.4.1 規(guī)定初始化4.4.2 構(gòu)建器初始化4.5 數(shù)組初始化4.5.1 多維數(shù)組4.6 總結(jié)4.7 練習(xí) 第5章 隱藏實(shí)施過程5.1 包:庫(kù)單元5.1.1 創(chuàng)建獨(dú)一無二的包名5.1.2 自定義工具庫(kù)5.1.3 利用導(dǎo)入改變行為5.1.4 包的停用5.2 Java訪問指示符5.2.1 “友好的”5.2.2 public:接口訪問5.2.3 private:不能接觸5.2.4 protected:“友好的一種”5.3 接口與實(shí)現(xiàn)5.4 類訪問5.5 總結(jié)5.6 練習(xí) 第6章 類再生6.1 合成的語(yǔ)法6.2 繼承的語(yǔ)法6.2.1 初始化基礎(chǔ)類6.3 合成與繼承的結(jié)合6.3.1 確保正確的清除6.3.2 名字的隱藏6.4 到底選擇合成還是繼承6.5 protected6.6 遞增開發(fā)6.7 上溯造型6.7.1 何謂“上溯造型”?6.8 final關(guān)鍵字6.8.1 final數(shù)據(jù)6.8.2 final方法6.8.3 final類6.8.4 final的注意事項(xiàng)6.9 初始化和類裝載6.9.1 繼承初始化6.10 總結(jié)6.11 練習(xí) 第7章 多形性7.1 上溯造型7.1.1 為什么要上溯造型7.2 深入理解7.2.1 方法調(diào)用的綁定7.2.2 產(chǎn)生正確的行為7.2.3 擴(kuò)展性7.3 覆蓋與過載7.4 抽象類和方法7.5 接口7.5.1 Java的“多重繼承”7.5.2 通過繼承擴(kuò)展接口7.5.3 常數(shù)分組7.5.4 初始化接口中的字段7.6 內(nèi)部類7.6.1 內(nèi)部類和上溯造型7.6.2 方法和作用域中的內(nèi)部類7.6.3 鏈接到外部類7.6.4 static內(nèi)部類7.6.5 引用外部類對(duì)象7.6.6 從內(nèi)部類繼承7.6.7 內(nèi)部類可以覆蓋嗎?7.6.8 內(nèi)部類標(biāo)識(shí)符7.6.9 為什么要用內(nèi)部類:控制框架7.7 構(gòu)建器和多形性7.7.1 構(gòu)建器的調(diào)用順序7.7.2 繼承和finalize()7.7.3 構(gòu)建器內(nèi)部的多形性方法的行為7.8 通過繼承進(jìn)行設(shè)計(jì)7.8.1 純繼承與擴(kuò)展7.8.2 下溯造型與運(yùn)行期類型標(biāo)識(shí)7.9 總結(jié)7.10 練習(xí) 第8章 對(duì)象的容納8.1 數(shù)組8.1.1 數(shù)組和第一類對(duì)象8.1.2 數(shù)組的返回8.2 集合8.2.1 缺點(diǎn):類型未知8.3 枚舉器(反復(fù)器)8.4 集合的類型8.4.1 Vector8.4.2 BitSet8.4.3 Stack8.4.4 Hashtable8.4.5 再論枚舉器8.5 排序8.6 通用集合庫(kù)8.7 新集合8.7.1 使用Collections8.7.2 使用Lists8.7.3 使用Sets8.7.4 使用Maps8.7.5 決定實(shí)施方案8.7.6 未支持的操作8.7.7 排序和搜索8.7.8 實(shí)用工具8.8 總結(jié)8.9 練習(xí) 第9章 違例差錯(cuò)控制9.1 基本違例9.1.1 違例自變量9.2 違例的捕獲9.2.1 try塊9.2.2 違例控制器9.2.3 違例規(guī)范9.2.4 捕獲所有違例9.2.5 重新“擲”出違例9.3 標(biāo)準(zhǔn)Java違例9.3.1 RuntimeException的特殊情況9.4 創(chuàng)建自己的違例9.5 違例的限制9.6 用finally清除9.6.1 用finally做什么9.6.2 缺點(diǎn):丟失的違例9.7 構(gòu)建器9.8 違例匹配9.8.1 違例準(zhǔn)則9.9 總結(jié)9.10 練習(xí) 第10章 Java IO系統(tǒng)10.1 輸入和輸出10.1.1 InputStream的類型10.1.2 OutputStream的類型10.2 增添屬性和有用的接口10.2.1 通過FilterInputStream從InputStream里讀入數(shù)據(jù)10.2.2 通過FilterOutputStream向OutputStream里寫入數(shù)據(jù)10.3 本身的缺陷:RandomAccessFile10.4 File類10.4.1 目錄列表器10.4.2 檢查與創(chuàng)建目錄10.5 IO流的典型應(yīng)用10.5.1 輸入流10.5.2 輸出流10.5.3 快捷文件處理10.5.4 從標(biāo)準(zhǔn)輸入中讀取數(shù)據(jù)10.5.5 管道數(shù)據(jù)流10.6 StreamTokenizer10.6.1 StringTokenizer10.7 Java 1.1的IO流10.7.1 數(shù)據(jù)的發(fā)起與接收10.7.2 修改數(shù)據(jù)流的行為10.7.3 未改變的類10.7.4 一個(gè)例子10.7.5 重定向標(biāo)準(zhǔn)IO10.8 壓縮10.8.1 用GZIP進(jìn)行簡(jiǎn)單壓縮10.8.2 用Zip進(jìn)行多文件保存10.8.3 Java歸檔(jar)實(shí)用程序10.9 對(duì)象串聯(lián)10.9.1 尋找類10.9.2 序列化的控制10.9.3 利用“持久性”10.10 總結(jié)10.11 練習(xí) 第11章 運(yùn)行期類型鑒定11.1 對(duì)RTTI的需要11.1.1 Class對(duì)象11.1.2 造型前的檢查11.2 RTTI語(yǔ)法11.3 反射:運(yùn)行期類信息11.3.1 一個(gè)類方法提取器11.4 總結(jié)11.5 練習(xí) 第12章 傳遞和返回對(duì)象12.1 傳遞句柄12.1.1 別名問題12.2 制作本地副本12.2.1 按值傳遞12.2.2 克隆對(duì)象12.2.3 使類具有克隆能力12.2.4 成功的克隆12.2.5 Object.clone()的效果12.2.6 克隆合成對(duì)象12.2.7 用Vector進(jìn)行深層復(fù)制12.2.8 通過序。
初學(xué)者可以看《JAVA學(xué)習(xí)筆記》(清華大學(xué)出版社)或者《Head First Java》(中國(guó)電力出版社),這兩本書比較適合,有了一定基礎(chǔ)之后可以考慮《JAVA核心技術(shù)》,然后可以多看一些設(shè)計(jì)模式(《Head First 設(shè)計(jì)模式》)和數(shù)據(jù)結(jié)構(gòu)的書,最重要的是自己多敲代碼,這樣才能有實(shí)質(zhì)性的進(jìn)步。順便說一下,Head First系列的書都很好,強(qiáng)烈推薦。另外如果想做JAVA方面的開發(fā)的話,SSH(Hibernate,Struts,Spring)也是必備的知識(shí),還有Servlet和JSP,也需要掌握。
至于視頻教程,也是推薦尚學(xué)堂的,馬士兵的視頻教程講的不錯(cuò),還有傳智播客的視頻也還可以。你可以在網(wǎng)上搜索一下,有下載的。
至于java編程思想,那是JAVA編程界的“圣經(jīng)”,新手就不要看了。
對(duì)于Java開發(fā)學(xué)習(xí)者來說,基礎(chǔ)掌握的知識(shí)點(diǎn)有以下幾種:
1. Java面向?qū)ο蟮膬?yōu)點(diǎn):易維護(hù)、易復(fù)用、易擴(kuò)展,由于面向?qū)ο笥蟹庋b、繼承、多態(tài)性的特性,可以設(shè)計(jì)出低耦合的系統(tǒng),使系統(tǒng)更加靈活、更加易于維護(hù)。
2. Java虛擬機(jī)的概念,任何一種可以運(yùn)行Java字節(jié)碼的軟件均可看成是Java的虛擬機(jī)(JVM)
3. JDK顧名思義它是給開發(fā)者提供的開發(fā)工具箱,是給程序開發(fā)者用的。它除了包括完整的JRE(Java Runtime Environment),Java運(yùn)行環(huán)境,還包含了其他供開發(fā)者使用的工具包。
4. JRE的概念,普通用戶而只需要安裝JRE(Java Runtime Environment)來運(yùn)行Java程序。而程序開發(fā)者必須安裝JDK來編譯、調(diào)試程序。
5. Java中覆蓋(Override)是指子類對(duì)父類方法的一種重寫,子類只能拋出比父類更少的異常,且訪問權(quán)限不能比父類的小。被覆蓋的方法不能是 private 的,否則只是在子類中重新定義了一個(gè)方法。
Java中重載(Overload)表示同一個(gè)類中可以有多個(gè)名稱相同的方法,但這些方法的參數(shù)列表各不相同。
1、對(duì)象的初始化(1) 非靜態(tài)對(duì)象的初始化 在創(chuàng)建對(duì)象時(shí),對(duì)象所在類的所有數(shù)據(jù)成員會(huì)首先進(jìn)行初始化。
基本類型:int型,初始化為0。 如果為對(duì)象:這些對(duì)象會(huì)按順序初始化。
※在所有類成員初始化完成之后,才調(diào)用本類的構(gòu)造方法創(chuàng)建對(duì)象。 構(gòu)造方法的作用就是初始化。
(2) 靜態(tài)對(duì)象的初始化 程序中主類的靜態(tài)變量會(huì)在main方法執(zhí)行前初始化。 不僅第一次創(chuàng)建對(duì)象時(shí),類中的所有靜態(tài)變量都初始化,并且第一次訪問某類(注意此時(shí) 未創(chuàng)建此類對(duì)象)的靜態(tài)對(duì)象時(shí),所有的靜態(tài)變量也要按它們?cè)陬愔械捻樞虺跏蓟?/p>
2、繼承時(shí),對(duì)象的初始化過程 (1) 主類的超類由高到低按順序初始化靜態(tài)成員,無論靜態(tài)成員是否為private。 (2) 主類靜態(tài)成員的初始化。
(3) 主類的超類由高到低進(jìn)行默認(rèn)構(gòu)造方法的調(diào)用。注意,在調(diào)用每一個(gè)超類的默認(rèn)構(gòu)造 方法前,先進(jìn)行對(duì)此超類進(jìn)行非靜態(tài)對(duì)象的初始化。
(4) 主類非靜態(tài)成員的初始化。 (5) 調(diào)用主類的構(gòu)造方法。
3、關(guān)于構(gòu)造方法 (1) 類可以沒有構(gòu)造方法,但如果有多個(gè)構(gòu)造方法,就應(yīng)該要有默認(rèn)的構(gòu)造方法,否則在繼承此類時(shí),需要在子類中顯式調(diào)用父類的某一個(gè)非默認(rèn)的構(gòu)造方法了。 (2) 在一個(gè)構(gòu)造方法中,只能調(diào)用一次其他的構(gòu)造方法,并且調(diào)用構(gòu)造方法的語(yǔ)句必須是 第一條語(yǔ)句。
4、有關(guān)public、private和protected (1) 無public修飾的類,可以被其他類訪問的條件是:a.兩個(gè)類在同一文件中,b.兩個(gè)類 在同一文件夾中,c.兩個(gè)類在同一軟件包中。 (2) protected:繼承類和同一軟件包的類可訪問。
(3) 如果構(gòu)造方法為private,那么在其他類中不能創(chuàng)建該類的對(duì)象。 5、抽象類 (1) 抽象類不能創(chuàng)建對(duì)象。
(2) 如果一個(gè)類中一個(gè)方法為抽象方法,則這個(gè)類必須為abstract抽象類。 (3) 繼承抽象類的類在類中必須實(shí)現(xiàn)抽象類中的抽象方法。
(4) 抽象類中可以有抽象方法,也可有非抽象方法。抽象方法不能為private。
(5) 間接繼承抽象類的類可以不給出抽象方法的定義。 6、final關(guān)鍵字 (1) 一個(gè)對(duì)象是常量,不代表不能轉(zhuǎn)變對(duì)象的成員,仍可以其成員進(jìn)行操作。
(2) 常量在使用前必須賦值,但除了在聲明的同時(shí)初始化外,就只能在構(gòu)造方法中初始化 。 (3) final修飾的方法不能被重置(在子類中不能出現(xiàn)同名方法)。
(4) 如果聲明一個(gè)類為final,則所有的方法均為final,無論其是否被final修飾,但數(shù)據(jù) 成員可為final也可不是。 7、接口interface (用implements來實(shí)現(xiàn)接口) (1) 接口中的所有數(shù)據(jù)均為 static和final即靜態(tài)常量。
盡管可以不用這兩個(gè)關(guān)鍵字修飾 ,但必須給常量賦初值。 (2) 接口中的方法均為public,在實(shí)現(xiàn)接口類中,實(shí)現(xiàn)方法必須可public關(guān)鍵字。
(3) 如果使用public來修飾接口,則接口必須與文件名相同。 8、多重繼承 (1) 一個(gè)類繼承了一個(gè)類和接口,那么必須將類寫在前面,接口寫在后面,接口之間用逗 號(hào)分隔。
(2) 接口之間可多重繼承,注意使用關(guān)鍵字extends。 (3) 一個(gè)類雖只實(shí)現(xiàn)了一個(gè)接口,但不僅要實(shí)現(xiàn)這個(gè)接口的所有方法,還要實(shí)現(xiàn)這個(gè)接口 繼承的接口的方法,接口中的所有方法均須在類中實(shí)現(xiàn)。
9、接口的嵌入 (1) 接口嵌入類中,可以使用private修飾。此時(shí),接口只能在所在的類中實(shí)現(xiàn),其他類不 能訪問。
(2) 嵌入接口中的接口一定要為public。 10、類的嵌入 (1) 類可以嵌入另一個(gè)類中,但不能嵌入接口中。
(2) 在靜態(tài)方法或其他方法中,不能直接創(chuàng)建內(nèi)部類對(duì)象,需通過手段來取得。 手段有兩種: class A { class B {} B getB() { B b = new B(); return b; } } static void m() { A a = new A(); A.B ab = a.getB(); // 或者是 A.B ab = a.new B(); } (3) 一個(gè)類繼承了另一個(gè)類的內(nèi)部類,因?yàn)槌愂莾?nèi)部類,而內(nèi)部類的構(gòu)造方法不能自動(dòng) 被調(diào)用,這樣就需要在子類的構(gòu)造方法中明確的調(diào)用超類的構(gòu)造方法。
接上例: class C extends A.B { C() { new A().super(); // 這一句就實(shí)現(xiàn)了對(duì)內(nèi)部類構(gòu)造方法的調(diào)用。 } } 構(gòu)造方法也可這樣寫: C(A a) { a.super(); } // 使用這個(gè)構(gòu)造方法創(chuàng)建對(duì)象,要寫成C c = new C(a); a是A的對(duì)象。
11、異常類 JAVA中除了RunTimeException 類,其他異常均須捕獲或拋出。至于數(shù)據(jù)庫(kù),WEB,JSP,JS之類的那是高級(jí)部分了。
你好,我java也是自學(xué)的,我就自己的經(jīng)驗(yàn)給你說下,首先看視頻比較好,這里推薦馬士兵的java視頻,優(yōu)酷上可以直接下,視頻講的很好,很容易聽懂,張孝祥的也可以,他們的最大共同點(diǎn)就是:他們的教學(xué)都是以學(xué)生面試、就業(yè)為目的。對(duì)于一心想要學(xué)好java,然后就業(yè)的人,幫助很大。而且看視頻就相當(dāng)于有個(gè)老師當(dāng)面給你講解,是java初學(xué)者非常有效的方法。當(dāng)然,光看視頻是不行的,還要找本java初級(jí)教程之類的書看,這是打基礎(chǔ)的,基礎(chǔ)很重要,等看完視頻了,初級(jí)教程之類的書至少要從頭到尾看一本,至于初級(jí)教程的書,都差不多,你找一兩本合自己口味的就行,這時(shí)有一定基礎(chǔ)了,推薦你看《java編程思想》這本書,現(xiàn)在已經(jīng)出第五版了,這本書已經(jīng)得到了學(xué)習(xí)java的絕大部分人的認(rèn)可,雖然剛開始看,會(huì)覺得難,不過不要緊,第一遍能看懂30%就不錯(cuò)了,要多看幾遍,我當(dāng)時(shí)是看了3遍,等著本書看的差不多了,推薦你看《java核心技術(shù)》這本書,分上下兩冊(cè),這也是得到一致認(rèn)可的好書。等你能把這兩本書看的差不多了,我想這個(gè)時(shí)候不用問別人,自己差不多對(duì)自己的水平就有了個(gè)概念。
還有就是在學(xué)習(xí)的過程中肯定會(huì)遇到各種問題,包括枯燥,氣餒等等,希望你能堅(jiān)持到最后,到時(shí)一定能得到令你滿意的收獲!!其實(shí)學(xué)習(xí)java的過程中有很多樂趣的,比如玩自己編寫的小游戲等等,成就感不言而喻!!
希望能幫到你,如有疑問,請(qǐng)繼續(xù)追問!。
用戶名: | |
密碼: |
潮流時(shí)尚 | 寫作素材 | 創(chuàng)新創(chuàng)業(yè) |
生活常識(shí) | 策劃方案 | 安全知識(shí) |
自考專業(yè) | 家居生活 | 三農(nóng)創(chuàng)業(yè) |
勵(lì)志故事 | 時(shí)尚穿搭 | 星座知識(shí) |
聲明:本網(wǎng)站尊重并保護(hù)知識(shí)產(chǎn)權(quán),根據(jù)《信息網(wǎng)絡(luò)傳播權(quán)保護(hù)條例》,如果我們轉(zhuǎn)載的作品侵犯了您的權(quán)利,請(qǐng)?jiān)谝粋€(gè)月內(nèi)通知我們,我們會(huì)及時(shí)刪除。
蜀ICP備2020033479號(hào)-4 Copyright ? 2016 學(xué)習(xí)鳥. 頁(yè)面生成時(shí)間:3.728秒