-
1 # 碼起未來
-
2 # 鳩摩智會武功
看在你一個大一學生迷茫的份上,簡單指點你一下,等下記得點贊轉發。首先只是學了一下sb 是不夠的,僅僅是知道了微服務怎麼搭建也是不夠的,首先你要有很好的java基礎,常見的資料結構和演算法是必須要涉及的,接著必須知道至少一種RMDB,例如mysql,接著你要知道如何利用mysql來儲存自己的資料,那就是必須要會mybatis。知道了springboot,那spring是必須要會的,在這個基礎上 可以試著接觸一下 springcloud ,用這個來重新搭建你的微服務 ,知道其中的服務註冊 服務降級 服務匯流排 服務治理等等 熔斷機制之類的。ok 到了這裡還不要著急,也不要飄起,你可以試著學一下docker,使用docker來把你的釋出包容器化,容器化完了之後 你可能會覺得TM都是手動 煩死了,接著去接觸一下k8s ,解放一下自己。到了這裡 基本上你的微服務已經有模有樣了 是不是可以了呢 ,並不是,這時候你就得好好檢查一下你的整個架構設計了,是不是 符合開閉原則 ,併發流量來了你的服務能hold住嗎? 是不是需要考慮快取,如何快速scale ,這時候 nginx redis 又來了,你要深入進去,會發現 臥槽 還有這麼多,是不是這些搞定就完了呢? 並不是哈哈,就算你抗住了併發 拿資料儲存呢? 資料庫的分表分庫 水平擴充套件 又來了,快取的分散式又來了,當真正的併發來臨的時候 是不是要考慮MQ解耦,MQ又來了,一切塵埃落定之後,你會發現臥槽 不光要儲存資料,還得分析資料啊,這資料都TM幾百GB甚至幾百T 我TM怎麼分析,大資料分析又得考慮,flink 又要涉及,好了,等你分析完了 想著可以了吧 TM 新特性又出來了,接著學吧。
-
3 # 阿邁達聊技術
能在大一就可以搭建起SpringBoot,那說明你還是具有一定的程式設計基礎的。題主所說的想從底層學起,說明題主可能只是按照SpringBoot教程跑通了簡單的SpringBoot Demo,這離成為一名優秀的Java工程師還有很長的一段距離。那要想成為一名優秀的Java工程師,我們還需要學習那些”底層“知識呢?
1、工具工具分為兩個部分,開發工具和專案構建工具。開發工具IDE幫助我們編譯、執行、除錯、分析、測試程式碼等等,我比較喜歡IntelliJ IDEA。構建工具用來構建和部署專案,例如maven、gradle和ant。Ant已經沒落了,很少有java專案中使用,Maven使用的比較多,但是Maven基於xml語法比較死板,我比較喜歡gradle,推薦大家使用gradle。
2、JDK APIJDK API對於開發人員來說非常重要,這是很大的一部分內容。包括Java Collections框架,Java Concurrency,Java IO和Java 8 API等核心領域。
2.1 Java集合框架這是每個Java開發人員都應該學習的最重要的Java API之一。該API提供了Java中標準資料結構的實現,例如連結串列,集合,堆疊,佇列,雜湊表,優先順序佇列等。
我們對於ArrayList、HashMap、HashSet、LinkedHashSet、TreeSet等框架必須要精通掌握,並知道它們的內部實現邏輯。例如, ArrayList是一個可以增長的動態陣列,HashMap 是雜湊表的標準實現,可以用於儲存鍵值對。同樣,HashSet是一個不允許重複元素的set實現。
2.2 java併發多執行緒和併發是一個合格的java工程師必須掌握的。我們不僅應該深入瞭解諸如Thread、Runnable物件鎖定和同步之類的基本概念,而且還應該熟悉諸如死鎖,樂觀鎖,condition以及如何使用它們。同時也應該瞭解像Java5中及以後的版本,例如CyclicBarrier、CountDownLatch、Phaser、CompleteableFuture、Futures等等特性以及如何在Java中執行非同步操作。
2.3 Java ioJava IO 和NIO API平常開發可能用的比較少,但是對於File、InputStream、OutputStream、Reader以及Writer這些核心API我們要精通掌握。同時如果我們需要編寫一個基於套接字的的程式,對於ByteBuffer、FileChannel、Selector也必須掌握。
2.4 Java 8新特性Java8 改變了我們以往的編碼和編碼方式,以前需要寫10行程式碼才能完成的功能,現在可能只需要幾行。Lambda表示式、Stream API、Optional類和新的DateTime API,這些我們都應該熟練掌握。
3、框架Java生態中有豐富的框架可以供開發者使用。對於主流的框架我們要有一定的瞭解。例如:Spring、SpringMVC、SpringBoot、Hibernate、Log4j、Mybatis、JUnit等。
3.1 Spring Framework如果您想成為優秀的Java開發人員,強烈建議首先學習Spring Framework。這是最流行的Java框架之一。Spring Framework使開發人員能夠編寫乾淨的程式碼,透過依賴注入和控制反轉等功能可以更輕鬆地測試和維護程式碼。它還具有用於大多數日常任務的豐富API。
3.2 Mybatis早期ORM框架比較火的是Hibernate。但是Hibernate限制太多,特別是在複雜業務場景下無能為力。Mybatis是目前最流行的ORM框架。支援靈活的sql、儲存過程以及高階對映。MyBatis 可以使用簡單的XML或註解來配置和對映原生型別、介面和 Java 的 POJO為資料庫中的記錄。
3.3 SpringBootSpringBoot應該是目前最火的MVC框架了,SpringBoot將程式設計師從繁重的XML配置中解放了出來。在沒有SpringBoot的時代,我們編寫一個後端的web應用,需要大量的xml配置。SpringBoot的出現使建立基於Spring的Java應用程式變得非常容易。你只需要2分鐘就可以出建立一個應用並將它跑起來,這極大的提升了程式設計師的工作效率,使得程式設計師可以更專注業務程式碼實現。
4、測試測試是任何Java開發人員的一項基本技能,尤其是單元測試,整合測試和自動化測試。至少,每個Java開發人員都應該熟悉JUnit和Mockito,這是兩種最受歡迎的單元測試和模擬庫。如果您知道這兩個並知道如何使用它們來有效地建立單元測試,那你將是一個更好的Java開發人員。還存在更高階的庫,例如用於業務驅動測試的Cucumber,用於整合測試的Robot Framework。對於模擬庫,開發人員可以選擇PowerMock,Mockito和EasyMock等幾種選擇,但我強烈建議學習Mockito,因為它是一個很棒的庫,並且許多Java開發人員和公司都在使用它。它正逐漸成為在Java中建立模擬物件的標準庫。
5、常用的庫Java的真正功能在於其豐富的開源庫生態系統。你會發現庫在Java中幾乎可以完成所有工作,從日誌記錄到機器學習,從傳送HTTP請求到解析JSON等等。
除此之外,Java還幸運地擁有諸如Apache Commons和Google Guava之類的實用程式庫。這兩個庫有效地補充了JDK庫。
最後如果你已經掌握了這其中一半以上的技術,那恭喜你,你算得上以為優秀的java工程師。如果沒有,那好好學習這些技術,它就伴隨這你以後職業生涯。當然計算機原理、資料結構、資料庫理論等課程將是你大二、大三的專業課,這些課程必須好好學習,深入掌握。
-
4 # 駭客之家
你可以先從Spring MVC和Spring框架的原始碼分析開始學習。
搭建微服務需要使用Spring Cloud,Spring Cloud基於Spring Boot,Spring Boot基於Spring MVC和Spring框架。所以學Spring Boot還是離不開Spring MVC和Spring框架。僅僅會使用框架是不夠的,要理解底層原始碼,Spring MVC和Spring框架原始碼中有很多值得學習的地方,如Spring MVC的工作原理、SpringMVC中攔截器的原理、Spring MVC中的設計模式、spring框架的依賴注入和控制反轉等。
Spring Boot框架使用起來還是很簡單的,它的出現就是為了簡化Spring應用,沒有Spring Boot之前需要自己配置各種xml,導致Spring MVC中xml配置特別繁瑣。
Spring Boot可以整合各種框架或者元件,如tomcat或者其他web容器、Spring MVC、Mybatis、Redis、RabbitMQ等。
你可以從橫向和縱向兩個方向加深學習。橫向學習Spring boot整合其他框架或者元件,縱向繼續深入學習基礎知識。
Spring MVC和Spring框架也是基於Java API開發的最核心的還是學好Java基礎。Java基礎中如:資料結構、多執行緒程式設計、執行緒同步、執行緒鎖、網路程式設計、執行緒池等。
如果做web專案開發或者API介面開發,理解和掌握HTTP協議就非常重要。
HTTP協議也是比較常用的協議,一般Java框架都會封裝好。你可以學著自己去實現一個簡單的HTTP協議。HTTP協議常用的知識如:請求頭、請求方式、響應頭、響應狀態碼等。
其實基礎很重要,如果學習Java語言的話,一定要多看Java API的原始碼,如String、HashMap、ArrayList、Thread等。這些基礎原始碼很重要,其次是Spring MVC的原始碼,還有就是一些好的開源庫的程式碼,如:httpclient、okhttp等。httpclient或者okhttp裡面封裝了http協議非常值得我們去學習。
你才上大一就開始學程式設計很有發展前景,你會成為一個好的程式設計師的!
-
5 # 陪孩子玩的碼農
手寫div css
抄一個淘寶
用任意語言,不用第三方框架和外掛寫出後臺。
差不多了,然後再學點框架
-
6 # honeweimimeng
[捂臉]這就要搞清楚能和好的區別了,我也是大一,搭建了一個基於Springboot,由netty進行websocket處理的匹配聊天小程式,有匹配,群聊,語音群聊,位置實時共享功能,但是目前也僅僅針對本校使用者,這就提現出來能和好的區別了,我感覺我那個垃圾東西過萬級的併發就得崩了,毫無效能調優可言。所以,努力學習,不要沾沾自喜
-
7 # Me117811101
感興趣的話,資料結構 計算機系統 計算機網路 資料庫,這些才是最重要的,語言語法後面再看。關鍵是現在才大一,搞不好等你畢業了計算機也變夕陽專業了,猶如當年土木。建議按照自己興趣學習,找個軟體demo,如聊天app什麼的,自己動手做,邊做邊學就知道自己哪裡不足了。祝好運~
-
8 # Zc210921814
大一的話好好學習基礎,高數,線數,概論,英語,資料結構,計算機組成原理,作業系統,編譯原理,演算法,設計模式,不要著急學這些框架,跟你說一句大實話,大一擺弄這些框架沒有任何意義,大三開始學就行,基礎紮實不到一個月就能學會。
回覆列表
底層?jdk-jvm-計算機原理
還是底層 java基礎-io-socket-資料結構-演算法?
這個底層,難以琢磨[捂臉]