精通java益處_你真的精通Java嗎?

a6435da5f657e29ab167391b1e28bcff.png 簡歷和自我介紹上經常能夠讀到“精通Java”這樣的話,有人和我說,精通Java的人太多了,精通Java已經不能算亮點、不能給自己加分了。可是事實真是這樣嗎?

對于語言的學習,我有一種觀點,一是縱向,即要選擇一門自己認為合適的語言學到有相當的深度。二在于橫向,即要學習不同類型、不同歷史和不同門派的語言:

既有底層的語言,也有高級語言;

接觸一些動態語言、函數式語言;

了解一些不同語言的編程范型和編程方式,比如基于原型編程、面向切面編程、命令式編程等等;

最好能關注一門年紀尚淺,甚至小眾的語言,了解一門語言的發展。

橫向類比能夠帶來對一門語言的不同認識,但是,有廣度而沒有深度的專家是可笑的,深入地學習一門語言是不可缺少的。就以Java為例,依我看來,至少有這樣幾個遞進的過程:

語法語義。

這是最基礎的部分,都說Java簡單,語法容易學習,但是,真要細說起一些細節來,也真夠我啰嗦了。我見過一些所謂的“精通Java”的人,他們卻不知道strictfp關鍵字,說不清volatile和transient的作用,不知道怎么去定義一個注解(@interface)。你覺得這些要求苛刻嗎?對這些以“精通”要求自己的人。

熟悉語言的應用范圍。

不同的語言有不同的擅長應用領域。就像想用Java去寫操作系統或底層代碼是多么不靠譜一樣,在這個過程中應當熟悉語言的優勢劣勢,這里你自己會提出自己的見解。譬如Java最NB的地方在哪里?

跨平臺?可是很多語言都可以跨平臺;

開源?那開源的語言多了去了;

高性能的虛擬機?包括先進的編譯解釋優化技術;

還是那么多用Java實現的類庫、框架呢?

把那些用Java實現的類庫和框架脫離出Java語言本身來歸類,未必是恰當的。熟悉Java就必須閱讀許多類庫和框架的源碼。

學習語言的實現機制。

就像精通Java的程序員需要了解Java虛擬機一樣,也許不需要對虛擬機規范一清二楚,但是起碼要知道CAFE BABE吧?起碼要了解JIT的機制吧?起碼要明白垃圾回收策略中的CMS吧?起碼要能嘗試自己編譯一把JDK吧?起碼要能去定位那些無響應的Java程序問題吧?在這個過程中,從了解一門語言,將逐漸進化到去了解一門語言所處的平臺。

整理語言發展的歷史。

為什么學習編程語言也要關注它的歷史?因為去了解一門語言的發展歷史(比如這篇關于Java多線程編程的歷史),可以明白在這過程中碰了什么壁、犯過什么錯、有哪些大的變更,學過別人家什么東西……這對于分析現今這門語言與其他語言的碰撞、展望一門語言的未來大有益處。在這個過程中,會不由自主地將其和不同時期的其他語言比較。如果給你一次重新設計這門語言的機會,你一定能夠提出不少改善的意見來。

我從來不相信精通Java是一件容易實現的事情。有一股風潮,說搞底層研究的人看不起搞上層業務的人,寫C的人認為寫Java的人沒水平,做后臺的人覺得做前臺的沒技術含量……我說,何必呢?

技術無貴賤,只是專注的領域不同而已。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/396268.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/396268.shtml
英文地址,請注明出處:http://en.pswp.cn/news/396268.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Luogu P2101 命運石之門的選擇(分治+搜索)

P2101 命運石之門的選擇 題意 題目描述 在某一條不知名世界線的岡倫今天突然接到了一條\(dmail\),上面說世界線將會發生巨大變動,未來的他無論如何都無法扭轉這種變動回到原來的世界線。而世界線變動的原因是現在的他不久后錯過了與助手的約會。他約好要…

Java初級筆記-第五章

第五章 面向對象的特點 5.1 繼承 面向對象的重要特點之一就是繼承。類的繼承使得能夠在已有的類的基礎上構造新的類,新類除了具有被繼承類的屬性和方法外,還可以根據需要添加新的屬性和方法。繼承有利于代碼的復用,通過繼承可以更有效地組織程…

取模運算性質_求余、取模運算在RTOS中計算優先級的理解

uCOS3中的部分源碼:/* 置位優先級表中相應的位 */void OS_PrioInsert (OS_PRIO prio){CPU_DATA bit;CPU_DATA bit_nbr;OS_PRIO ix;/* 求模操作,獲取優先級表數組的下標索引 */ix prio / DEF_INT_CPU_NBR_BITS;//32bits//由于數據均為無符號數,prio為8位…

歸結原則_被聘為自由職業者歸結為一件事:信任。

歸結原則by I quit Medium我退出Medium 被聘為自由職業者歸結為一件事:信任。 (Getting hired as a freelancer comes down to one thing: trust.) When I ask freelancers what they think is the most important factor in landing a client project, they usual…

關于JS的傳遞方式的小理解

var test function() {//將其看成是創建了一個對象alert(1);}var otherTest test;//賦值導致test和otherTest指向同一個對象otherTest();test.sd 9;//對對象進行操作,兩者都發生改變alert(otherTest.sd);//9var test function() {//test重新創建了一個對象&…

java p代表哪種數據類型_java數據類型(八種基本數據類型+三種引用類型)

1、整型類型 占用字節 取值范圍byte 1 -128~127 (7次方)short 2 -32 768~32 767 (15次方)int …

python中的隨機函數

python--隨機函數(random,uniform,randint,randrange,shuffle,sample) 本文轉載自:[chamie] random() random()方法:返回隨機生成的一個實數,它在[0,1)范圍內 運用random()方法的語法: import random #random()方法不…

Setuptool+pip安裝

https://pypi.python.org/pypi/setuptools 1. 下載ez_setup.py文件,cmd進入安裝目錄; 2. python setup.py install https://pip.pypa.io/en/latest/index.html 1、cmd進入ez_setup.py文件目錄2、用setuptools安裝:easy_install pip轉載于:htt…

rss 閱讀源_如何使用RSS更有效地閱讀

rss 閱讀源by Naman Kamra通過納曼卡姆拉(Naman Kamra) 如何使用RSS更有效地閱讀 (How to read more efficiently with RSS) Rich Site Summary (RSS) was developed way back in 1999 as a way to quickly subscribe to blogs and newspapers, back before tools like Twitte…

python 遍歷usb設備_python程序員教你寫腳本玩微信跳一跳,只要有耐心,你就是王者!...

溫馨提示:微信已經開始檢測分數異常高的情況了,請大家不要跑太高哦游戲模式這是一個 2.5D 插畫風格的益智游戲,玩家可以通過按壓屏幕時間的長短來控制這個「小人」跳躍的距離。可能剛開始上手的時候,因為時間距離之間的關系把握不…

一個電腦同時運行 64bit 和 32bit 的eclipse 如何匹配 jdk環境

一個電腦同時運行 64bit 和 32bit 的 eclipse 如何匹配 jdk環境 1 eclipse 分 64bit 和 32bit 兩種. 64bit的eclipse 只能搭配 64bit的 jdk 使用. 32bit的eclipse 只能搭配 32bit的 jdk 使用. 2 電腦上安裝好 32bit 和 64bit 的 jdk ,分別安裝在不同的路徑中. 比如我的3…

基本數據類型(dict)

目錄: 1.字典的簡單介紹 2.字典增刪改查和其他操作 3.字典的嵌套 一.字典的簡單介紹 字典(dict)是python中唯一的一個映射類型,他是以{}括起來的鍵值對組成,在dict中key是唯一的,在保存的時候,根據key類計算出一個地址然后將key-value保存在這個地址中這種算法被稱作hash算法,所…

自學成才翁_僅因為您是自學成才,并不意味著您必須獨自學習。

自學成才翁by Piotr Bakker皮特巴克(Piotr Bakker) 僅因為您是自學成才,并不意味著您必須獨自學習。 (Just because you’re self-taught doesn’t mean you have to learn alone.) I am a self-taught designer with no formal training. No art school, no priva…

java 近似值 循環次數,java題求解

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓public class PAI{public static void main(String[] args){int n 700;//Hello World! pai 3.1401640828900845(n 700)System.out.println("Hello World! pai " getPAI(n));//Hello World! pai 3.1430191863875865…

jq匹配偶數行_jquery怎么實現奇偶行不同背景顏色?

做表格的時候,經常要讓奇偶行顯示不同背景色,一來使表格顯得更美觀,二來使同行數據查找更快捷方便。通常我們是怎么實現的呢?就是在每個tr標簽上加css樣式。代碼如下所示:.odd {background-color:yellow;}.even {backg…

2016/4/19 ①單個文件上傳 ②上傳圖片后 預覽圖片

1&#xff0c;f1.php <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Document</title> </head> <body> <!-- 作業:在網上找上傳圖片預覽的代碼 上傳服務器 再預覽--> <fo…

Android項目里集成Cordova詳解

2019獨角獸企業重金招聘Python工程師標準>>> 一 安裝nodejs二 cmd創建Android項目三 導入工程 運行一下四 調用插件五 Android studio環境下將CordovaLib作為依賴導入六 自定義插件七 java類中的一些問題八 在CordovaActivity中添加原生View組件 九 在Fragment里使用…

facebook移動端框架_2016年所有頂級移動應用均歸Google或Facebook所有

facebook移動端框架Today Nielsen released their report about the most widely used mobile apps in 2016. The top 8 apps were all owned by just two corporations: Google and Facebook.今天&#xff0c;尼爾森發布了有關2016年使用最廣泛的移動應用程序的報告。排名前8的…

php 判斷瀏覽器是ie,js判斷是否是ie瀏覽器

怎么去看瀏覽器的內核等信息 ---- js的全局對象window子屬性navigator.userAgent&#xff0c;這個屬性是包含了瀏覽器信息的相關信息&#xff0c;包括我們需要的瀏覽器內核navigator.userAgent這個值取出來是個字符串&#xff0c;可以通過string的 indexOf方法或者正則匹配來驗…