哈喽,大家好,我是程序员Karos,在之前我的大部分博客都是Java的,大家也知道,之前我主要是做Java方向,不过最近我个人也在学习Go的路线,这篇文章主要带大家简单了解一下Go语言和Java语言的区别
这里我们从不同的观察点来看,分别从技术上和行业上。
作为技术人,那么我们首先从技术上面来分析,直击要点。
更多的特性区别,如:反射、线程池和协程、初始化等等区别,我们在后面的文章中讲。
从当前市场趋势来看,Java的岗位多,但是投递的人也很多,同时也趋向于人才饱和,近两年大部分Java岗位的薪资也比往期有所下降
总体来说,除了大厂外,大部分企业的开出的薪资相比以前都有所下降。
对于2025年校招行情(来源于某面经网):
总体来说,今年也有好转的趋势,这里只是简单的给大家了解下情况,如果想要了解更真实的校招,可以去牛客网看一下。
今年相比过去两年确实好一点,但是对于开发岗来说,还是比较看学历,目前拿出offer来show的同学大部分都是985和211的同学,双非的同学还是比较少,对学历还是有一定要求。
如果选择Go作为主要开发语言,目前的话,Go学习的人相比java来说少一些的,但是岗位也少,只有大厂、独角兽和一些初创公司在用。
学习Golang,也可以让自己的就业面相对广一些,虽然你会Java,你也可以面试Golang的公司,毕竟都是后端。
如果是走后端开发,其实学习路线也是大相庭径的: 语法基础、各种数据库、消息队列、网络编程框架、设计模式、微服务...等等,然后就是针对不同的语言进行不同的八股文吟唱,当然项目经验也很重要。
go从语法上来看确实比较简单,用组合的方式代替继承,没有显式继承,这样大大增大了系统的灵活度,但是对泛型的支持还是有待优化,同时相比Java来说,生态较少,原生也不支持Stream流等操作,开启协程特别方便,在函数前面加个go就可以。
如果让我来做为一个项目架构来进行语言选择的话,主要还是看团队中大家最熟悉的语言吧,其次对于业务来进行具体的选型,需要cpu处理过多的,选择java,大量并发的选择go,混合使用,而且go原生支持rpc(虽然一般用grpc)。
不过最近也在思考一个问题,既然有了GMP模型,还有没有必要用协程池呢?欢迎大家讨论(具体的我们下一期解答)。
下一期:Java转Go的A型路,让你从弯道超车,早日抓住Golang这一杀器 —— 如何从Java快速转型到Golang
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。