我對開發語言基礎的理解
我們在學習軟件開發的時候,最先學習都就是一門編程語言,語言是我們開發的基礎,也是我們開發的工具,今天來講一講我對于我目前從事的Android開發所用的Java的理解
首先說一下語言與應用
這是剛開始學習還沒有入門的新同學經常誤解的一個問題,以為學會了Java,就能做開發了,但也有大家“日常用語”的一部分鍋,比如有人問,“你在做什么開發呀”,然后做Java web開發的同學就會說“Java開發呀”,然而其實Java開發說的是Java web開發,Java web開發又包含了Java EE的知識,還包含對數據庫,Linux,SSH框架等的學習,甚至還需要一些前端的知識,并不只是學習Java語言這么簡單的,PHP等web開發亦是如此
所以我們就要區分語言、應用
我們首先學習的是Java語言,它的語法、特性、及其功能,其中包括基礎的數據結構啊,基本語法,流程控制,IO,多線程等基礎的、大多數語言都具備的功能,以及多態,反射等Java獨有的特性,并且語言都是在不斷的完善更新的,比如Java8加入了lamada表達式,最近才發布的Java9加入的模塊化等等
而后才是語言的應用,不同的語言根據不同的設計以及不同的特性有不同的應用點,有些語言很萬能,多用,比如Kotlin,除了之前所支持的Native開發,web開發,Android開發,現在又宣布以后會支持iOS開發,有些語言則應用點單一,比如PHP,只能用于web開發
Java語言的應用點還是比較多的,在web開發中也不僅僅支持后端開發,在上古時代的時候,Java applet還被用于前端開發,只是后邊被JavaScript給刷下來了。
還有很多同學不知道的是,我們用的很多桌面應用,其實也是用Java來開發的,這時你會想,“Java程序不是需要JRE才能運行么,如果我用了Java寫的應用程序,為什么從來沒有裝過JRE呢?”,其實用Java開發的桌面應用程序,打包的時候都自帶了JRE,說出來也許你會比較震驚,我們日常使用的Android Studio,就是用Java開發的,并且Jetbrains所開發的IDE,也都是用Java開發的,Jetbrains是一家Java功力很深厚的公司,所以才創造出了現在被欽定的Kotlin
出了上述所說的,Java還被用于我們所熟知的Android開發,在Android系統中,自帶了一個JVM來運行我們開發的Java程序,
Android的frameworks源碼,也是用Java來開發編寫的
說到這里,相信大部分同學已經能分清語言和應用了
Java基礎
其實說這個問題比較多余,我也不打算展開,這里就給大家說一個概念
Java基礎的內容,大家看一遍《Java核心技術》的目錄,基本上都包含了,看《Java編程思想》也是可以的,《Java編程思想》如同書名,闡述的是Java設計的思想,以及你編程的思想,建議先看《Java核心技術》,再看《Java編程思想》,不要覺得《Java編程思想》很厚,講的很深,只要你有一定編程經驗,結合編程場景,是非常容易理解的,掌握了其中的思想,在編程中,也會對你有指導作用
我理解的Java基礎包含如下內容
基礎認識 (JDK、JVM、JRE)
數據類型、變量、運算符、字符串、數組
流程控制
對象與類(深入理解面向對象,劃重點)
繼承
接口
內部類
多態
泛型
集合(其實就是Java所提供一些數據結構)
IO
多線程
異常處理
網絡編程
反射
其實還包括Swing和AWT圖形編程,這個主要應用于桌面端程序編寫,我們用Java進行web或Android開發,是不需要掌握的
在上述的內容中,我覺得最要重點掌握的,就是面向對象的思想,這個一定要深入理解,Java可以說是是一門純面向對象的語言,理解了面向對象,你理解其他問題就會容易很多
如果你從事的是web開發,那么多線程和網絡編程,也是你必須要下功夫的了
對于Android開發,我建議新同學過一遍基礎,就可以開始學習Android了,然后再從實踐中,回過頭了學習你沒有掌握的Java基礎知識,學習一門語言,光看是沒有用的,一定要動起手來,然后再實踐中學習,你才有體會,才有理解
劃重點,理解才是重中之重,一定要體會,理解,看看《Java編程思想》,我覺得對你一定有幫助
其他的?
當你基礎掌握的還可以了,你當然想去更深的地方,我懂的,這個時候你可以學習一些JVM的知識,推薦的書是《深入理解JVM》,周志華老師寫的,看了你就能懂Java是如何在JVM上跑起來的了,也能理解Java的一些設計,內存管理的知識
當然你也可以看一些Java其他應用,可以看一些開源庫來理解,Github就是程序員的圖書館,多看看,總是有好處的
總結
以上就是我所理解的Java基礎,不足和偏頗是不能避免的,希望大家多多提出和討論。要我給出一個建議,那就是多動手實踐,然后在實踐中多理解體會和思考。
并且要說明一個問題,我們今天講的是開發中的語言基礎,就是說Java是Android開發的語言基礎,不是講的Java語言中基礎的東西,我們上述所說的內容已經包含了Java語言中的大部分內容,都理解了,學會了,也就可以說掌握Java了,并不是只是掌握了Java中的“基礎”,說明一下
當然我自己也是在學習中拉,如果有大牛看到了,也請不吝多多賜教,謝謝大家,我是麥田哥,點個like吧~