能夠使用java開發(fā)出類似qq的聊天小程序達到了java學習的什么水平?
網(wǎng)友解答: 聊天類應用(RTC)是學習Java過程中經(jīng)常做的實驗,其實聊天功能有很多事情可以做,隨著學習的不斷深入而逐步豐富聊天程序的功能。在學習的早期階段可以使用多線程結合Socket
聊天類應用(RTC)是學習Java過程中經(jīng)常做的實驗,其實聊天功能有很多事情可以做,隨著學習的不斷深入而逐步豐富聊天程序的功能。
在學習的早期階段可以使用多線程結合Socket創(chuàng)建一個基本的聊天應用,這個應用的重點在于對多線程的理解以及對Socket創(chuàng)建連接過程的理解。在Java學習的初級階段,多線程是一個重點內(nèi)容,也是一個難點。Java多線程的內(nèi)容還是比較多的,尤其在Java1.5版本以及Java1.8版本之后,增加了不少關于多線程方面的內(nèi)容(我在酷米上寫了關于Java并發(fā)編程的系列文章,一共有20多篇,感興趣的朋友可以關注我的酷米號,并查看相應的文章)。
Java的Socket通訊是學習Java網(wǎng)絡開發(fā)首先接觸到的內(nèi)容,這個過程要了解一系列用于網(wǎng)絡通訊的協(xié)議在使用上的區(qū)別(UDP、TCP),包括Socket、ServerSocket、DatagramSocket、MulticastSocket、URL、Proxy等類的使用。可以說這部分內(nèi)容屬于Java網(wǎng)絡編程的基礎部分,也是整個Java學習過程中的初級部分。
接下來要學習的內(nèi)容涉及到流媒體的傳輸,比如常見的語音、視頻的傳輸(具有實時性要求),這部分內(nèi)容就有一定難度了,往往需要架設專門的服務器(集群)來解決通信問題(誤碼率等)。我在2006年的時候參與了一個Voip項目組,當時我的任務就是使用Java程序來完成終端功能的實現(xiàn),我也參與了網(wǎng)關的編寫,這是一個比較龐大的工程,參與者也非常多。
總的來說,使用Java做聊天應用是非常鍛煉學習者編程能力的,在開發(fā)的過程中還能比較系統(tǒng)的了解網(wǎng)絡通信過程以及數(shù)據(jù)交換過程,這對以后的編程工作會有較大的幫助。
我目前的主要研究方向是大數(shù)據(jù)和人工智能,同時也在帶相關方向的研究生,我會陸續(xù)在酷米上寫一些關于軟件開發(fā)方面的文章,感興趣的朋友可以關注我的酷米號,相信一定會有所收獲。
如果有軟件類問題,也可以咨詢我,謝謝!
網(wǎng)友解答:簡單的聊天工具實現(xiàn)就只是應用JAVA對TCP協(xié)議的支持,而JAVA自身有很多模塊,不同的領域和企業(yè)業(yè)務需求用到的模塊也不相同!
JAVA Socket算是JAVA當中比較重要的一部分,但并不是需要你刻意去表現(xiàn)的一部分,對于高級工程師這只是基礎,當然還得看你的聊天工具是否支持在互聯(lián)網(wǎng)條件下的應用!大部分高級工程師會在熟練這些基礎之后,會花精力和時間在框架的開發(fā)上,因為框架的開發(fā)注重的是高效,擴展性,和伸縮性,并且對個人的語言設計能力要求還是相當高的,學習JAVA要做到系統(tǒng)化,規(guī)范化,進而再去延伸數(shù)據(jù)庫,中間件,負載均衡,日志分析等方面的應用!
對于聊天系統(tǒng),我認為,你最多能會用到的JAVA技術: JAVA網(wǎng)絡編程,JAVA的ORM框架,JAVA的多線程,JAVA的NIO框架和一些消息緩存中間件!如果你的應用中用到了這些,那么你就達到了高級工程師的水平,但是,如果這些簡簡單單只用到了其中一兩處,對整體的應用框架沒有多大改變,本質(zhì)的提升以及并沒有滿足可擴展性的要求,就不算真正達到高級工程師的水平,JAVA整個行業(yè)更注重的是對各種應用框架的整合,而這需要對設計模式有更深入的了解!
JAVA中的重點在于設計模式和自我學習能力,由于互聯(lián)網(wǎng)技術的發(fā)展,各種應用框架層出不窮,就拿Springframework來說吧,就這樣一個框架,從Bean到ORM到TX到JMS再到MVC,再到SpringBoot ,Spring Cloud等等,這一個框架就包含多個模塊支持,為什么?因為整個行業(yè)的應用容量是相當龐大的,技術層出不窮,所以對于JAVA工程師的重點在學習能力,對設計模式的應用能力,這些能力對于團隊協(xié)作開發(fā)至關重要!
作為程序員最忌諱的是在技術實現(xiàn)后,沉浸在驕傲感之中,這會讓自己迷失自我,可能會因此排斥他人的代碼設計,更或者嚴重一點固步自封!對于很多人,去承認自己的技術不足是很難的,若想做的更好,達到高級工程師,系統(tǒng)架構師,以及更高的崗位首席技術執(zhí)行官都必須學會接納他人的想法,不斷改進和吸收,才會讓自己的能力和價值得到提現(xiàn)!
希望對讀者有所幫助,也希望越來越多的人能夠理解企業(yè)對于程序員的要求!共同努力!