一、先來回答java的前景,從以下幾點進行分析:
1,市場:
首先java有非常廣泛的應用市場,它的生態系統幾乎涵蓋了目前市面上所有的軟硬件,java幾乎是萬能的,你能想到的,java基本都能實現(雖然吹的有點大,但不可否認)。
web開發:
能做大型的互聯網網站如,京東,淘寶,人人網、去哪兒網、美團等。
java在開發高訪問、高并發、集群化的大型網站方面有很大的優勢。
移動端開發:
目前手機上所有的APP后臺代碼及部分移動端頁面java是都能夠做到的。
客戶端開發:
主要面向政府、事業單位和大型企業,如醫療、學校、OA、郵箱、投票、金融、考試、物流、礦山等信息方面的系統。這些應用在我們生活中其實隨處可見,比如醫院的掛號系統、公司的打卡系統、物流系統等。
2,需求
從當前最新boss招聘來看java的需求量是非常大的,但是這個需求是有前提條件的,那么必須是開發3年以上的開發工程師,有人說java已經飽和了,飽和只是針對那些剛學java不久沒有任何開發經驗的工程師而言的,是不是說初學者就找不到java開發的相關工作了,NO!有實習崗位。
這只是針對一線城市而言,相對于二三線城市來說對于實際開發經驗是稍微的放松的。
3,穩定
第一個問題已經說過了,java是有一個龐大的生態系統,它的覆蓋范圍非常廣,而且已經連續10幾年位居開發語言的榜首,所以java是相對于其他語言來說,非常穩定的。
二、接下來說說java好不好自學?
自學需要克服一下幾點,如果能按照自己的規劃的去學習成功的幾率會更大。
1, 惰性:很大一部分人學習都是一時想到了才去學習的,但是能堅持下來應該沒有幾個,一開始可能興趣很高,前幾天還在堅持學習,但是后面的時間就慢慢的堅持不下去了,最后干脆就扔掉了。
2, 急于求成:在線看視頻可以讓你很快的學完整個課程,但是回頭想想,學習之后的效果又是如何呢?可能只是看視頻,而沒有動手去寫代碼,這樣學習的成果幾乎是0.
3, 沒有時間或者壓力大:沒有時間可能你還在上班或者你在干別的事情給自己找的一個借口,時間不是沒有而是你有沒有利用起來,現在是互聯網時間,想要學習真的很容易的,可以利用自己碎片化的時間去學習,比如坐公交或者坐地鐵,這樣你有一大把的時間去學習,就看你能不能利用起來。壓力大可能是因為你目前收入已經不滿足你的消費了,所以覺得壓力大,想找個薪資高的來彌補,但是想法是好的,你得去做,一步一步的去做。
三、最后附上java學習路線
1、java基本語法(1 編寫 HelloWorld、2 常量、3 變量、4 數據類型、5 運算符、6 方法、7 流程控制語句、8 IDEA使用:目前企業使用最多開發工具、9 數組)
2、面向對象(1 類、2 對象、3 封裝、繼承、多態、4 構造器、5super、this、6 接口、抽象類、7 權限修飾符、8 內部類、9 Random、ArrayList、String、Arrays、Math)
3、API(常用API:1 Date、2 DateFormat、3 Calendar、4 System、5 StringBuilde)
4、集合(1 Collection、2 泛型、3 List、4 Set、5 Collections、6 Map、7 HashMap)
5、異常(1 異常體系、2 異常分類、3 聲明拋出捕獲異常、4 自定義異常)
6、多線程(1 線程概念、2 線程同步、3 Lock、4 線程生命周期、5 線程池)
7、Lambda表達式(1 函數式思想概述、2 Lambda標準格式、3 Lambda語法與注意事項)
8、IO流(1 文件、2 字節流、字符流、3 轉換流、高效流)
9、網絡編程(1 網絡編程三要素、2 Socket原理機制、3 UDP傳輸、4 TCP傳輸)
10、數據庫(1 mysql、2 jdbc、3 連接池、4 JdbcTemplate )
11、前端技術(1 html5、2 css、3 javascript、4 bootstrap)
12、linux(1 linux安裝、2 目錄操作、3 文件操作、4 網絡操作等)
13、nginx( nginx安裝、配置、部署)
14、xml與(1 xml基本語法、2 約束)
15、jsonp( 1 jsoup概述、2 jsoup作用使用、3 xpath)
16、Servlet(1 tomcat、2 request、response、3 cookie、session、4 jsp、el、jstl、Filter)
17、web異步開發(1 jquery3、2 ajax、3 json)
18、redis(1 nosql介紹、2 redis數據類型、3 常用命令、4 jedis)
19、maven(1 maven概念與作用、2 idea集成maven、3 maven常用命令、4 依賴管理)
20、spring(1 spring體系結構、2 spring配置、3 bean管理、 4 IOC/DI、AOP、5 事務管理、6 spring5新特性 )
21、spring mvc(1 springmvc概述、2 控制器、3 常用注解、4 參數綁定、5 json數據交換、6 resutful、7 攔截器、8 文件上傳、9 異常處理)
22、mybatis(1 自定義mybatis框架、2 mybatis入門、3 架構分析、4 常用API、5 配置與事務管理、6 mapper代理、7 數據封裝、8 動態sql、9 關聯查詢、10 性能優化、11 查詢緩存、12 SSM整合)
23、拓展(1 Oracle、2 springboot、3、spring data jpa、4 springcloud、5 vue.js 、6 分布式服務、7 中間件 、8 高并發 、9 微服務技術 等等)
以上路線2-4月就可以學完,如需要定制學習路線請關注,私信我。
-----------------------------更新------------------------------------
最近大家最大的問題就是說2-4個月是否能學完的問題。我在評論中說2個月每天需要花費8個小時,4個月每天需要花費4小時。
這么說不是沒有依據,反對可以,客觀的分析就行了,沒必要言語過激,你說2個月每天花費8個小時或者4個月每天花費4個小時學不完,即使學完了也達不到效果,那只是你沒有正確的學習方法,沒有掌握好的學習方式,沒有掌握開發語言應該怎么去學,而是和學習其他知識一樣的方法去學習開發,當然你是學不會的,所以不要妄自評價。