當前位置:首頁 » 編程語言 » java初

java初

發布時間: 2022-04-16 11:57:37

『壹』 java初學者應該注意什麼

學習程序的最好方式是參照源代碼,先仿照,後創新,慢慢有積累了,就可以收發自由了。沒關系的,慢慢來,不可能一步到位的。java確實很難學.

學習Java其實應該上升到如何學習程序設計這種境界,其實學習程序設計又是接受一種編程思想。每一種語言的程序設計思想大同小異,只是一些由語言特性的而帶來的細微差別比如Java中的Interface,你幾乎在以前的學習中沒有碰到過。以下我仔細給你說幾點:

1。我們必須明確一個大方向,也就是說現在面向對象的編程范疇。盡管人工智慧曾經有
所浪潮(看看Borland為什麼有Turbo Prolog),但未來5-10年工業界廣泛承認並接受的
將是面向對象式的編程。

2。工業界目前最流行的面向對象編程語言就是C++和Java。所以基本上鎖定這兩個方向就
可以了。而且完全可以同時掌握。

3。掌握Java的精華特性而且一定要知道為什麼。比如,Interface和multi-thread。用
interface是更好的多繼承的模型,而多線程則是設計到語言一級的重要特性。要完全理
解interface是為什麼,用多線程又有幾種常用的編程模型。

4。理解了語言的特性是為什麼了之後,就可以試著上升到設計這個層次,畢竟學習語言
是要用的。目前比較好的開發模式是採用自定向下的面向對象的設計,加上MVC的模式(
你可以看一下我介紹的關於MVC的內容)。首先要找出最頂層的對象(這往往是最難的)
,然後一層一層往下遞歸 ,記住每次應符合7+/-2的原則,因為我們人的短記憶就是這樣。一般有圖形用戶界面的 應從界面開始設計。

5。有了基本設計模型後,可以學一些設計模式(Design Pattern)。這是目前證明很有效
的。比如體系結構模式(Layering分層,Pipe/Filter管道或過濾器),設計模式(有很
多,比如對象池Object Pool、緩沖池Cache等),編程模式(比如Copy-on-Write)。懂了這些模式之後,就會對 系統的整體結構有很好的把握,而學術上也有傾向一個系統完全可以由各種模式組合而成 。前面提到的MT實際上就有好幾種模式,掌握後就不用自己花很多時間去試了。另外一個 很重要的領域就是並行 和分布式計算領域,大概有20種左右。

6。接下來就不能紙上談兵了,最好的方法其實是實踐。一般教科書上的例子並不能算是
實踐,只能算是讓你掌握語言特性用的。而提倡做實際的Project也不是太好,因為你還
沒有熟練的能力去綜合各種技術,這樣只能是你自己越來越迷糊。我認為比較好的方法是
找一些比較經典的例子, 每個例子比較集中一種編程思想而設計的,比如在我的實踐當中,我曾經學習過一個很經 典的例子就是用Java實現的HotDraw(源自SmallTalk),你可以用rolemodel或hotdraw在 搜索引擎上找一下,我記不大清楚了。好象rolemodel.com是個網站,上面有原代碼和一些基本設計的文檔。另 一個來源可以到www.umlchina.com是個不錯的文檔基地。從HotDraw上我學到了什麼是 Framework,以及如何用rolemodel的方式來構造,這樣我就可以應用到其他的地方。順便 說一句,這個例子你絕對不會覺得小,只會覺得大,並且他還是真正的商用的Framework 。

7。結合前面學到的設計模式你就可以很好的理解這些經典的例子。並且自己可以用他來
實現一些簡單的系統。如果可以對他進行進一步的修改,找出你覺得可以提高性能的地方
,加上自己的設計,那就更上一個層次了,也就會真正地感到有所收獲。

8。好象以上談的跟Java沒什麼關系,其實我們早就應該從單純的學習語言到真正的學習
好編程的領域。學習技術是沒有止境的,你學習第一種語言可能要半年時間,以後每種語
言都不應該超過兩個月,否則你會覺得學習語言是包袱,是痛苦。

9。學習是為了用的,是為了讓你的程序產生價值,把握住這個原則會比較輕松點。

我帶了JAVA班以後,來學習的同學很多都是初學者,一部分是急著找工作的,一部分是很感興趣的。他們都想在短短一兩個星期內掌握,這是不切實際的。而且這樣做很容易讓自己心浮氣燥,難以靜下心來思考。
JAVA是比較熱門,但我們自己不能頭腦發熱。我覺得所有初學者要學好JAVA或C或UNIX等任何一門計算機技術,一定要做到:

動手,動腦,動嘴,靜心。

其中動手是最為重要的了。很多人學計算機技術就是看書、聽課,當時是明白了,過後馬上就忘記。如果不願意敲鍵盤,就不如不學。即使有時候所敲的代碼你不明白,可以先運行,看看結果,增加感性認識,然後上升到理性的認識。特別是在大家做考題的時候,很多東西,概念,你只要隨便敲一個程序做做實驗就能很深刻的理解,但很多人都是不願意動手,這樣的學習效率能高嗎。

動腦,動嘴, 就是要多想問題,多思考,有不懂的問題就大聲說出來。很多人一是不動腦筋想問題,也就提不出問題。還有一些人怕自己提出的問題傻,怕人笑話。其實IT行業技術面很廣,工作了5、6年的人說出一些傻話來也是正常的。

然後靜心很重要。現在社會很浮躁,IT行業更浮躁,這種心態是學不好東西的。學會了基本的東西,高級的內容才容易掌握,否則就是本末倒置。當然有些人情況特殊,急著工作,那去學很多人JAVA做了幾年了,連多態,線程都沒搞明白。

JAVA中,有些概念不好理解怎麼辦,有學生說我就是不理解線程是怎麼回事。我覺得理解是需要時間的,一下不能理解,多看看,甚至多背幾遍就理解了。讀書千遍,其義自見,現在也管用。而且我覺得初學時候要不求甚解,多做,多敲代碼。等你做的足夠多的時候,見多識廣的時候,概念,理論的東西就很容易理解了。

JAVA的精華就在面向對象思想,好比指針是C語言的精華一樣,多花點心思就能掌握。

『貳』 java初級程序員應該看什麼書

學Java,有哪些推薦書籍可以看?很多人都會有這樣的疑問。如果你初出茅廬,對Java感興趣,在這行深鑽研,那麼這些書絕對不能少;如果你已經是個Java工程師,那麼這些書可以幫助你在Java的路上更加精進。一起來看看吧!

四大名著之《Java核心技術(第10版)》
提起Java入門必讀,四大名著是少不了的。《Java 核心技術》就是其中之一,分卷一、卷二兩冊,卷一講基礎,卷二為進階。全書對於Java語言的核心概念、語法、重要特性和開發方法講解地非常細致,可以說是一部有關Java的網路全書。
四大名著之《EffectiveJava中文版(第 2 版)》
「神書」、「整本書都是精華」、「內容永不過時」、「Java 程序員必讀」……這些標簽都是屬於《Effective Java中文版》的。
這本書不是講理論基礎的,而是講實戰的。書中介紹了78條極具實用價值的經驗規則,涵蓋了大多數開發人員每天所面臨的問題的解決方案,並且通過代碼例子進一步進行佐證,讓你知其然,也知其所以然。
哪怕不是Java程序員,也能買來看看,書中絕妙的編程觀是跨語言、跨平台的。
四大名著之《Java 編程思想(第 4 版)》
這同樣是一本Java領域的經典書籍,從Java編程的基礎知識點開始講起,慢慢深入,一直到Java的高級特性。作者用了大量通俗易懂的代碼對理論進行佐證,讓讀者在實際操作中可以深入理解操作符、枚舉類型、介面等相關知識。
這是一本被廣大讀者評價為「不管什麼時候閱讀都會有收獲」的書,不論你是否剛接觸 Java,都可以在閱讀中獲得啟迪。
《深入理解Java虛擬機:JVM 高級特性與最佳實踐(第 2 版)》
用Java卻不懂JVM是說不過去的,但市面上有關JVM 的書很少,這本書更是少有的國內講解此方面備受好評的書,甚至可以說是JVM書籍最好的讀物之一。
本書整體內容更偏向實戰,難易適中。從內存管理、執行子系統、程序編譯與優化、高效並發等核心主題講解JVM。第2版根據JDK1.7進行了內容升級,整體上不光適合入門,而且對於已經接觸JVM的人來說,也會常讀常新。
《Java語言程序設計(基礎篇)(原書第 10 版)》
這應該是很多程序員,尤其是Java程序員倍感親切的書,因為這本書可以說是他們當中很多人的入門初心。
本書從最基本的程序理論知識出發,哪怕你完全沒有Java基礎,也可以通過這本書了解Java基本的程序設計、語言結構、面對對象程序設計等知識。書中還配了大量的代碼和課後習題,讓讀者在了解有關Java的基礎知識的時候,也能進行實踐深入理解。
非常適合零基礎、Java 和編程愛好者來讀。
《Java 高並發編程詳解:多線程與架構設計》
全書主要分為四個部分:第一部分主要闡述Thread的基礎知識;第二部分引入了 ClassLoader; 第三部分詳細、深入地介紹volatile關鍵字的語義;第四部分也是最重要的一部分,站在程序架構設計的角度深入講解了如何設計高效靈活的多線程應用程序。
上述就是幾本學Java要看的書籍。目前Java軟體工程師的就業機會和人才需求量是非常大的。再加上Java程序員不僅IT專業企業需要,廣大的非IT企業也需要,前景是非常樂觀的。

『叄』 初學java應從何開始謝謝

其實Java並沒有想像中的那麼難,首先想要入這個行,要做好一個心理准備,那就是你想走遠點,就得不間斷的去學習,去汲取知識,前期不能怕辛苦,不要閑下來就打LOL、吃雞、王者農葯,有空就得多看看各種開源項目的代碼,API的設計方式,各大網站的設計架構,理解各個環節的作用。補齊自己的知識視野。
當然這個行業也並不是什麼門檻都沒有,不要再私信我初中生、高中生、中專生能不能學習Java了。反正我個人是認為不可行的,或許你可以去問問其他大神? 或許他們會覺得可以的。
下圖是我更新過的自學表,分別分為4個階段。按照這四個階段平穩的去學習並在每一個階段做完相應的項目和練習,找一份工作是完全沒有問題的 。當然,這里有個前提是你能學的下去,且通過查看網上的資料或視頻能起碼看得懂第一階段的內容。如果第一階段全職學習耗時2個月以上的話,我個人建議你就需要仔細考慮考慮是否真的要人這個行業吧。因為這個時間節點還沒能夠搞明白第一階段的內容的話,從我個人的經驗來講可能後續走起來會更加吃力。

『肆』 java初、中、高級開發工程師是怎麼區分的

初級:程序員。應屆畢業一般就是初級了。


中級:軟體設計師。工作一年到兩年就可以是中級了,工作一般會有一萬左右。


高級:系統分析師。高級工程師,理論上也沒什麼,但是得有一個產品帶去跳槽,能力不一定很強的。高級的話,看公司,一萬多到2,3萬一月。



『伍』 java 初始化是做什麼的

關於Java初始化,有多文章都用了很大篇幅的介紹。經典的<>更是用了專門的
一章來介紹Java初始化。但在大量有代碼實例後面,感覺上仍然沒有真正深入到初始化的本質。

本文以作者對JVM的理解和自己的經驗,對Java的初始化做一個比深入的說明,由於作者有水平限制,
以及JDK各實現版本的變化,可能仍然有不少錯誤和缺點。歡迎行家高手賜教。

要深入了解Java初始化,我們無法知道從程序流程上知道JVM是按什麼順序來執行的。了解JVM的執行
機制和堆棧跟蹤是有效的手段。可惜的是,到目前為止。JDK1。4和JDK1。5在javap功能上卻仍然存在
著BUG。所以有些過程我無法用實際的結果向你證明兩種相反的情況(但我可以證明那確實是一個BUG)

<>(第三版)在第四章一開始的時候,這樣來描述Java的初始化工作:
以下譯文原文:
可以這樣認為,每個類都有一個名為Initialize()的方法,這個名字就暗示了它得在使用之前調用,不幸
的是,這么做的話,用戶就得記住要調用這個方法,java類庫的設計者們可以通過一種被稱為構造函數的
特殊方法,來保證每個對象都能得到被始化.如果類有構造函數,那麼java就會在對象剛剛創建,用戶還來
不及得到的時候,自動調用那個構造函數,這樣初始化就有保障了。

我不知道原作者的描述和譯者的理解之間有多大的差異,結合全章,我沒有發現兩個最關鍵的字""
和""。至少說明原作者和譯者並沒有真正說明JVM在初始化時做了什麼,或者說並不了解JVM的初始化
內幕,要不然明明有這兩個方法,卻為什麼要認為有一個事實上並不存在的"Initialize()"方法呢?

""和""方法在哪裡?
這兩個方法是實際存在而你又找不到的方法,也許正是這樣才使得一些大師都犯暈。加上jdk實現上的一
些BUG,如果沒有深入了解,真的讓人摸不著北。

現在科學體系有一個奇怪的現象,那麼龐大的體系最初都是建立在一個假設的基礎是,假設1是正確的,
由此推導出2,再繼續推導出10000000000。可惜的是太多的人根本不在乎2-100000000000這樣的體系都
是建立在假設1是正確的基礎上的。我並不會用「可以這樣認為」這樣的假設,我要確實證明""
和""方法是真真實實的存在的:

packagedebug;
publicclassMyTest{
staticinti=100/0;
publicstaticvoidmain(String[]args){
Ssytem.out.println("Hello,World!");
}
}

執行一下看看,這是jdk1.5的輸出:

java.lang.ExceptionInInitializerError
Causedby:java.lang.ArithmeticException:/byzero
atdebug.MyTest.(Test.java:3)
Exceptioninthread"main"

請注意,和其它方法調用時產生的異常一樣,異常被定位於debug.MyTest的.

再來看:

packagedebug;
publicclassTest{
Test(){
inti=100/0;
}
publicstaticvoidmain(String[]args){
newTest();
}
}

jdk1.5輸入:
Exceptioninthread"main"java.lang.ArithmeticException:/byzero
atdebug.Test.(Test.java:4)
atdebug.Test.main(Test.java:7)

JVM並沒有把異常定位在Test()構造方法中,而是在debug.Test.。

當我們看到了這兩個方法以後,我們再來詳細討論這兩個「內置初始化方法」(我並不喜歡生造一些
非標準的術語,但我確實不知道如何規范地稱呼他們)。

內置初始化方法是JVM在內部專門用於初始化的特有方法,而不是提供給程序員調用的方法,事實上
「<>」這樣的語法在源程序中你連編譯都無法通過。這就說明,初始化是由JVM控制而不是讓程序員
來控制的。

類初始化方法:
我沒有從任何地方了解到的cl是不是class的簡寫,但這個方法確實是用來對「類」進行初
始化的。換句話說它是用來初始化static上下文的。

在類裝載(load)時,JVM會調用內置的方法對類成員和靜態初始化塊進行初始化調用。它們
的順序按照源文件的原文順序。
我們稍微增加兩行static語句:
packagedebug;
publicclassTest{
staticintx=0;
staticStrings="123";
static{
Strings1="456";
if(1==1)
thrownewRuntimeException();
}
publicstaticvoidmain(String[]args){
newTest();
}
}
然後進行反編譯:
javap-cdebug.Test

Compiledfrom"Test.java"
publicclassdebug.Testextendsjava.lang.Object{
staticintx;

staticjava.lang.Strings;

publicdebug.Test();
Code:
0:aload_0
1:invokespecial#1;//Methodjava/lang/Object."":()V
4:return

publicstaticvoidmain(java.lang.String[]);
Code:
0:new#2;//classdebug/Test
3:p
4:invokespecial#3;//Method"":()V
7:pop
8:return

static{};
Code:
0:iconst_0
1:putstatic#4;//Fieldx:I
4:ldc#5;//String123
6:putstatic#6;//Fields:Ljava/lang/String;
9:ldc#7;//String456
11:astore_0
12:new#8;//classjava/lang/RuntimeException
15:p
16:invokespecial#9;//Methodjava/lang/RuntimeException."":()V
19:athrow

}
這里,我們不得不說,JDK在javap功能上的實現有一個BUG。static段的16標號,那裡標識了異常
的位置發生在""方法中,而實際上這段程序運行時的輸出卻是:

java.lang.ExceptionInInitializerError
Causedby:java.lang.RuntimeException
atdebug.Test.(Test.java:8)
Exceptioninthread"main"

但我們總可以明白,類初始化正是按照源文件中定義的原文順序進行。先是聲明

staticintx;

staticjava.lang.Strings;

然後對intx和Strings進行賦值:
0:iconst_0
1:putstatic#4;//Fieldx:I
4:ldc#5;//String123
6:putstatic#6;//Fields:Ljava/lang/String;
執行初始化塊的Strings1="456";生成一個RuntimeException拋
9:ldc#7;//String456
11:astore_0
12:new#8;//classjava/lang/RuntimeException
15:p
16:invokespecial#9;//Methodjava/lang/RuntimeException."":()V
19:athrow

要明白的是,""方法不僅是類初始化方法,而且也是介面初始化方法。並不是所以介面
的屬性都是內聯的,只有直接賦常量值的介面常量才會內聯。而

[publicstaticfinal]doubled=Math.random()*100;

這樣的表達式是需要計算的,在介面中就要由""方法來初始化。

下面我們再來看看實例初始化方法""

""用於對象創建時對對象進行初始化,當在HEAP中創建對象時,一旦在HEAP分配了空間。最
先就會調用""方法。這個方法包括實例變數的賦值(聲明不在其中)和初始化塊,以及構造
方法調用。如果有多個重載的構造方法,每個構造方法都會有一個對應的""方法。

同樣,實例變數和初始化塊的順序也是按源文件的原文順序執行,構造方法中的代碼在最後執行:

packagedebug;
publicclassTest{
intx=0;
Strings="123";
{
Strings1="456";
//if(1==1)
//thrownewRuntimeException();
}

publicTest(){
Stringss="789";
}

publicstaticvoidmain(String[]args){
newTest();
}
}

javap-cdebug.Test的結果:

Compiledfrom"Test.java"
publicclassdebug.Testextendsjava.lang.Object{
intx;

java.lang.Strings;

publicdebug.Test();
Code:
0:aload_0
1:invokespecial#1;//Methodjava/lang/Object."":()V
4:aload_0
5:iconst_0
6:putfield#2;//Fieldx:I
9:aload_0
10:ldc#3;//String123
12:putfield#4;//Fields:Ljava/lang/String;
15:ldc#5;//String456
17:astore_1
18:ldc#6;//String789
20:astore_1
21:return

publicstaticvoidmain(java.lang.String[]);
Code:
0:new#7;//classdebug/Test
3:p
4:invokespecial#8;//Method"":()V
7:pop
8:return
}

如果在同一個類中,一個構造方法調用了另一個構造方法,那麼對應的""方法就會調用另一
個"",但是實例變數和初始化塊會被忽略,否則它們就會被多次執行。

packagedebug;
publicclassTest{
Strings1=rt("s1");
Strings2="s2";

publicTest(){
s1="s1";
}
publicTest(Strings){
this();
if(1==1)thrownewRuntime();
}
Stringrt(Strings){
returns;
}
publicstaticvoidmain(String[]args){
newTest("");
}
}

反編譯的結果:
Compiledfrom"Test.java"
publicclassdebug.Testextendsjava.lang.Object{
java.lang.Strings1;

java.lang.Strings2;

publicdebug.Test();
Code:
0:aload_0
1:invokespecial#1;//Methodjava/lang/Object."":()V
4:aload_0
5:aload_0
6:ldc#2;//Strings1
8:invokevirtual#3;//Methodrt:(Ljava/lang/String;)Ljava/lang/String;
11:putfield#4;//Fields1:Ljava/lang/String;
14:aload_0
15:ldc#5;//Strings2
17:putfield#6;//Fields2:Ljava/lang/String;
20:aload_0
21:ldc#2;//Strings1
23:putfield#4;//Fields1:Ljava/lang/String;
26:return

publicdebug.Test(java.lang.String);
Code:
0:aload_0
1:invokespecial#7;//Method"":()V
4:new#8;//classjava/lang/RuntimeException
7:p
8:invokespecial#9;//Methodjava/lang/RuntimeException."":()V
11:athrow

java.lang.Stringrt(java.lang.String);
Code:
0:aload_1
1:areturn

publicstaticvoidmain(java.lang.String[]);
Code:
0:new#10;//classdebug/Test
3:p
4:ldc#11;//String
6:invokespecial#12;//Method"":(Ljava/lang/String;)V
9:pop
10:return

}

我們再一次看到了javap實現的bug,雖然有一個"":(Ljava/lang/String;)V簽名可以說明
每個構造方法對應一個不同,但Runtime異常仍然被定位到了""()V的方法中:
invokespecial#8;//Methodjava/lang/RuntimeException."":()V,而在main方法中的
調用卻明明是"":(Ljava/lang/String;)V.

但是我們看到,由於Test(Strings)調用了Test();所以"":(Ljava/lang/String;)V不再對
實例變數和初始化塊進次初始化:

publicdebug.Test(java.lang.String);
Code:
0:aload_0
1:invokespecial#7;//Method"":()V
4:new#8;//classjava/lang/RuntimeException
7:p
8:invokespecial#9;//Methodjava/lang/RuntimeException."":()V
11:athrow

而如果兩個構造方法是相互獨立的,則每個構造方法調用前都會執行實例變數和初始化塊的調用:

packagedebug;
publicclassTest{
Strings1=rt("s1");
Strings2="s2";
{
Strings3="s3";
}
publicTest(){
s1="s1";
}

publicTest(Strings){
if(1==1)
thrownewRuntimeException();
}

Stringrt(Strings){
returns;
}

publicstaticvoidmain(String[]args){
newTest("");
}
}

反編譯的結果:

Compiledfrom"Test.java"
publicclassdebug.Testextendsjava.lang.Object{
java.lang.Strings1;

java.lang.Strings2;

publicdebug.Test();
Code:
0:aload_0
1:invokespecial#1;//Methodjava/lang/Object."":()V
4:aload_0
5:aload_0
6:ldc#2;//Strings1
8:invokevirtual#3;//Methodrt:(Ljava/lang/String;)Ljava/lang/String;
11:putfield#4;//Fields1:Ljava/lang/String;
14:aload_0
15:ldc#5;//Strings2
17:putfield#6;//Fields2:Ljava/lang/String;
20:ldc#7;//Strings3
22:astore_1
23:aload_0
24:ldc#2;//Strings1
26:putfield#4;//Fields1:Ljava/lang/String;
29:return

publicdebug.Test(java.lang.String);
Code:
0:aload_0
1:invokespecial#1;//Methodjava/lang/Object."":()V
4:aload_0
5:aload_0
6:ldc#2;//Strings1
8:invokevirtual#3;//Methodrt:(Ljava/lang/String;)Ljava/lang/String;
11:putfield#4;//Fields1:Ljava/lang/String;
14:aload_0
15:ldc#5;//Strings2
17:putfield#6;//Fields2:Ljava/lang/String;
20:ldc#7;//Strings3
22:astore_2
23:new#8;//classjava/lang/RuntimeException
26:p
27:invokespecial#9;//Methodjava/lang/RuntimeException."":()V
30:athrow

java.lang.Stringrt(java.lang.String);
Code:
0:aload_1
1:areturn

publicstaticvoidmain(java.lang.String[]);
Code:
0:new#10;//classdebug/Test
3:p
4:ldc#11;//String
6:invokespecial#12;//Method"":(Ljava/lang/String;)V
9:pop
10:return

}

『陸』 java初學者,應該如何學習java呢

初學Java編程時,大家通常會對學習方法、知識難點做一個了解,但學一項技能不僅僅只是這樣,學習過程少不了我們的親身參與,那我們對自己的學習條件了解是否充分?心理上思想上是否做好了准備?要准備學到哪種程度?···這些其實都是學習編程時需要注意到的。

學Java編程的目的?

知乎無數的優秀學習類回答、技術大佬的分享,在開頭的第一段都會提到的,是想清楚做某事的目的是什麼。千萬別覺得這樣很老套很無用,明確學習目的其實就是在做思想上的准備,不然在後期非常容易缺乏堅持下去的信念。

因為沒有描述,就假設題主同學學習Java是為了從事相關的開發工作,去發現一下真實的需求就能知道,「找工作」其實都是表象,真正的本質是「高薪」,是「掙錢」是「有發展」。那麼「薪資高」就是學編程的目的之一。

稍微多想想我們就會有接下來的問題:企業招聘的基本要求是哪些?需要達到什麼樣的技術水平薪資才高?薪資比較高的Java崗位是哪些?大公司都需要哪種技術人才?

問題比較多也沒關系,接下來就是一步步理清楚。

有沒有自己的學習目標?

學習目標圍繞學習目的而定,別太貪心什麼都想學,學不完的,太高深的概念對於初學者也是有毒的。

高薪資的崗位需要的技術能力都在Java的知識體系中了,我們從整體到局部開始,先了解Java的大致全貌--Java是用來做什麼的。

按Java的應用場景來分有三類:J2SE,J2ME和J2EE,這也就是SunONE(Open NetEnvironment)體系。

J2SE就是Java2的標准版,主要用於桌面應用軟體的編程;

J2ME主要應用於嵌入式系統開發,如手機和PDA 的編程;

J2EE是Java2的企業版,主要用於分布式的網路程序的開發,如電子商務網站,OA系統和ERP系統。接著是局部--比如其中涉及J2EE方向的是什麼崗位,需要會什麼?且薪資是多少?


在此場長還要補充兩句,對於程序員來說,學歷高低不是唯一標准,但絕對是加分項,能提升學歷就盡快提升,不要讓它在後期成為你職業發展的阻礙。

以上從「整體到局部」的好處是,不僅為你的學習找到重心,還是在定位你的技術重心,也將會成就你寫在簡歷中的那句「本人擅長XX開發,熟悉XXX技術,且精通XXXX,在XXX有豐富經驗。」

有沒有一個學習計劃?

有了學習目的,找到了一個高薪的技術方向和技術重點,有了這些信息,你就可以開始制定學習計劃了。

一個科學而合理的學習計劃,關鍵並不是面面俱到的詳細,而是「極高的可執行性」,要避免看到自己定的計劃就頭疼,無法完成這樣的情況,就要注意別一開始就把自己逼得太狠。

記得圍繞著學習目標開展學習,專注能保持高效率,這也能減少你的學習時長,還能保證學習效果。

最後,

編程講的是多多練習沒錯,但別忘了編程背後是思維,是邏輯,是解決問題的思路,希望在學編程的你,能把編程看成一種智力的游戲,在提升自己心智的同時,看到一個奇特而有趣的代碼世界。

祝編程愉快。

『柒』 java初學者怎麼入門啊

俗話說態度決定一切,一個人的學習態度相當重要,而一個良好的態度不僅會提高你的效率,而且還會影響效果。

學習編程是一個漫長而痛苦的過程,需要持之以恆的耐心,千自萬不能急於求成。對於一名初學者來說,最重要的還是打好基礎。

首先關於自學,提幾條建議,望採納!

  1. 找一個行業當中的師傅進行規劃和指導。

  2. 每天規劃好學習時間,不要中斷。

  3. 先掌握了解知識體系後編寫項目,邊抓細節。

另外,我從個人角度分為三個階梯: 初學,入門,高手

第一: 初學 (理論知識階段)

很多同學剛剛入門學習java,看書,或者看視頻。這個階段是積累理論知識的時候,相對比較容易,一個小知識點,信息量少,跟著老師的思路走就可以。

在這個階段,很多同學學得很快,感覺編程好簡單。

隨著學習的深入,大多數同學會產生混亂。 為什麼? 所有的技術背後都有原理,前面都有應用場景,不同應用場景有不同使用方法。 信息量逐級增加。

信息量逐級增大後,會有什麼問題?

  • 學到後面忘記前面。

  • 新技術不斷出現,感覺永遠學不完。 喪失興趣或信心。

理論知識階段,更重要的是理解原理和規律, 知識點的細節記不住可後面查找。學習方法更重要的是 交流討論,理解和總結。 多問為什麼是關鍵!

第二: 入門 (熟練度)

一個項目從0到1的過程才是最寶貴的,也是初學者提升最大的部分。 但從書本或者視頻中,很難學習這個過程。

技術的應用能力換句話說是 技術的分解排序能力, 當遇到一個需求,該如下實現?

基本的思路是 把需求分解成原子操作。 原子操作代表開發當中的基本操作,也就是在知識點當中學到的,比如資料庫操作,sql,框架的基本使用等等。

如果能把需求分解為原子操作序列,開發完成只是時間快慢的問題。往往剛剛開始學習編程的同學,不善於或者懶得去思考。畢竟看視頻是被動的,分析問題是主動思考。學習只是看看視頻,本質上是思考的懶惰。

所以需要找大量的練習和項目案例進行實踐!!!

第三: 高手(業務和性能)

程序員是把理論知識組合應用起來解決用戶的問題。(或者提高用戶的效率)

第三個等級的知識更加多元化,不同行業涉及不同的領域知識,信息量也是增大。

  • 業務解決用戶的問題,可以賺錢。

  • 性能用最小的資源,解決用戶的問題,可以省錢。

所以在企業開發中,需要考慮更多和成本,時間,用戶等相關的問題。

總結: 掌握理論知識後,需要大量的代碼去實踐,才算入門。

分享下學習路線,供你參考一下!



希望能幫到你,望採納!!

『捌』 JAVA初學者,該怎麼學習JAVA

學習java需要注意的地方,以我多年的經驗 我來為你解答:

學習Java的過程中一定要多敲代碼不要讓手閑著,提高自己的代碼量,多敲代碼你才能發現代碼中的錯誤,以及需要改正的地方。代碼量決定啦你的上手速度,當初入公司時,良好的代碼量可以讓你更熟悉公司流程;

學習Java不要一個人奮斗,學習編程語言自己獨自悶頭學習,並不能達到最佳的學習氛圍,許多的BUG和知識難點會讓你耽誤很長的時間,重要的知識是需要金錢的付出,從網上找一些相對應的知識點,通過付費來獲取自己需要的知識,當然大牛的交流群、博客里也可蹲點獲取資料;

對於零基礎的小白而言,學習Java一定不要求快,要求穩。系統的學習全部的內容,基礎知識尤為重要。

學習Java要有一個詳細的學習計劃以及步驟,這個是需要自己總結一下,要有自己學習的目標!

關於java學習路線以及學習資料,我這里簡單推薦一下吧,可以參考一下:

學習路線圖:

學習資料匯總:網頁鏈接

『玖』 java初學者怎麼入門

學習JAVA應該從哪一部開始很多人都很迷茫,下面是我整理的學習路線和方向一共四點。希望對你有幫助!

①【學習語言基礎】

很顯然,掌握語言基礎是第一步。如果你不了解基礎知識,那麼你就不知道自己是否做錯了或者接下來該怎麼做。當然,這並不是要求你把所有的基礎知識都記住,比如所有的 Java關鍵字、核心概念或者基本編碼技術等。

②【開始編寫一些小程序】

如果你確信自己對大多數的基礎知識和概念足夠熟悉,並且能夠以某種方式將它們聯系起來,那麼你就可以進行下一步了,你可以開始嘗試編寫一些非常基本的 Java 程序,比如列印 hello world、實現簡單的加減法,等等。

③【 使用 Java API 編寫高級程序】

當你完成了大部分的基礎程序編寫,並且掌握了基本的編程技巧之後,就可以進行下一步了。我會建議你努力學習 Java 集合和 Java IO 內部的 API。你需要熟悉這些 API 提供的各種類和介面,並利用它們來創建程序。需要注意的是,你應該查找已經存在的 API 和方法來實現功能,而不是自己實現這些邏輯。你的任務是熟悉這些 API,因此你只能夠在這些已有的 API 中尋求解決方案。

④【編寫桌面程序和 Web 應用】

通過這一步的學習,面對任何 Java 面試你都能夠信心滿滿,當你討論 Java 相關的話題時也能夠充滿自信。你需要至少編寫一個 Java 桌面或者 GUI 應用程序,比如計算器,然後再編寫一個 Web 應用程序,比如醫院管理程序。在前面的學習中,你已經掌握了最基本的 Java 知識,現在你需要去探索,然後編寫出這兩個應用程序。

重要的是,它可以幫助你養成不惜一切代價完成一項任務的好習慣。這種持之以恆的態度對你職業生涯的長遠發展是非常重要的。

最後,也是最關鍵的一點,就是要多看視頻教程,這一類的資料很多,可以自己搜索看一下,B站上面很多有關java的學習資料,我冒昧的推薦一個可以參考一下:網頁鏈接

『拾』 java初學者,應該怎麼去學習

俗話說態度決定一切,一個人的學習態度相當重要,而一個良好的態度不僅會提高你的效率,而且還會影響效果。

學習編程是一個漫長而痛苦的過程,需要持之以恆的耐心,千自萬不能急於求成。對於一名初學者來說,最重要的還是打好基礎。

建議學習Java之前先了解這些:

第一:在如今這個Java的市場下,你如果太過於著急找工作而去學習,你一定找不到,有一個很簡單的道理,任何東西求快沒有用,首先你要把技術學的熟練。而不是指望自己看看視頻,就能拿到高薪的工作。

第二:如果沒有一套系統的學習路線和方案,這看看,那裡看看,依舊學了之後還是浪費時間,根據我的學習經歷來看,任何人學習任何東西,需要一氣呵成,在這段時間內,學習什麼就一刻都不能鬆懈,今天看點視頻,明天有事,不看了,這樣沒啥意義。

第三:在如今這個IT市場,Java開發工作競爭越來越激烈,如果你是小白轉行的,那麼建議你找個好的機構培訓學習下,不要心疼錢,你要知道有付出才有回報,投資自己什麼時候都是對的選擇,先找些基礎資料自己自學一段時間看看到底適合自己不,不要盲目的學習。

第四:如果你在學習中沒有很多的代碼量的話,不多去做案例的話,我個人覺得學了跟沒學一樣,第二次你見到它可能還是不認識它。最好是有個問的人,一個外行想通過自學Java開發區找工作,太難了,尤其是在這個行情中。既然學習就學好,不要三天打魚兩天曬網的,還不如不學習了,要謙虛,不要學點就自大。

第五:作為一個Java初學者,我們應該需要知道從零基礎到就業,需要掌握的技術知識點有哪些,這個時候我建議你上各大招聘平台看下,看下現在的崗位需求是什麼,以此這就是我們學習的目標。

所有語言的知識體系分為三大塊:

  • 數據存儲 (內存,文件,資料庫,分布式,集群, 關系型 ,非關系型 。。)

  • 業務邏輯 (業務需求,語言語法,演算法,類庫框架,性能優化等)

  • 信息交互(展示)(多端,app,小程序,公眾號,移動端,pc端,web開發等。。)

這三塊知識作為學習來說,可以有側重,但是不能有某一塊完全不懂。

在這里推薦您了解下我們的免費學習資源「Java300集」,可在B站搜索我們官方賬號(尚學堂)進行學習!

另給你分享一個Java的學習路線:

希望能幫到你,望採納!!

熱點內容
i西安編程 發布:2024-04-25 16:55:35 瀏覽:262
核磁看壓縮 發布:2024-04-25 16:37:22 瀏覽:431
訪問不上光貓 發布:2024-04-25 16:13:44 瀏覽:319
部隊電腦配置有哪些 發布:2024-04-25 16:13:43 瀏覽:970
霍曼密碼鎖什麼價位 發布:2024-04-25 16:08:01 瀏覽:750
ftp雙機熱備 發布:2024-04-25 16:03:48 瀏覽:360
我的世界伺服器限制模組 發布:2024-04-25 15:55:32 瀏覽:888
平板電腦能連接雲伺服器嗎 發布:2024-04-25 15:54:05 瀏覽:937
多看怎麼上傳雲 發布:2024-04-25 15:45:31 瀏覽:39
山東ftp 發布:2024-04-25 15:44:46 瀏覽:261