2016 - 2024

感恩一路有你

能够使用java开发出类似qq的聊天小程序达到了java学习的什么水平?

浏览量:2235 时间:2018-09-29 10:52:55 作者:
网友解答:

聊天类应用(RTC)是学习Java过程中经常做的实验,其实聊天功能有很多事情可以做,随着学习的不断深入而逐步丰富聊天程序的功能。

在学习的早期阶段可以使用多线程结合Socket创建一个基本的聊天应用,这个应用的重点在于对多线程的理解以及对Socket创建连接过程的理解。在Java学习的初级阶段,多线程是一个重点内容,也是一个难点。Java多线程的内容还是比较多的,尤其在Java1.5版本以及Java1.8版本之后,增加了不少关于多线程方面的内容(我在酷米上写了关于Java并发编程的系列文章,一共有20多篇,感兴趣的朋友可以关注我的酷米号,并查看相应的文章)。

Java的Socket通讯是学习Java网络开发首先接触到的内容,这个过程要了解一系列用于网络通讯的协议在使用上的区别(UDP、TCP),包括Socket、ServerSocket、DatagramSocket、MulticastSocket、URL、Proxy等类的使用。可以说这部分内容属于Java网络编程的基础部分,也是整个Java学习过程中的初级部分。

接下来要学习的内容涉及到流媒体的传输,比如常见的语音、视频的传输(具有实时性要求),这部分内容就有一定难度了,往往需要架设专门的服务器(集群)来解决通信问题(误码率等)。我在2006年的时候参与了一个Voip项目组,当时我的任务就是使用Java程序来完成终端功能的实现,我也参与了网关的编写,这是一个比较庞大的工程,参与者也非常多。

总的来说,使用Java做聊天应用是非常锻炼学习者编程能力的,在开发的过程中还能比较系统的了解网络通信过程以及数据交换过程,这对以后的编程工作会有较大的帮助。

我目前的主要研究方向是大数据和人工智能,同时也在带相关方向的研究生,我会陆续在酷米上写一些关于软件开发方面的文章,感兴趣的朋友可以关注我的酷米号,相信一定会有所收获。

如果有软件类问题,也可以咨询我,谢谢!

网友解答:

简单的聊天工具实现就只是应用JAVA对TCP协议的支持,而JAVA自身有很多模块,不同的领域和企业业务需求用到的模块也不相同!

JAVA Socket算是JAVA当中比较重要的一部分,但并不是需要你刻意去表现的一部分,对于高级工程师这只是基础,当然还得看你的聊天工具是否支持在互联网条件下的应用!大部分高级工程师会在熟练这些基础之后,会花精力和时间在框架的开发上,因为框架的开发注重的是高效,扩展性,和伸缩性,并且对个人的语言设计能力要求还是相当高的,学习JAVA要做到系统化,规范化,进而再去延伸数据库,中间件,负载均衡,日志分析等方面的应用!

对于聊天系统,我认为,你最多能会用到的JAVA技术: JAVA网络编程,JAVA的ORM框架,JAVA的多线程,JAVA的NIO框架和一些消息缓存中间件!如果你的应用中用到了这些,那么你就达到了高级工程师的水平,但是,如果这些简简单单只用到了其中一两处,对整体的应用框架没有多大改变,本质的提升以及并没有满足可扩展性的要求,就不算真正达到高级工程师的水平,JAVA整个行业更注重的是对各种应用框架的整合,而这需要对设计模式有更深入的了解!

JAVA中的重点在于设计模式和自我学习能力,由于互联网技术的发展,各种应用框架层出不穷,就拿Springframework来说吧,就这样一个框架,从Bean到ORM到TX到JMS再到MVC,再到SpringBoot ,Spring Cloud等等,这一个框架就包含多个模块支持,为什么?因为整个行业的应用容量是相当庞大的,技术层出不穷,所以对于JAVA工程师的重点在学习能力,对设计模式的应用能力,这些能力对于团队协作开发至关重要!

作为程序员最忌讳的是在技术实现后,沉浸在骄傲感之中,这会让自己迷失自我,可能会因此排斥他人的代码设计,更或者严重一点固步自封!对于很多人,去承认自己的技术不足是很难的,若想做的更好,达到高级工程师,系统架构师,以及更高的岗位首席技术执行官都必须学会接纳他人的想法,不断改进和吸收,才会让自己的能力和价值得到提现!

希望对读者有所帮助,也希望越来越多的人能够理解企业对于程序员的要求!共同努力!

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。