在纷繁复杂的编程语言中,Java一直是深受开发者和企业欢迎的编程语言。从2001年起,Java在TIOBE榜单中几乎排在首位,偶尔排在第二位。受欢迎程度如此高、使用广泛的编程语言肯定会有一些需要掌握的特定技能。
CVCompiler从AngelList,StackOverflow,LinkedIn等网站收集了300个Java招聘需求,并从这300个招聘需求中统计出了企业想要Java程序员掌握的技能。
一、用于Web编程
大多数企业都喜欢使用SpringMVC构建Web应用程序的后端,使用Angular或React.js前端框架来构建应用程序的前端。这意味着,Java程序员虽然不需要完全掌握JavaScript前端框架的知识,但是需要了解Java代码如何与前端框架进行交互。
最受欢迎的Java后端框架是ApacheStruts。与Spring一样,ApacheStruts自5年前发布以来,一直在跟随Java的更新步伐,不同的是,SpringMVC只是复杂解决方案的一部分,而ApacheStruts可以处理应用程序的多个方面,例如测试或数据访问。
二、数据处理
很多人都认为大数据并不是Java擅长的应用场景,但是CVCompiler的调查结果显示Java在大数据方面的应用正在崛起,甚至CVCompiler认为在数据科学的市场,Java可能会与Python相提并论。
很多企业招聘人员都希望Java应聘者能够熟悉ApacheKafka、Hadoop、Azure以及Spark等与大数据相关的解决方案。
三、微服务
填写下面表单即可预约申请免费试听java课程!害怕学不会?助教陪读,随时解惑!担心就业?一地学习,可全国推荐就业!
很多经验丰富的开发人员都认为Java是微服务开发的最 佳编程语言,Java本身也在积极支持微服务,例如2019年,JakartaEE社区的优先级就是支持微服务。
Java微服务框架也经历了大洗牌,SpringBoot和SpringCloud进入晚期大众阶段,它们已经成为企业信任的Java微服务开发框架。Helidon和Microprofile进入早期采用者阶段,不过vert.x可能会因为相对利基的市场无法跨过早期采用者阶段。
四、数据库和Web服务器
提到Java在数据库方面的使用场景,相信很多人都会想到目前比较流行的NoSQL数据库Cassandra和MongoDB。而在Web服务器方面,Tomcat和Apache也绝 对是领导者的角色。
国外开发者如何看待Java的发展趋势
从上文中我们可以看到,时至今日,Java仍然在众多使用场景中占据着举足轻重的位置。那么,Java未来将如何发展呢?我们搜集了一些国外开发者对Java的趋势判断,以及他们认为现阶段需要掌握的Java相关技能。
一、RedMonk创始人JamesGovernor
在不久的将来,我们可能会看到Quarkus(KubernetesNativeJava框架)等Java框架及其相关技术会越来越受到关注。例如,它可能是Vert.x,因为Java正在积极响应和参与容器革命。
二、JavaChampion,JavaOneRockstarConsultantAdamBien
有一个现象有点让我惊讶,那就是与Spring相比,SpringBoot的受欢迎程度居然较低。另外,JPA(JavaPersistenceAPI),JavaEEAPI之一,被列为独立项目,加上对SQL技能的强烈需求,都表明了Java市场对关系数据库的持续兴趣。
另外,Maven作为领先的构建工具,市场体现出了对Maven技能的强烈需求,而ApacheKafka虽然非常流行,但是并不是适用于所有项目的通用架构,所以市场需求反响不是很强烈。
作为一名JavaEE开发人员,如果想要在市场中具备强劲的竞争力,那么他需要掌握以下技能,JPA、SQL、JMS(Kafka也是一种JMS实现)、JAX-RS(REST)、Maven(JavaEE中的缺省值)、Git(事实上的标准)。
三、Netflix的高级软件工程师AlexBorysov
如今,Spring框架和微服务体系结构实际上已经成为Java世界中的标准。但是,不断发展的行业要求软件工程师在掌握现有Java技能的基础上,还要开发新的Java技能。ServiceMesh和serviceproxy正在改变微服务的开发方式,所以Java程序员也要积极学习Istio、Linkerd2或Envoy。另外,随着越来越多的公司转向公有云和混合云,拥有亚马逊AWS、谷歌云平台或微软Azure的经验非常重要。
Java领域中,反应式编程处于上升趋势,虽然我认为它不会取代传统的命令式编程,但是我们需要了解什么是反应式编程,反应式编程如何改变Java生态,以及一些反应式框架,例如ProjectReactor、RxJava、SpringWebFlux等。
在数据存储方面,NoSQL和多语言持久性是当今工程师必 备的Java技能。NewSQL的发展同样值得期待,例如GoogleSpanner就是作为服务在生产环境中应用的一个最 佳案例。
四、JavaChampion,SebastianDaschner
在企业Java项目中,我已经不太看得到SOA的需求,而Spring和SpringBoot在实际应用中经常同时使用,所以这时探究两者的区别就不是特别有意义了。另外,我看到大家对各种云原生技术的兴趣越来越大,如果这种趋势继续发展下去,相信未来几年,Java也会变得更加有趣。
除了以上开发者,InfoQ首 席编辑CharlesHumble也针对Java的未来发展趋势发表了自己的看法,他认为:
Java模块化系统采用也是一个很有趣的话题。我敢肯定OSGI拥护者对于将它放在创新者阶段会有意见,但这样做可能是对的。
我想可以将Clojure移到晚期大众阶段。当然,人们还在用它,但我感觉到它的使用量在下降,而且它本身面向的就是利基市场。
我会将Ceylon移掉。它一直以来都没有获得太多关注,而且我不认为进入Eclipse会给它带来多大帮助。这个项目的活跃度很低,过去6个月只有10个代码提交。
测试框架的趋势看起来相当稳定。我们要把它移掉吗?从采用率来看,我给它们排个顺序:JUnit、TestNG/Cucumber、Spock,但似乎变化不大?
SmartBear最近收购了Cucumber,可能会促进它的发展,但即使是这样,我仍然倾向于把它们移掉。
人们似乎对JVM上的Node不感兴趣?我想可以把它移掉。
我很想把Kotlin移到早期大众阶段,它是我近来最经常听到的一门JVM编程语言,这要得益于Android开发的流行。可以说,它已经越过了鸿沟,但仍然落后于其他编程语言,比如Groovy、Swift或Go语言。
我觉得Scala可以留在晚期大众阶段,人们会逐步弃用它。
针对不同版本的Java,CharlesHumble认为:“Java8仍然处在晚期大众阶段,Java11在早期采用者阶段,Java11在创新者阶段。”
如果你现在想学习Java,赢取高薪工作机会,非常简单,填写下面信息,学好Java技术高薪工作机会唾手可得。
一级建造师二级建造师消防工程师造价工程师土建职称房地产经纪人公路检测工程师建筑八大员注册建筑师二级造价师监理工程师咨询工程师房地产估价师 城乡规划师结构工程师岩土工程师安全工程师设备监理师环境影响评价土地登记代理公路造价师公路监理师化工工程师暖通工程师给排水工程师计量工程师
执业药师执业医师卫生资格考试卫生高级职称护士资格证初级护师主管护师住院医师临床执业医师临床助理医师中医执业医师中医助理医师中西医医师中西医助理口腔执业医师口腔助理医师公共卫生医师公卫助理医师实践技能内科主治医师外科主治医师中医内科主治儿科主治医师妇产科医师西药士/师中药士/师临床检验技师临床医学理论中医理论