能够使用java开发出类似qq的聊天小程序达到了java学习的什么水平?
作为一个已经写了十几年代码的老司机,在写代码之余还会写点技术感受,或者分享一些编程心的,几年下来也积攒了几万粉丝,也有一些对于技术不是很懂的小伙伴,在交流过程中经常说出这样的话,开发一个类似qq的软件需要多长时间,需要花费多少资金。软件这种东西可以说的很大,也可以说的很小。就拿简单的聊天功能其实就是简单的网络通讯功能直接掌握socket编程就能完成数据接收和发送,现在经常在局域网内传输文件的飞秋软件就是这个基本功能,不过现在这个软件功能做的越来越多了,已经不是仅仅是简单的数据传输那么简单的功能了。
真要分析qq的功能,这种就不是单纯的数据传递这么简单的事情了,首先要有强大的服务器集群支撑,现在只是qq上面缓存的图片以及视频在服务器里面的集群处理就是一种技术难度不低的技术,而且这么多服务器之间需要协调配合好,一旦一个出现安全问题别的服务器是不是能够及时启动安全预警功能,当然这只是对于服务器局部的一些功能的举例,还没有说到qq客户端一些技术,这个主要分为windows版本,苹果系统版本,安卓版本等等,每项几乎都需要对运行环境非常熟悉,而且开发对应的编程语言。
如果只是简单的数据传送,初学者在清楚socket机制的情况下,基本上就能搞定,至于要能对qq功能落实到底,基本上都不是个人考虑的事情,而且不同的平台上使用的编程语言的种类还不一样,实现的方式还是多少有些差异,针对楼主的题目利用java开发小程序。
其实这个另外的深层含义,如何知道自己是不是能够成为一个标准的java程序员?
1.首先要把java基础知识搞定,这点只要是从事java开发都绕不开的问题
2.java高级编程,掌握如何判断内存以及性能问题,多线程,网络编程,反射机制等基本功能
3.如何在服务端开发需要掌握至少一种框架,并且尝试在这个框架上实践项目
编写任何代码都需要有一个扎实的基本功, 初学者在找不到实践项目的情况下能做的就是打好基础。
原文发布时间为:2018-10-5
本文作者:东辉在线
关注公众号
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
工作2年半跳槽面试阿里,成功拿到offer,凭什么?
2015年刚毕业的我,进入了一家小小的公司实习工作,在学校学了三年软件开发的我,还是想去寻找一份互联网行业的工作,这样更能学以致用发挥自己的特长。一直到18年三月份,我辞掉已有的工作,北上去面试,且成功拿到offer,面试回来后,好多人问我,你凭什么能拿到阿里的offer,你只不过是刚毕业工作两年的小白。当时我只对他们笑了笑,以谦虚的语气回答:运气好运气好!但其实并不是运气好这么简单的,没实力没底气你敢去阿里面试么?我想大家一致的回答都是一样的,“不敢去”!那我凭什么才两年经验的小白会面上阿里,其实我是有底牌的。 那现在来聊一聊我所遇到的一些面试经历,希望给各位寻求新机会的小伙伴一个参考。总共面完5家收了4个offer,应该算是比较成功的吧。 由于种种原因,博文中所涉及的公司均以代号标志,且我能告诉大家的也只有面试题,其他的不便透露细节,希望大家理解。 面试题 A公司 写出java中synchronized的使用方式。 Java中设置最大堆和最小堆内存的参数是什么? volatile的作用? 一道设计题 多个线程同时读写,读线程的数量远远⼤于写线程,你认为应该如何解决 并发的问题?你会...
-
下一篇
内存顺序(Memory Order)
这篇文章主要介绍内存顺序(Memory Order),然后会结合 RocksDB | LevelDB 中的 SkipList 源码来具体分析 RocksDB SkipList 如何通过内存顺序和原子操作做到无锁并发(一写多读)。 Memory Order 内存顺序描述了计算机 CPU 获取内存的顺序,内存的排序既可能发生在编译器编译期间,也可能发生在 CPU 指令执行期间。 为了尽可能地提高计算机资源利用率和性能,编译器会对代码进行重新排序, CPU 会对指令进行重新排序、延缓执行、各种缓存等等,以达到更好的执行效果。当然,任何排序都不能违背代码本身所表达的意义,并且在单线程情况下,通常不会有任何问题。 但是在多线程环境下,比如无锁(lock-free)数据结构的设计中,指令的乱序执行会造成无法预测的行为。所以我们通常引入内存栅栏(Mem
相关文章
文章评论
共有0条评论来说两句吧...



微信收款码
支付宝收款码