❶ 利用 java Swing 實現游戲開發
Swing初體驗 對於想學習Swing編程的朋友 我們特地為大家准備了一些小竅門 首先 下載並閱讀代碼是極有必要的 由於這是一篇關於Swing的教程 所以 我們只是盡可能講解一些與Swing有關的內容 與Swing無關的內容一般不會涉及 例如演算法部分 其次 受篇幅限制 也不可能在這里將每部分代碼都寫得完完整整的 所以 大家也需要對照完整代碼來看 最後 為了使大家更容易把精力集中在Swing學習上 我們也將游戲開發中所需資源放在下載文件中 大家下載後便能夠編譯運行 看到執行結果 (下載游戲源文件) 頂層容器 什麼是頂層容器?當我們使用Java進行圖形編程的時候 圖在哪裡繪制呢?我們需要一個能夠提供圖形繪制的容器 這個容器就被稱為頂層容器 你也可以把它想像成一個窗口 頂層容器是進行圖形編程的基礎 一切圖形化的東西 都必然包括在頂層容器中 在Swing中 我們有三種可以使用的頂層容器 它們分別是:JFrame:用來設計類似於Windows系統中的窗口形式的應用程序 JDialog:和JFrame類似 只不過JDialog是用來設蘆旦計對話框 JApplet:用來設計可以在嵌入在網頁中的Java小程序 如果需要使用Swing製作一個窗口類程序 我們的代碼看起來應該是這樣:import javax swing *;public class KyodaiUIextends JFrame {……} 控制項 控制項是構成應用程序界面的基本元素 按鈕 文本框 進度條等 這些都是控制項 控制項(這里我們只討論可視化控制項)又可以分為容器控制項和非容器控制項 從字面意義上來理解 容器控制項就是能包含其他控制項的特殊控制項 例如 Java中的JPanel控制項就屬於容器型控制項 我們可以在JPanel中放置按鈕 文本框等非容器控制項 你甚至可以在JPanel中再放置若干個JPanel控制項(值得注意的是 頂層容器也是容器型控制項 每一個窗口應用程序中有且只能有一個頂層容器控制項 換句話說 頂層容器不能包括在其他的控制項中) Java中的容器控制項有很多 除剛才提到的JPanel外 還有JTabbedPane JScrollPane等 非容器控制項有JButton JLabel JTextField等 如果你需要向某個容器型的控制項中添加控制項 你可以使用 add(Component p) 方法來實現 如:JPanel panel = new JPanel();JButton button = new JButton();panel add(button); 布局 什麼是布局?布局是Java中用來控制控制項排列位置的一種界面管理系統 使用過其他可視化編程開發語言的人在初次接觸Java界面設計時 總會感覺到Java界面設計很別扭:居然沒有提供所見即所得的設置控制項坐標的方法!然而 事實證明 Java本身提供的布局管理系統也一樣能夠出色地完成我們的需要 而且在跨平台時表現得更有優勢 常用的布局有:BorderLayout:將界面分割為上下左右以及中間一塊區域的管理系統 在BorderLayout布局中 最多你只能放 個控制項 如果超過 個控制項 建議還是選用其他的布局系統吧 GridLayout:GridLayout是將用戶界面切割為棋盤一樣的布局管理系統 如果我們要設計一個類似於Windows中自帶的計算器軟體 GridLayout無疑是最佳選擇 FlowLayout:FlowLayout與上述兩類布局管理系統不太一樣 在FlowLayout中 你不必指定每個控制項放在哪 你只需要把控制項加入到FlowLayout中 FlowLayout就會根據你添加控制項的順序依次放置控制項 如果空間不夠 會自動換行 在對這幾個布局管理系統有了基本認識後 我們就一起來進入界面設計吧 在仔細觀察了QQ游戲中 連連看 的設閉州定後 我們可以發現 整個界面分為三個區 頂部是系統菜單區 佔地面積最大的是用戶游戲區 另外還有一個用戶交互區 每個區域中都由若干控制項組成 這么多控制項 我們從哪開始入手呢?由於容器控制項中可以放置其他控制項 因此 我陪態擾們只需要先確定放置的容器控制項就可以了 既然已經知道需要使用容器控制項的個數 接下來讓我們就進入布局管理系統的選擇 用GridLayout?似乎有點勉強 用FlowLayout?還有更好的選擇嗎?對了 我想你一定想到了是BorderLayout吧 如下圖 所示 動手之前 大家一定要注意的是 界面的設計要先考慮好尺寸 不管是主程序界面的大小還是每個區域的大小 如果沒有設計好合適的尺寸 將來改動起來會十分痛苦 下面便是相應的源程序:import java awt *;import javax swing *;public class KyodaiUI extends JFrame {public KyodaiUI() {this setSize( ); //將窗體的大小設定為 * this setDefaultCloseOperation(JFrame EXIT_ON_CLOSE);this setResizable(false); //窗體不能改變大小this setTitle( 連連看 ); //設置標題JPanel toolBar = new JPanel();toolBar setBackground(Color white);toolBar setPreferredSize(new Dimension( ));JPanel actionPanel = new JPanel(); //新建JPanel型的控制項actionPanel setBackground(Color yellow); //設置背景色actionPanel setPreferredSize(new Dimension( )); //設置大小JPanel contentPanel = new JPanel();contentPanel setBackground(Color blue);contentPanel setPreferredSize(new Dimension( ));this getContentPane() add(toolBar BorderLayout NORTH);this getContentPane() add(actionPanel BorderLayout EAST);this getContentPane() add(contentPanel BorderLayout CENTER);}public static void main(String[] args) throws HeadlessException {KyodaiUI kyodaiUI = new KyodaiUI();kyodaiUI show();}}讓我們來看看上面這段程序是如何運行的 首先 extends JFrame表明了這是從JFrame中繼承過來的 JFrame是最基本的頂層容器控制項 實際上 在JDK中 以字母J打頭的控制項都是Swing控制項 然後設置了容器的屬性 其中 setDefaultCloseOperation(JFrame EXIT_ON_CLOSE)是用來告訴Java虛擬機 當用戶點擊窗體右上角的 關閉 按鈕時 關閉該窗口進程 如果不這么做的話 你會發現雖然你可以點將窗口關閉 然而程序卻沒有退出 在接下來的代碼中 我們為頂層容器添加了三個Panel容器 要注意的是 在AWT中 我們可以直接寫為add(toolBar BorderLayout NORTH) 而在 Swing 中卻一定要寫成getContentPane() add(toolBar BorderLayout NORTH) 否則程序就會出錯 現在大家可以放在編譯運行看看 是不是和我的運行結果一樣(見圖 )? 邊框 雖然我們使用了不同前景色來區別不同的區域 然而卻沒有層次感 加上邊框一定會漂亮許多 在Java中 所有以J打頭的Swing控制項都可以使用setBorder方法來為自己設置邊框 邊框有很多種 線型 凸起 凹下 空的 你甚至可以自由組合形成個人風格 所有的Border都必須使用javax swing BorderFactory中提供的靜態方法來創建 比如:Border border = BorderFactory createBevelBorder(BevelBorder LOWERED new Color( ) new Color( ) new Color( ) new Color( ));現在 我們將toolBar setBackground(Color white)改為toolBar setBorder(border) 立體效果是不是已經出現了?實戰??寫上自己的大名現在我們已經有了一個能夠運行的界面了 雖然它什麼也做不了 但是請你別慌 羅馬不是一天建成的 現在讓我們在菜單區提供一個 關於 菜單 用來顯示程序的信息 難道你不想讓別人知道你的大名嗎?Swing本身就提供了現成的按鈕控制項JButton 我們只需要創建一個新的按鈕:JButton about = new JButton( 關於 );這個按鈕該怎麼放到菜單區而不是別的地方呢?我們可以加入下面的代碼:toolBar add(about);咦 怎麼點按鈕沒有反應?這是因為你還沒有告訴程序點擊按鈕時要做什麼事情呢 要為按鈕添加事件響應 首先需要使用about addActionListener(this)來告訴程序監聽按鈕按下時的事件 由於ActionListener是一個程序介面 因此 我們在類的申明的地方也得做一點小小的修改:public class KyodaiUI extends JFrame implements ActionListener { }實現ActionListener介面是為了告訴程序我要進行事件處理了 當然 最後我們得添加響應事件的代碼:public void actionPerformed(ActionEvent e) {if (e getSource() == about) {JOptionPane showMessageDialog(this 我的大名 關於 JOptionPane INFORMATION_MESSAGE);return ;}}其中 e getSource() 表示當前觸發事件的控制項 由於我們的程序中往往會有多個以上的控制項 這些控制項都有可能產生事件 所以我們必須使用這個方法來找到產生事情的控制項 小結 讓我們一起來回顧一下今天所學的內容:首先我們了解了頂層容器 也知道了控制項分為容器控制項和非容器控制項 同時還知道使用邊框 最後 我們還小小的處理了一下按鈕的事件 學而時習之 不亦說乎 就讓我留點小小的作業 幫助大家鞏固一下今天所學的內容:上面我們添加的按鈕在菜單欄的中間 並不美觀 lishixin/Article/program/Java/hx/201311/25907
❷ Java游戲開發要學什麼
Java游戲開發要學什麼?所謂的游戲開發編程語言其實有很多,基本上任何一種語言都可以作為游戲伺服器的編程語言。這需要根據自己游戲的類型和要求加以選擇。比如C++,Java,Erlang,go等等。目前我用過的只有C++和Java.但是以Java為主。所以接下來就以自己的經驗,談談以Java為核心的游戲伺服器開發技術體系。
Java目前作為游戲伺服器開發語言已經很是普遍。但是大多數是作為頁游或手游的伺服器,而端游戲一般選擇C++,因為端游對伺服器的性能要求相對比較高一些。兩種語言各有利弊。C++效率高,但是掌握度難些。沒有Java易於掌握。而目前對於追求快速上線率的頁游和手游來說,Java成了一個不錯的選擇。
一、Java的技術系統
需要學習的技術:
(1)Java基礎知識
(2)JavaNIO編程
(3)Netty,Mina網路框架精通一種,其它作為了解。
(4)一種緩存框架:Redis;memcache熟悉使用一個。
(5)SQL語言,用於資料庫:mysql資料庫
(6)springmvc主要用於http協議的伺服器
(7)多線程編程,明白線程安全的重要性。
(8)Java並發集合的掌握。
(10)資料庫操作,比如mybatis。
以Java為伺服器編程語言來說,掌握Java的基本知識就不必說了,是必不可少的。可以參考《Java編程思想》,《Java核心技術》等書。根據游戲通信協議的不同,大致有兩種實現方式:Socket和http。先說簡單些的http協議,這個協議已經很成熟的應用到了網站上。而Java語言也可以用於網站開發,所以相當就簡單些。現在有很多開源的伺服器軟體,比如:tomcat,resin等。游戲前端不管是頁游flash,還是手游的android,IOS都支持http協議,只要把游戲的邏輯數據按post方法向伺服器發出請求即可了。
二、學習流程
當然了,學習這些東西並不是一蹴而就的。需要根據實踐循環漸進,這里推薦一個學習流程:
(1)對於初學Java的人來說,如果自學能力好些,可以買些書自己練習,而現在又更的多選擇參加Java培訓機構,以快速的掌握Java的知識。
(2)掌握了Java知識之後,要多寫代碼實踐。這個時候可以結合mysql學習SQL語言,掌握資料庫的操作。比如用springmvc寫一個小網站,用mybatis實現網站數據的增,刪,改,查等功能。
(3)完成上步之後,可以在伺服器程序和資料庫之間加一個緩存,學習redis或memcache。
(4)把程序部署到linux伺服器上,練習linux的基本命令及shell腳
免責聲明:內容來源於公開網路,若涉及侵權聯系盡快刪除!
❸ 零基礎如何自學好Java編程
首先零基礎學習Java是不需要看書的,根據小編多年的行業經驗來看,初學者看視頻學習是最好的方式,通俗易懂的語言可以讓初學者可以更好的理解。沒有幾個人可以在基礎的情況下通過看書把Java學會,這樣的概率是非常低的。
理由是:閱讀能力強的人很少,專業性技能的Java書籍都是專業名詞,如果不通過通俗的語言去解釋,零基礎的人是很難理解的。
1.首先你應該通過一些渠道找到一套最新講的比較好的Java系統學習教程,這是你首要解決的問題,因為接下來的日子,你要利用這套教程把Java語言學到可以就業的水平。如果找不到教程,可以管我要,這是我的V:Zhanlaoshi71,從事Java開發16年的時間。
2.目前是工作狀態,我建議你一天拿出四五個小時的時間來業余學習,持著八小時之外求發展的態度來學習,而不要選擇辭職學。這樣的方式是非常不理智的。因為目前選擇學習Java的人很多能不能達到就業的水平誰都預料不到。
3.既然是學習專業的技術,建議不要完全靠自己,能花點錢盡量花點錢,現在網路這么發達,在網上找一個能帶你學習指導你的人並不難,除非是非常窮的人,只能完全靠自己自學。如果還有點積蓄,那麼給自己花點錢學習少走彎路還是非常有必要的。
4.提前找專業的人了解一下學習Java過程中會遇到哪些大家都常見的問題,我這里提兩點最大的困難,我學習Java16年的時間,接觸很多初學者。我認為最大的困難一個在於學了後面的忘記了前面,另一個就是開始學習如何養成編程思維。因為編程思維就決定了你能不能用代碼把題做出來。這兩點也是讓大多數人中途不學的主要原因。因為學習者無法解決這兩個問題,所以認為自己不適合,最後放棄了。其實是他們的學習方法不對,沒有掌握Java的學習方式。
5.一天拿出四個小時的時間,那麼根據自己的學習時間安排好每天的任務量,建議一天學習兩個小時的知識點。然後用三個小時來練習鞏固今天所學的知識。你的任務就是把這些知識點鞏固就可以了。很多人不知道自己應該達到什麼水平,其實非常簡單,你每天在學習的東西,你可以掌握到80%以上,那麼你一定可以就業。
Java語言的四部分內容:
1.JavaSE
2.資料庫
3.JavaWeb
4.框架
初學者在學習Java的時候,最難的時候頭兩個月,Java語言本身的一個特點就是越學越簡單。建議初學者在學習Java的時候,一定要把JavaSE學的非常透徹,這樣你以後無論學到哪裡,都會感覺到無比的輕松,如果你覺得你學習Java很吃力,那一定是JavaSE的基礎沒有學好。
月入過萬?
很多人都幻想自己什麼時候可以月入過萬,就會疑惑Java程序員真的都可以月入過萬的。關於這點是沒錯的,Java程序員的平均工資是13000多,但不要看著工資高你就可以來學。這不是每個人都可以學成的,必須付出努力去學習,而且還要不斷的學習新技術才能不斷的漲薪,所以你如果沒有做好長期學習的准備,奉勸你不要來這行。
❹ Java手機游戲編程軟體
你好,游戲游戲開發需要分平台的;目前比較火的就是android和iOS(蘋果的iphone)了!
1、android開源支持手機較多:需要java基礎。做android開發,入門簡單,發展一般,主要的工作適配各種機型了,目前國內有成熟的盈利環境,發展不明朗;學java語言。。需要的開發軟體有:eclipse和AndroidSDK,
2、iOS,蘋果王朝的的核好帆心產品;單單一個《憤怒的小鳥》,全球就有,4億人下載,
現在很多的手機都是android系統的,所以手機游戲的開發也需要在android的平台下開發。你可以到專門的學校去學習這方面的技術
手機游戲開發主要是用j2me來做,jeme屬於java三大模塊j2ee、j2se、j2me中的一個,你現在已經學了java,所以有一定的基礎了,學習基虧起j2me手機開發語言的話也是比較容易上手。java基礎,J2ME知識。數學基礎,邏輯思維能力。
java平台分三種javaEE開發網頁javaME開發手機應用程序javaSE開發電腦端程序
優秀的設計能力。要學習【java語言基礎】先然後在進修【java與游戲設計】最好學友鋒雹點美術設計和3d設計
學習java手機游戲開發的話,可以從j2se入手然後學習j2me進行手機游戲開發。
但是我推薦你從j2se入手開始學習android,然後進行android游戲開發,可能比前面的更加前途!
❺ 怎樣電腦編程序
1、C語言
如果說FORTRAN和COBOL是第一代高級編譯語言,那麼C語言就是它們的孫子輩。C語言是Dennis Ritchie在七十年代創建的,它功能更強大且與ALGOL保持更連續的繼承性,而ALGOL則是COBOL和FORTRAN的結構化繼承者。C語言被設計成一個比它的前輩更精巧、更簡單的版本,它適於編寫系統級的程序,比如操作系統。在此之前,操作系統是使用匯編巧慶喊語言編寫的,而且不可移植。C語言是第一個使得系統級代碼移植成為可能的編程語言。
C語言支持結構化編程,也就是說C的程序被編寫成一些分離的函數呼叫(調用)的集合,這些呼叫是自上而下運行,而不像一個單獨的集成塊的代碼使用GOTO語句控制流程。因此,C程序比起集成性的FORTRAN及COBOL的「空心粉式代碼」代碼要簡單得多。事實上,C仍然具有GOTO語句,不過它的功能被限制了,僅當結構化方案非常復雜時才建議使用。
正由於它的系統編程根源,將C和匯編語言進行結合是相當容易的。函數調用介面非常簡單,而且匯編語言指令還能內嵌到C代碼中,所以,不需要連接獨立的匯編模塊。
優點:有益於編寫小而快的程序。很容易與匯編語言結合。具有很高的標准化,因此其他平台上的各版本非常相似。
缺點:不容易支持面向對象技術。語法有時會非常難以理解,並造成濫用。
移植性:C語言的核心以及ANSI函數調用都具有移植性,但僅限於流程式控制制、內存管理和簡單的文件處理。其他的東西都跟平台有關。比如說,為Windows和Mac開發可移植的程序,用戶界面部分就需要用到與系統相關的函數調用。這一般意味著你必須寫兩次用戶界面代碼,不過還好有一些庫可以減輕工作量。
用C語言編寫的游戲:非常非常多。
資料:C語言的經典著作是《The C Programming Language》,它經過多次修改,已經擴展到最初的三倍大,但它仍然是介紹C的優秀書本。一本極好的教程是《The Waite Group's C Primer Plus》。
2、C++
C++語言是具有面向對象特性的C語言的繼承者。面向對象編程,或稱OOP是結構化編程的下一步。OO程序由對象組成,其中的對象是數據和函數離散集合。有許多可用的對象庫存在,這使得編程簡單得只需要將一些程序「建築材料」堆在一起(至少理論上是這樣)。比如說,有很多的GUI和資料庫的庫實現為對象的集合。
C++總是辯論的主題,尤其是在游戲開發論壇里。有幾項C++的功能,比如虛擬函孝野數,為函數呼叫的決策制定增加了一個額外層次,批評家很快指出C++程序將變得比相同功能的C程序來得大和慢。C++的擁護者則認為,用C寫出與虛擬函數等價的代碼同樣會增加開支。這將是一個還在進行,而且不可能很快得出結論的爭論。
我認為,C++的額外開支只是使用更好的語言的小付出。同樣的爭論發生在六十年代高級程序語言如COBOL和FORTRAN開始取代匯編成為語言所選的時候。批評家正確的指出使用高級語言編寫的程序天生就比手寫的匯編語言來得慢,而且必然如此。而高級語言支持者認為這么點小小的性能損失是值得的,因為COBOL和FORTRAN程序更容易編寫和維護。
優點:組織大型程序時比C語言好得多。很好的支持面向對象機制。通用數據結構,如鏈表和可增長的陣列組成的庫減輕了由於處理低層細節的負擔。
缺點:非常大而復雜。與C語言一樣存在語法濫用問題。比C慢。大多數編譯器沒有把整個語言正確的實現。
移植性:比C語言好多了,但依然差輪不是很樂觀。因為它具有與C語言相同的缺點,大多數可移植性用戶界面庫都使用C++對象實現。
使用C++編寫的游戲:非常非常多。大多數的商業游戲是使用C或C++編寫的。
資料:最新版的《The C++ Programming Language》非常好。作為教程,有兩個陣營,一個假定你知道C,另外一個假定你不知道。到目前為止,最好的C++教程是《Who's Afraid of C++》,如果你已經熟知C,那麼試一下《Teach Yourself C++》。
3、我該學習C++或是該從C開始
我不喜歡這種說法,但它是繼「我該使用哪門語言」之後最經常被問及的問題。很不幸,不存在標准答案。你可以自學C並使用它來寫程序,從而節省一大堆的時間,不過使用這種方法有兩個弊端:
你將錯過那些面向對象的知識,因為它可能在你的游戲中使得數據建模更有效率的東西。
最大的商業游戲,包括第一人稱射擊游戲很多並沒有使用C++。但是,這些程序的作者即使使用老的C的格式,他們通常堅持使用面向對象編程技術。如果你只想學C,至少要自學OO(面向對象)編程技術。OO是模擬(游戲)的完美方法,如果你不學習OO,你將不得不「辛苦」的工作。
4、匯編語言
顯然,匯編是第一個計算機語言。匯編語言實際上是你計算機處理器實際運行的指令的命令形式表示法。這意味著你將與處理器的底層打交道,比如寄存器和堆棧。如果你要找的是類英語且有相關的自我說明的語言,這不是你想要的。
確切的說,任何你能在其他語言里做到的事情,匯編都能做,只是不那麼簡單 — 這是當然,就像說你既可以開車到某個地方,也可以走路去,只是難易之分。話雖不錯,但是新技術讓東西變得更易於使用。
總的來說,匯編語言不會在游戲中單獨應用。游戲使用匯編主要是使用它那些能提高性能的零零碎碎的部分。比如說,毀滅戰士整體使用C來編寫,有幾段繪圖程序使用匯編。這些程序每秒鍾要調用數千次,因此,盡可能的簡潔將有助於提高游戲的性能。而從C里調用匯編寫的函數是相當簡單的,因此同時使用兩種語言不成問題。
特別注意:語言的名字叫「匯編」。把匯編語言翻譯成真實的機器碼的工具叫「匯編程序」。把這門語言叫做「匯編程序」這種用詞不當相當普遍,因此,請從這門語言的正確稱呼作為起點出發。
優點:最小、最快的語言。匯編高手能編寫出比任何其他語言能實現的快得多的程序。你將是利用處理器最新功能的第一人,因為你能直接使用它們。
缺點:難學、語法晦澀、堅持效率,造成大量額外代碼 — 不適於心臟虛弱者。
移植性:接近零。因為這門語言是為一種單獨的處理器設計的,根本沒移植性可言。如果使用了某個特殊處理器的擴展功能,你的代碼甚至無法移植到其他同類型的處理器上(比如,AMD的3DNow指令是無法移植到其它奔騰系列的處理器上的)。
使用匯編編寫的游戲:我不知道有什麼商業游戲是完全用匯編開發的。不過有些游戲使用匯編完成多數對時間要求苛刻的部分。
資料:如果你正在找一門匯編語言的文檔,你主要要找晶元的文檔。網路上如Intel、AMD、Motorola等有一些關於它們的處理器的資料。對於書籍而言,《Assembly Language: Step-By-Step》是很值得學習的。
5、Pascal語言
Pascal語言是由Nicolas Wirth在七十年代早期設計的,因為他對於FORTRAN和COBOL沒有強制訓練學生的結構化編程感到很失望,「空心粉式代碼」變成了規范,而當時的語言又不反對它。Pascal被設計來強行使用結構化編程。最初的Pascal被嚴格設計成教學之用,最終,大量的擁護者促使它闖入了商業編程中。當Borland發布IBM PC上的 Turbo Pascal時,Pascal輝煌一時。集成的編輯器,閃電般的編譯器加上低廉的價格使之變得不可抵抗,Pascal編程了為MS-DOS編寫小程序的首選語言。
然而時日不久,C編譯器變得更快,並具有優秀的內置編輯器和調試器。Pascal在1990年Windows開始流行時走到了盡頭,Borland放棄了Pascal而把目光轉向了為Windows 編寫程序的C++。Turbo Pascal很快被人遺忘。
最後,在1996年,Borland發布了它的「Visual Basic殺手」— Delphi。它是一種快速的帶華麗用戶界面的 Pascal編譯器。由於不懈努力,它很快贏得了一大群愛好者。
基本上,Pascal比C簡單。雖然語法類似,它缺乏很多C有的簡潔操作符。這既是好事又是壞事。雖然很難寫出難以理解的「聰明」代碼,它同時也使得一些低級操作,如位操作變得困難起來。
優點:易學、平台相關的運行(Delphi)非常好。
缺點:「世界潮流」面向對象的Pascal繼承者(Mola、Oberon)尚未成功。語言標准不被編譯器開發者認同。專利權。
移植性:很差。語言的功能由於平台的轉變而轉變,沒有移植性工具包來處理平台相關的功能。
使用Pascal編寫的游戲:幾個。DirectX的Delphi組件使得游戲場所變大了。
資料:查找跟Delphi有關的資料,請訪問:Inprise Delphi page。
6、Visual Basic
哈,BASIC。回到八十年代的石器時代,它是程序初學者的第一個語言。最初的BASIC形式,雖然易於學習,卻是可怕的無組織化,它義無反顧的使用了GOTO充斥的「空心粉式代碼」。當回憶起BASIC的行號和GOSUB命令,沒有幾個人能止住眼角的淚水。
快速前進到九十年代早期,雖然不是蘋果公司所希望的巨人,HyperCard仍然是一個在Windows下無法比擬的吸引人的小型編程環境。Windows下的HyperCard克隆品如ToolBook又慢又笨又昂貴。為了與HyperCard一決高下,微軟取得了一個小巧的名為Thunder編程環境的許可權,並把它作為Visual Basci 1.0發布,其用戶界面在當時非常具有新意。這門語言雖然還叫做Basic(不再是全部大寫),但更加結構化了,行號也被去除。實際上,這門語言與那些內置於TRS-80、Apple II及Atari里的舊的ROM BASIC相比,更像是帶Basic風格動詞的Pascal。
經過六個版本,Visual Basic變得非常漂亮。用戶界面發生了許多變化,但依然保留著「把代碼關聯到用戶界面」的主旨。這使得它在與即時編譯結合時變成了一個快速原型的優異環境。
優點:整潔的編輯環境。易學、即時編譯導致簡單、迅速的原型。大量可用的插件。雖然有第三方的DirectX插件,DirectX 7已准備提供Visual Basic的支持。
缺點:程序很大,而且運行時需要幾個巨大的運行時動態連接庫。雖然表單型和對話框型的程序很容易完成,要編寫好的圖形程序卻比較難。調用Windows的API程序非常笨拙,因為VB的數據結構沒能很好的映射到C中。有OO功能,但卻不是完全的面向對象。專利權。
移植性:非常差。因為Visual Basic是微軟的產品,你自然就被局限在他們實現它的平台上。也就是說,你能得到的選擇是:Windows,Windows或Widnows。當然,有一些工具能將VB程序轉變成Java。
使用Visual Basic編寫的游戲:一些。有很多使用VB編寫的共享游戲,還有一些是商業性的。
資料:微軟的VB頁面有一些信息。
7、Java
Java是由Sun最初設計用於嵌入程序的可移植性「小C++」。在網頁上運行小程序的想法著實吸引了不少人的目光,於是,這門語言迅速崛起。事實證明,Java不僅僅適於在網頁上內嵌動畫 — 它是一門極好的完全的軟體編程的小語言。「虛擬機」機制、垃圾回收以及沒有指針等使它很容易實現不易崩潰且不會泄漏資源的可靠程序。
雖然不是C++的正式續篇,Java從C++ 中借用了大量的語法。它丟棄了很多C++的復雜功能,從而形成一門緊湊而易學的語言。不像C++,Java強制面向對象編程,要在Java里寫非面向對象的程序就像要在Pascal里寫「空心粉式代碼」一樣困難。
優點:二進制碼可移植到其他平台。程序可以在網頁中運行。內含的類庫非常標准且極其健壯。自動分配合垃圾回收避免程序中資源泄漏。網上數量巨大的代碼常式。
缺點:使用一個「虛擬機」來運行可移植的位元組碼而非本地機器碼,程序將比真正編譯器慢。有很多技術(例如「即時」編譯器)很大的提高了Java的速度,不過速度永遠比不過機器碼方案。早期的功能,如AWT沒經過慎重考慮,雖然被正式廢除,但為了保持向後兼容不得不保留。越高級的技術,造成處理低級的機器功能越困難,Sun為這門語言增加新的「受祝福」功能的速度實在太慢。
移植性:最好的,但仍未達到它本應達到的水平。低級代碼具有非常高的可移植性,但是,很多UI及新功能在某些平台上不穩定。
使用Java編寫的游戲:網頁上有大量小的Applet,但僅有一些是商業性的。有幾個商業游戲使用Java作為內部腳本語言。
資料:Sun的官方Java頁面有一些好的信息。IBM也有一個非常好的Java頁面。JavaLobby是一個關於Java新聞的最好去處。
8、創作工具
上面所提及的編程語言涵蓋了大多數的商業游戲。但是也有一個例外,這個大游戲由於它的缺席而變得突出。
「神秘島」。沒錯,賣得最好的商業游戲不是使用以上任何一門語言編的,雖然有人說「神秘島」99%是使用 3D建模工具製作的,其根本的編程邏輯是在HyperCard里完成的。
多數創作工具有點像Visual Basic,只是它們工作在更高的層次上。大多數工具使用一些拖拉式的流程圖來模擬流程式控制制。很多內置解釋的程序語言,但是這些語言都無法像上面所說的單獨的語言那樣健壯。
優點:快速原型 — 如果你的游戲符合工具製作的主旨,你或許能使你的游戲跑得比使用其他語言快。在很多情況下,你可以創造一個不需要任何代碼的簡單游戲。使用插件程序,如Shockware及IconAuthor播放器,你可以在網頁上發布很多創作工具生成的程序。
缺點:專利權,至於將增加什麼功能,你將受到工具製造者的支配。你必須考慮這些工具是否能滿足你游戲的需要,因為有很多事情是那些創作工具無法完成的。某些工具會產生臃腫得可怕的程序。
移植性:因為創作工具是具有專利權的,你的移植性以他們提供的功能息息相關。有些系統,如Director可以在幾種平台上創作和運行,有些工具則在某一平台上創作,在多種平台上運行,還有的是僅能在單一平台上創作和運行。
使用創作工具編寫的游戲:「神秘島」和其他一些同類型的探險游戲。所有的Shockwave游戲都在網路上。
資料:Director、HyperCard、SuperCard、IconAuthor、Authorware。
9、易語言
★全中文支持,無需跨越英語門檻。★全可視化編程,支持所見即所得程序界面設計和程序流程編碼。★中文語句快速錄入。提供多種內嵌專用輸入法,徹底解決中文語句輸入速度慢的問題。★代碼即文檔。自動規范強制代碼格式轉換,任何人編寫的任何程序源代碼格式均統一。★參數引導技術,方便程序語句參數錄入。★無定義類關鍵字。所有程序定義部分均採用表格填表方式,用戶無需記憶此類關鍵字及其使用格式。★命令格式統一。所有程序語句調用格式完全一致。★語法格式自動檢查。自動檢查並提示所輸入語句的語法格式是否正確,且可自動添加各類名稱。★全程提示與幫助。滑鼠停留立即顯示相關項目提示。編程時提示語法格式,調試時提示變數當前內容,隨時按下F1鍵可得到與當前主題相關詳細幫助等。★名稱自動管理。用戶修改任一名稱定義,其它所有包含該名稱的程序代碼均自動修正。★集成化開發環境。集界面設計、代碼編寫、調試分析、編譯打包等於一體。★學習資源豐富。詳細的幫助文件、數十兆的知識庫、數萬用戶的網上論壇、教材已出版發行……
10、結論
你可能希望得到一個關於「我該使用哪種語言」這個問題的更標準的結論。非常不幸,沒有一個對所有應用程序都最佳的解決方案。C適於快而小的程序,但不支持面向對象的編程。C++完全支持面向對象,但是非常復雜。Visual Basic與Delphi易學,但不可移植且有專利權。Java有很多簡潔的功能,但是慢。創作工具可以以最快的速度產生你的程序,但是僅對某一些類型的程序起作用。最好的方法是決定你要寫什麼樣的游戲,並選擇對你的游戲支持最好的語言。「試用三十天」的做法成為工業標準是件好事情。
❻ 求助:一個java小游戲編程實例,主要的界面做出來,但是游戲的中按鈕怎麼走得方法不知道怎麼寫。
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Game1 extends javax.swing.JFrame {
public Game1() {
initComponents();
}
private void initComponents() {
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jButton3 = new javax.swing.JButton();
jButton4 = new javax.swing.JButton();
jButton5 = new javax.swing.JButton();
jButton6 = new javax.swing.JButton();
jButton7 = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jButton1.setIcon(new javax.swing.ImageIcon("C:\\Users\\Administrator\\Desktop\\游戲.jpg"));
jButton1.setText("jButton1");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jButton2.setIcon(new javax.swing.ImageIcon("C:\\Users\\Administrator\\Desktop\\游戲.jpg"));
jButton2.setText("jButton2");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
jButton3.setIcon(new javax.swing.ImageIcon("C:\\Users\\Administrator\\Desktop\\游戲.jpg"));
jButton3.setText("jButton3");
jButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton3ActionPerformed(evt);
}
});
jButton4.setIcon(new javax.swing.ImageIcon("C:\\Users\\Administrator\\Desktop\\游戲2.jpg"));
jButton4.setText("jButton4");
jButton4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton4ActionPerformed(evt);
}
});
jButton5.setIcon(new javax.swing.ImageIcon("C:\\Users\\Administrator\\Desktop\\游戲1.jpg")); // NOI18N
jButton5.setText("jButton5");
jButton5.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton5ActionPerformed(evt);
}
});
jButton6.setIcon(new javax.swing.ImageIcon("C:\\Users\\Administrator\\Desktop\\游戲1.jpg")); // NOI18N
jButton6.setText("jButton6");
jButton6.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton6ActionPerformed(evt);
}
});
jButton7.setIcon(new javax.swing.ImageIcon("C:\\Users\\Administrator\\Desktop\\游戲1.jpg")); // NOI18N
jButton7.setText(" ");
jButton7.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton7ActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(132, 132, 132)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
.addComponent(jButton1, javax.swing.GroupLayout.Alignment.LEADING, 0, 0, Short.MAX_VALUE)
.addComponent(jButton2, javax.swing.GroupLayout.Alignment.LEADING, 0, 0, Short.MAX_VALUE)
.addComponent(jButton3, javax.swing.GroupLayout.Alignment.LEADING, 0, 0, Short.MAX_VALUE)
.addComponent(jButton4, javax.swing.GroupLayout.Alignment.LEADING, 0, 0, Short.MAX_VALUE)
.addComponent(jButton5, javax.swing.GroupLayout.Alignment.LEADING, 0, 0, Short.MAX_VALUE)
.addComponent(jButton6, 0, 0, Short.MAX_VALUE)
.addComponent(jButton7, javax.swing.GroupLayout.PREFERRED_SIZE, 69, Short.MAX_VALUE))
.addContainerGap(199, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(101, 101, 101)
.addComponent(jButton7)
.addGap(29, 29, 29)
.addComponent(jButton6)
.addGap(30, 30, 30)
.addComponent(jButton5)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jButton4)
.addGap(18, 18, 18)
.addComponent(jButton3)
.addGap(18, 18, 18)
.addComponent(jButton2)
.addGap(18, 18, 18)
.addComponent(jButton1))
);
pack();
}// </editor-fold>
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
if(a==0)
{
if(a!=b)
{
if(b==2)
{
jButton2.setIcon(f1);
jButton1.setIcon(f3);
a=2;
b=0;
}
else
{
if(c==2)
{
jButton3.setIcon(f1);
jButton1.setIcon(f3);
c=0;
a=2;
}
}
}
}
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
if(b==0)
{
if(b!=c)
{
if(c==2)
{
jButton3.setIcon(f1);
jButton2.setIcon(f3);
b=2;
c=0;
}
else
{
if(d==2)
{
jButton4.setIcon(f1);
jButton2.setIcon(f3);
d=0;
b=2;
}
}
}
}
if(b==1)
{
if(a==2)
{
jButton1.setIcon(f2);
jButton2.setIcon(f3);
b=2;
a=1;
}
}
}
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
if(c==0)
{
if(c!=d)
{
if(d==2)
{
jButton4.setIcon(f1);
jButton3.setIcon(f3);
c=2;
d=0;
}
else
{
if(e==2)
{
jButton5.setIcon(f1);
jButton3.setIcon(f3);
e=0;
c=2;
}
}
}
}
if(c==1)
{
if(b==0&&a==2)
{
jButton1.setIcon(f2);
jButton3.setIcon(f3);
c=2;
a=1;
}
if(b==2)
{
jButton2.setIcon(f2);
jButton3.setIcon(f3);
c=2;
b=1;
}
}
}
private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
if(d==0)
{
if(d!=e)
{
if(e==2)
{
jButton5.setIcon(f1);
jButton4.setIcon(f3);
d=2;
e=0;
}
else
{
if(f==2)
{
jButton6.setIcon(f1);
jButton4.setIcon(f3);
f=0;
d=2;
}
}
}
}
if(d==1)
{
if(c==0&&b==2)
{
jButton2.setIcon(f2);
jButton4.setIcon(f3);
d=2;
b=1;
}
if(c==2)
{
jButton3.setIcon(f2);
jButton4.setIcon(f3);
d=2;
c=1;
}
}
}
private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {
if(e==0)
{
if(e!=f)
{
if(f==2)
{
jButton6.setIcon(f1);
jButton5.setIcon(f3);
e=2;
f=0;
}
else
{
if(g==2)
{
jButton7.setIcon(f1);
jButton5.setIcon(f3);
g=0;
e=2;
}
}
}
}
if(e==1)
{
if(d==0&&c==2)
{
jButton3.setIcon(f2);
jButton5.setIcon(f3);
e=2;
c=1;
}
if(d==2)
{
jButton4.setIcon(f2);
jButton5.setIcon(f3);
e=2;
d=1;
}
}}
private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {
if(f==0&&g==2)
{
jButton7.setIcon(f1);
jButton6.setIcon(f3);
f=2;
g=0;
}
if(f==1&&e==2)
{
jButton5.setIcon(f2);
jButton6.setIcon(f3);
f=2;
e=1;
}
if(f==1&&e==0&&d==2)
{
jButton4.setIcon(f2);
jButton6.setIcon(f3);
d=1;
f=2;
}
}
private void jButton7ActionPerformed(java.awt.event.ActionEvent evt) {
if(g==1&&f==2)
{
jButton6.setIcon(f2);
jButton7.setIcon(f3);
g=2;
f=1;
}
if(g==1&&f==0&&e==2)
{
jButton5.setIcon(f2);
jButton7.setIcon(f3);
g=2;
e=1;
}
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Game1().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JButton jButton4;
private javax.swing.JButton jButton5;
private javax.swing.JButton jButton6;
private javax.swing.JButton jButton7;
// End of variables declaration
int a=0;int b=0;int c=0;int d=2;int e=1;int f=1;int g=1;
String s="C:\\Users\\Administrator\\Desktop\\游戲.jpg";
String s1="C:\\Users\\Administrator\\Desktop\\游戲1.jpg";
String s2="C:\\Users\\Administrator\\Desktop\\游戲2.jpg";
ImageIcon f1=new ImageIcon("C:\\Users\\Administrator\\Desktop\\游戲.jpg");
ImageIcon f2=new ImageIcon("C:\\Users\\Administrator\\Desktop\\游戲1.jpg");
ImageIcon f3=new ImageIcon("C:\\Users\\Administrator\\Desktop\\游戲2.jpg");
}//我對「點擊按鈕要隔一個按鈕移,必須兩個相鄰按鈕箭頭相對」的理解是兩個箭頭相對的按鈕後要有空位才可以移動,不知道是不是對的,而且我不會把按鈕做成圓形,你可以用你的界面,如果我理解不對,裡面的方法思想應該可以解決移動問題,還有,向下的按鈕圖案我存為
游戲.jpg;向上的我存為游戲1.jpg;空位按鈕我存為游戲2.jpg
❼ java做一些小游戲需要學什麼
Java做這些小游戲, 可以使用下面幾種Java自帶的圖形界面框架
Awt 適合內存較小, 配置較低的嵌入式系統等,組件較少, 性能好,資源消耗低.
Swing 適合PC等, 組件較豐富, 內存佔用較大, 但是跨平台性優越
JavaFX 這個是比較強大的框架了,組件比Swing更豐富,比如添加了 日期選擇組件, WebView組件, 還支持3D和 動畫. 並且多多媒體支持良好. 但是相關資料比Swing等少
既然學過Java Web 那麼對網頁編程還是有了解吧, HTML+CSS+JS 也可以開發出小游戲,瀏覽器可以顯示, 放入JavaFX的WebView組件也可以顯示出來
推薦使用JavaFX 或者 Web ,因為這兩者都很好做到了分離. JavaFX也可以分離出FXML文件,CSS文件,Java文件. 當然也可以採用最穩妥的Swing來開發,畢竟Swing的圖書教程很多.
推薦書籍
<Java 2D游戲編程入門> <Java游戲編程原理與實踐教程>
<JavaFX 游戲程式設計 第三版>
其實游戲演算法都一樣, 在Swing上好了弄透徹了, 也可以輕松移植到JavaFX或者網頁上
❽ 自學java做android studio的畢設怎麼學啊
1.Java 基礎;2.搭建Android 開發環境3.了解Android 運行原理以及一個工程項目結構4.如何系統學習Android5.推薦一些實用的資源6.總結(註:一直沒有時間整理一些鏈接文件,看到大家對這篇文章這么感興趣,我重新整理我文章裡面的鏈接,朋友們可以點擊進去看一看,都是我精心整理的一些資料,希望對你們有所幫助。文章僅是個人意見,不喜勿噴,如果有更好意見和簡介,歡迎交流!(鞠躬))!
java語言基礎
首先肯定需要的就是java語言了,雖然有一些別的語言也可以開發android,但是都是小眾。因為Android SDK 是基於Java 開發的,使用的語言是Java,如果有了Java 基礎,學Android 就會事半功倍;比如在Android 中要使用到的介面,抽象類,類型轉換,繼承,覆蓋,匿名內部類,多線程,這些都是Java 語言的,如果以前沒有基礎過,學Android 會很郁悶的;當然如果你有C++ 基礎,當然也可以基於NDK 開發,可以不使用Java;
最近冒出來的kotlin是google官方支持的開發語言,但是靠真正流行還需要很長時間,個人推薦還是以java為主,但是kotlin盡量也要學習一下,多學一門語言怎麼也是有好處的
對於沒有java基礎的同學我推薦一些資源:
Mars 的Java4Android視頻資源,可以在51cto中找到,很好的視頻資源,適合初學者學習,我當初就是從這里開始了程序員這條不歸路。
《Java從入門到精通(第3版)》從初學者角度出發,通過通俗易懂的語言、豐富多彩的實例,詳細介紹了使用Java語言進行程序開發需要掌握的知識。
如果需要更多書籍資源文件的朋友請點擊安卓書籍--從入門到精通
搭建Android開發環境
現在大部分開發人員都用的是Android Studio,從2014年底到現在,經過了三年時間的完善,AS已經成為了大部分Android程序員的開發神器,(筆者剛開始做Android 就用的AS,沒體會到什麼,但是我發現用過AS的人都會深深的迷上它,而去放棄Eclipse了)
在這裡面就不多說了大家可以去看看我對Studio的介紹:
Android Studio詳解 AndroidStudio 提高開發效率的插件
了解Android 運行原理,一個工程的項目結構
有兩種流行的結構:老的Ant & Eclipse ADT 工程結構,和新的Gradle & Android Studio 工程結構, 你應該選擇新的工程結構,如果你的工程還在使用老的結構,考慮放棄吧,將工程移植到新的結構。這里我們對兩個項目結構做一下對比
老的結構:
old-structure
├─ assets
├─ libs
├─ res
├─ src
│ └─ com/futurice/project
├─ AndroidManifest.xml
├─ build.gradle
├─ project.properties
└─ proguard-rules.pro
新的結構
new-structure
├─ library-foobar
├─ app
│ ├─ libs
│ ├─ src
│ │ ├─ androidTest
│ │ │ └─ java
│ │ │ └─ com/futurice/project
│ │ └─ main
│ │ ├─ java
│ │ │ └─ com/futurice/project
│ │ ├─ res
│ │ └─ AndroidManifest.xml
│ ├─ build.gradle
│ └─ proguard-rules.pro
├─ build.gradle
└─ settings.gradle
主要的區別在於,新的結構明確的分開了'source sets' (main,androidTest),這是Gradle的一個理念。 通過這個你可以做到,例如,添加源組『paid』和『free』在src中,讓你的應用程序具有付費和免費的兩種模式的源代碼。
你的項目引用第三方項目庫時(例如,library-foobar),擁有一個頂級包名app從第三方庫項目區分你的應用程序是非常有用的。 然後settings.gradle不斷引用這些庫項目,其中app/build.gradle可以引用。
如果需要更加詳細的介紹請點擊下方鏈接
介紹內容有 Android 開發規范, 架構, 布局技巧, 以及使用一些有助於快速開發相關工具等等
如何系統學習Android
因為要介紹的東西太多了,這里給大家推薦一張安卓知識體系的圖片,最近看到別人整理的一份也挺好的,對我收益很大,如果需要請點擊一個老鳥發的公司內部整理的 Android 學習路線圖
推薦一些實用的資源
推薦大家一個網站「極客導航——程序員自己的導航」,裡面介紹了常用網站,工具大全,經典博客,進階之路,源碼下載,跳槽指南,精品網站,邊角作用的一些常用網站,一些Android大牛的博客都在裡面,我經常會看。
總結
1. 如果你是非科班畢業想要轉行編程,看了我的經歷你一定很有信心與動力,我能,你一樣能,何況我中間走了這么多彎路; 2. 如果你接觸過一些數據結構、編程語言之類的,想要學習編程,你更應該有信心,你比那些非科班的人已經多了一些基礎,你要做的只是堅定信念,堅持走下去; 3. 不要感慨上天的不公平,我一路走來很悲催,走了太多的彎路,遇到了太多的困難,都是我這輩子難以忘記的,但同時我是幸運的,因為我有她,我感謝我女朋友無數個日夜的理解與支持,上帝在給你製造坎坷的時候總會對你有些眷顧; 4. 如果你准備或已經在做開發的人員,沒有信心或動力,又或是對未來迷茫的時候,姑且當做一篇勵志小說來看,你要做的就是做好你當下在做的事,相信你的付出一定能有所收獲;
建議
寫到這里想要給點建議,那就以一個反例的身份給出事後的一些建議吧:
1.每天花1小時看書,難的不是1小時,難的在堅持; 2.英語對編程來說很重要,試著習慣英語閱讀;(扇貝系列的軟體) 3.數據結構和演算法要學好,這算是對編程來說最重要的課了,以後不見得能用得上,但用的時候起碼你有印象; 4.善於利用搜索引擎,從用Google做起,學會英文關鍵字搜索,有問題第一時間想到去搜索而不是去請教別人; 5.多去混GitHub,目前最流行的開源社區,多參與開源項目,慢慢試著讀牛人們的代碼,時機到的時候自己也可以為6.開源社區貢獻力量,可以這樣說在GitHub上認真混一年,比你在大學四年學的東西要多的多; 7.第一份工作很重要,因為你會受一些周圍同事、公司氛圍的影響。 8.最後一條是盡快找一個女朋友,因為你的工作使你接觸到的女性會越來越少。
大家都有了以上相同的教程,但是人和人之間的區別在於:別人有顆更強大的內心,可怕的是比你聰明的人比你還要更努力!!
當你下定決心,准備前行的時候,剩下的只有堅持了。。。
最新Java教程全套
第1階段 :Java基礎
1.認知基礎課程2. java入門階段3. 面向對象編程4. 飛機小項目5. 面向對象和數組6. 常用類7. 異常機制8. 容器和數據結構9. IO流技術10. 多線程11. 網路編程12. 手寫伺服器13. 註解和反射14. GOF23種設計模式15. 正則表達式16. JDBC資料庫操作17. 手寫SORM框架18. JAVA10新特性19.數據結構和演算法20. JVM虛擬機講解21. XML技術解析
第2階段:資料庫開發全套課程
1.Oracle和SQL語言2.Mysql快速使用3.PowerDesigner使用4.JDBC資料庫5.Mysql優化6.oracle深度講解
第3階段:網頁開發和設計
1.HTML基礎2.CSS基礎3.JavaScript編程4.jQuery5.easyUI
第4階段:Servlet和JSP實戰深入課程
1.Servlet入門和Tomcat2.request和response對象3.轉發和重定向_Cookie4.session_Context對象5.JSP6.用戶管理系統7.Ajax技術8.EL和JSTL標簽庫9.過濾器10.監聽器
第5階段:高級框架階段
1.Mybatis2.Spring3.Spring MVC4.SSM框架整合5.RBAC許可權控制項目6.Hibernate37.Hibernate48.jFinal9.Shiro安全框架10.Solr搜索框架11.Struts212.Nginx伺服器13.Redis緩存技術14.JVM虛擬機優化15.Zookeeper
第6階段:微服務架構階段
1.Spring Boot2.Spring Data3.Spring Cloud
第7階段:互聯網架構階段
1.Linux系統2.Maven技術3.Git4.SVN5.高並發編程6.系統和虛擬機調優7.JAVA編程規范8.高級網路編程9.Netty框架10.ActiveMQ消息中間件11.單點登錄SSO12.資料庫和SQL優化13.資料庫集群和高並發14.Dubbo15.Redis16.VSFTPD+NGINX
第8階段:分布式億級高並發電商項目
1.基於SOA架構介紹2.VSFTPD和Nginx和商品新增3.商品規格參數管理4.Jsonp5.CMS模塊6.廣告位數據緩存7.SolrJ和SolrCloud8.商品搜索9.商品詳情10.單點登錄11.購物車12.訂單系統13.分庫和分表14.分布式部署
第9階段:畢設項目第1季
1. 電子政務網2. 企業合同管理系統3. 健康管理系統4. 商品供應管理系統5. 土地檔案管理系統6. 聊天室設計和實現7. 碼頭配套和貨櫃管理系統8. 百貨中心供應鏈系統9. 病歷管理系統10. 超市積分管理系統11. 動漫論壇12. 俄羅斯方塊13. 個人博客系統14. 固定資產管理系統15. 影視創作論壇16. 屏幕截圖工具17. 超級瑪麗游戲18. 飛機大戰游戲19. 雷電
第10階段:畢設項目第2季
1. 微博系統2. 寫字板3. 坦克大戰4. 推箱子5. 電腦彩票系統6. 記賬管理系統7. 新聞發布系統8. 醫院掛號系統9. 倉庫管理系統10. 停車場管理系統11. 網路爬蟲12. 酒店管理系統13. 企業財務管理系統14. 車輛管理系統15. 員工信息管理系統16. 旅遊網站17. 搜索引擎18. 進銷存管理系統19. 在線考試系統20. 物流信息網21. 住院管理系統22. 銀行櫃員業務績效系統