來源:Java編程精選 2018-06-17 10:24:27
每個(gè)語言自身都有一些重要特性需要了解。例如,學(xué)習(xí) C、C++,你必須了解內(nèi)存的申請(qǐng)和釋放,了解指針、引用。而學(xué)習(xí) Java,你需要了解 JVM,垃圾回收機(jī)制。學(xué)習(xí) Javascript,你需要了解 DOM 操作等。
代碼組織、模塊加載、庫管理
一個(gè)程序一般都有很多個(gè)源代碼文件。這就會(huì)引入這些問題:如何將代碼文件組織起來?如何根據(jù)業(yè)務(wù)需要,選擇將部分模塊啟動(dòng)時(shí)進(jìn)行加載,部分模塊使用懶加載(或者熱加載)?
最基本的引用文件就不提了,如C、C++的#include,Java 的 import 等。
針對(duì)代碼組織、模塊加載、庫管理這些問題,不同語言會(huì)有不同的解決方案。
如 Java 可以用 maven、gradle 管理項(xiàng)目依賴、組織代碼結(jié)構(gòu);Javascript (包括 Nodejs、jquery、react 等等庫)可以用 npm、yarn 管理依賴,用 webpack 等工具管理模塊加載。
容錯(cuò)處理
程序總難免會(huì)有 bug。
所以為了代碼健壯性也好,為了方便定位問題也好,代碼中需要有容錯(cuò)處理。常見的手段有:
異常
斷言
日志
調(diào)試
單元測(cè)試
輸入輸出和文件處理
這塊知識(shí)比較繁雜。建議提綱挈領(lǐng)的學(xué)習(xí)一下,理解基本概念,比如輸入輸出流、管道等等。至于 API,用到的時(shí)候再查一下即可。
回調(diào)機(jī)制
每種語言實(shí)現(xiàn)回調(diào)的方式有所不同,如 .Net 的 delegate (大量被用于 WinForm 程序);Javascript 中函數(shù)天然支持回調(diào):Javascript 函數(shù)允許傳入另一個(gè)函數(shù)作為入?yún)ⅲ缓笤诜椒ㄖ姓{(diào)用它。其它語言的回調(diào)方式不一一列舉。
序列化和反序列化
首先需要了解的是,序列化和反序列化的作用是為了在不同平臺(tái)之間傳輸對(duì)象。
其次,要知道序列化存在多種方式,不同編程語言可能有多種方案。根據(jù)應(yīng)用的序列化方式,選擇性了解即可。
進(jìn)階特性
以下學(xué)習(xí)內(nèi)容屬于進(jìn)階性內(nèi)容。可以根據(jù)開發(fā)需要去學(xué)習(xí)、掌握。需要注意的是,學(xué)習(xí)這些特性的態(tài)度應(yīng)該是不學(xué)則已,學(xué)則死磕。因?yàn)榘攵氩欢貏e容易引入問題。
對(duì)于半桶水的同學(xué),我想說:放過自己,也放過別人,活著不好嗎?
并發(fā)編程:好處多多,十分重要,但是并發(fā)代碼容易出錯(cuò),且出錯(cuò)難以定位。要學(xué)習(xí)還是要花很大力氣的,需要了解大量知識(shí),如:進(jìn)程、線程、同步、異步、讀寫鎖等等。
反射:讓你可以動(dòng)態(tài)編程(慎用)。
泛型:集合(或者叫容器)的基石。精通泛型,能大大提高你的代碼效率。
元數(shù)據(jù):描述數(shù)據(jù)的數(shù)據(jù)。Java 中叫做注解。
庫和框架
學(xué)習(xí)一門編程語言,難免需要用到圍繞它構(gòu)建的技術(shù)生態(tài)圈——庫和框架。這方面知識(shí)范圍太龐大,根據(jù)實(shí)際應(yīng)用領(lǐng)域去學(xué)習(xí)吧。比如搞 JavaWeb,你多多少少肯定要用到 Spring、Mybatis、Hibernate、Shiro等大量開發(fā)框架;如果做 Javascript 前端,你可能會(huì)用到 React、Vue、Angular 、jQuery 等庫或框架。
小結(jié)
總結(jié)以上,編程語言學(xué)習(xí)的道路是任重而道遠(yuǎn)的,未來是光明的。
最后一句話與君共勉:路漫漫兮其修遠(yuǎn),吾將上下而求索。
相關(guān)推薦:
小升初試題、期中期末題、小學(xué)奧數(shù)題
盡在奧數(shù)網(wǎng)公眾號(hào)
歡迎使用手機(jī)、平板等移動(dòng)設(shè)備訪問幼教網(wǎng),幼兒教育我們一路陪伴同行!>>點(diǎn)擊查看