Java虛擬機,這是值得你去進階的方向
而隨著時間的推移,慢慢地大家都逐漸步入到了中級程序員的等級,同時也有越來越多的人感覺到了焦慮,因為不學習就意味著原地踏步,雖然目前自己的技術水平可能已經(jīng)挺不錯了,可還是不敢長時間停留,逆水行舟中,不進則退。
因此,幾乎每一天都會不斷地有朋友反反復復地問我這同一個問題:“基礎已經(jīng)學完了,想進一步提升,該如何學習?” 我也基本能理解大家的心情。
對于這個問題,我真的很想找到一個標準答案,然后復制粘貼給每一個提問的人,但是這個問題卻永遠沒有一個標準答案。因為技術的領域實在是太廣闊了,世界上沒有任何一個人能把所有的技術全部都學會,想進階首先你要認準一個方向才行,而不是盲目地焦慮該如何進一步提升自己。
那么進階的方向有哪些呢?這個就太多了,不同的項目側重的技術點也不一樣。比如IM軟件就需要即時通訊技術、視頻軟件就需要視頻編解碼技術、游戲就需要引擎技術。即使是同一個項目,每個人負責的工作方向也會不一樣,有些人負責架構搭建,有些人負責網(wǎng)絡通信,有些人負責UI實現(xiàn)。因此,這些都是進階的方向,學習自定義View也叫進階,學習設計模式也叫進階。
所以說對于這個問題我真的無法給出一個標準答案,但是今天我準備給大家推薦的一個非常好的進階方向,就是Java虛擬機,同時這也是我下一階段的學習目標。
Java虛擬機重要嗎?重要。我們平時關注的內容大多是在語言層面上的,至于底層到底是如何運行的則很少有人關注。然而,不管是從事Java也好、Android也好,工作到一定層次之后遇到的一些問題確實是需要了解Java虛擬機才能解決的。
比如說內存泄漏,這是一個很常見又很讓人苦惱的問題。之所以這個問題難查,還是因為大多數(shù)人對Java虛擬機底層的內存管理機制并不熟悉。而如果我們深入地了解了Java虛擬機的垃圾收集器和內存分配策略,就可以更加得心應手地解決內存泄漏的問題。
再比如說現(xiàn)在Android領域中比較火的熱修復、插件化等技術,都大量使用到了Java虛擬機中的類加載機制,從事這部分技術研發(fā)的人,如果對Java虛擬機技術不熟悉的話,那肯定是寸步難行的。
而且還有很重要的一點,Java虛擬機技術是不用擔心過時的,因為不管未來Android程序是用Java開發(fā)也好、Kotlin開發(fā)也好,底層的運行環(huán)境都是依賴于Java虛擬機的。當然在Android上是叫ART,但本質上仍然是Java虛擬機。