java是什么 剛上大一,報的計科,學(xué)了一年的c和JAVA,都說計算機和數(shù)學(xué)關(guān)系緊密,可為啥沒有感覺到?感到迷茫?
剛上大一,報的計科,學(xué)了一年的c和JAVA,都說計算機和數(shù)學(xué)關(guān)系緊密,可為啥沒有感覺到?感到迷茫?呵呵,你才大一,才學(xué)了點語言。連入門都還算不上呢。毫不夸張的給你說,學(xué)計算機學(xué)到最后就是拼數(shù)學(xué)。光靠學(xué)
剛上大一,報的計科,學(xué)了一年的c和JAVA,都說計算機和數(shù)學(xué)關(guān)系緊密,可為啥沒有感覺到?感到迷茫?
呵呵,你才大一,才學(xué)了點語言。連入門都還算不上呢。毫不夸張的給你說,學(xué)計算機學(xué)到最后就是拼數(shù)學(xué)。光靠學(xué)幾門語言,什么東西都做不出來。特別是涉及到編程實現(xiàn)一些功能的時候,數(shù)學(xué)沒學(xué)好,是設(shè)計不出合適的算法的。數(shù)學(xué)建模非常關(guān)鍵。奉勸你千萬不要想當(dāng)然。就拿高數(shù)里最常見的傅里葉變換來說。圖像處理用傅里葉變換設(shè)計低通濾波器是最常用的基礎(chǔ)功能之一。
再說回來,機器語言本身就是一個個二進(jìn)制的矩陣。圖像本質(zhì)也是有一個個像素構(gòu)成的矩陣。到時候你就知道,線性代數(shù)的重要性了。然后各種圖像,信號的放大和縮小,就需要用到各種插值法,這時你會懊悔離散數(shù)學(xué)沒學(xué)好。學(xué)信息論和通信原理的時候,你又會后悔復(fù)變函數(shù)和概率沒吃透。。。。。
哪怕就是大二學(xué)專業(yè)基礎(chǔ)課數(shù)據(jù)結(jié)構(gòu),里面用到的堆棧,對列,排序,二叉樹,哈希圖,遞歸等等。。。。全部都是數(shù)學(xué)模型。。。
你要真想好好學(xué)編程,數(shù)學(xué)一定得學(xué)透。至于程序設(shè)計語言,那都是語法結(jié)構(gòu)的問題,千篇一律,程序設(shè)計看重的是算法,至于用什么語言實現(xiàn),那是很表層,很膚淺的東西。就像寫書,經(jīng)典著作,翻譯成哪國語言都是經(jīng)典。廁所讀物,你就是用八國語言寫,那也是廁所讀物。
Golang真的好用嗎?
最近剛剛寫完go,有點上癮.自己一直是javaer,做這塊有10年了,下面說說個人對這三門語言的理解.go語言,幾個鮮明的特性, 垃圾回收 跨平臺 并發(fā)完美支持 編譯迅速.
- 垃圾回收就不說了,java也有,這可以讓我們不用過度的關(guān)心內(nèi)存管理.
- 跨平臺,java python 也有可以,但他們需要安裝對應(yīng)的支持庫.java jre環(huán)境 python2 python3 環(huán)境. 而go編譯出來的包,直接可用.
- 并發(fā)支持,java 并發(fā)最小單元是線程,cpu切換是有代價,數(shù)量控制不好,出問題是頭疼的一個點.go是多了一個協(xié)程的概念,是用戶級的線程.可以任意切換,cpu沒有什么代價.可以很舒服的開發(fā)高并發(fā)應(yīng)用.就這個特性我覺得后面很多服務(wù)器的程序會傾向于go.
- 編譯迅速,java也編譯也很快,但他是編譯器選擇性進(jìn)行編譯或進(jìn)行解釋執(zhí)行的,沒有可比性.python純解釋性語言.性能上解釋性語言是沒法跟編譯性語言相比的.go兼顧編譯性語言性能好的特點,編譯比c c 快太多了.非常惹人喜愛.
所以go優(yōu)點是很多,后面很多程序應(yīng)用都是會傾向于他,特別是他的協(xié)程概念,釋放了多核處理器的能力.未來我看好他的發(fā)展.當(dāng)然java有很完整的生態(tài),目前來說構(gòu)建大型的復(fù)雜系統(tǒng)還是少不了他,大數(shù)據(jù)這塊很多框架都是基于Java.python呢,在爬蟲,機器學(xué)習(xí),ai領(lǐng)域有很多成熟的框架庫,要是搞機器學(xué)習(xí),也還得學(xué)他.