C#和Java的异同总结

入门使用C,后来用C++,并认为这是世界上最好的语言(在我学习HTML之前),直到成为了一个Java从业者,现在又开始研究C#,C#的老大哥是J++,就是被Sun给干掉的那个,后来微软似乎又拿J++的一部分东西,改成了C#。虽然早就听说C#和Java很像,但万万没想到几乎一毛一样,甚至比Java的换皮语言Kotlin都像,简直双胞胎一样,相比较而言,各有所长。我是先学的Java再去看C#,这东西总让人觉得像是微软把C和CPP里面的东西揉到Java里,说道微软,就不得不提VS,如果说C#100分,VS至少给它占一半,不愧是宇宙第一IDE,甚至VS的儿子——VSCode都可以称得上神器,现在很多自己的代码我都喜欢在VSCode上写...

当然本文绝没有任何引战,语言只是工具,领导让我用C#写,我就拿C#写,让我拿Java写,我就拿Java写。要吃饭的嘛,那些动不动就说什么XXX天下第一的,辣是真的流弊。当然Html天下第一是毋容置疑的。

 先说C#有的,Java没有的:

  1. C#仍然保有指针,虽然是阉割版,一般只能在局部使用,但是热点块用指针可以说是降维打击
  2. C#可以进行运算符重载,这在我另一篇文章中详细阐述
  3. C#拥有属性,也就是说Getter和Setter和Java不同,个人比较喜欢C#的方式
  4. C#中仍然保有C/C++中的Struct(结构体),结构体不能是抽象的,也不能继承,写SpringMVC时超想把pojo写成Struct,可惜不能
  5. C#使用命名空间,而Java使用包结构,也就是说一个用using导入,另一个用import导入
  6. C#有索引器,可以少写点代码
  7. C#据说更贴合开发者,有很多语法糖,比如String首字母可以大写,可以小写
  8. C#很多文档都有官方中文版...虽然好像没什么太大影响
  9. C#支持委托特性,Java没有
  10. C#相对于Java还要简单
  11. C#常用于游戏开发,也就是C#+Unity
  12. 目前而言,Java好像有被甲骨文把门要钱的嫌疑,只是好像...之前的MySQL也是被收购后被迫营业,但C#作为微软家的,也不能说一定那啥,资本家嘛,互相交福报还是很合理的,当然现在有了OpenJDK,这是后话

再说Java有的,C#没有的

  1. Java有极其完善的框架和库,无论是Maven、Spring、SpringMVC还是MyBatis,毫不客气的说,现在的服务器市场几乎Java一统天下了,C#既然是微软弄得,自然和Windows Server有天然的亲近,可惜现在市场上还是Linux服务器占绝大多数
  2. Java的开发者更多,常年占据编程语言排行榜第一位
  3. Java更好找工作,并且难度偏低(初级程序员,相比较于C/C++)
  4. Java中有非常强大的注解
  5. Java B/C体系目前非常完善,大多数网站和Java有密不可分的关系
  6. 在GitHub上,Java的活跃度高出C#好几倍,C#程序闭源的程序可能多于Java

虽然C#写了辣么多,可就业者更注重薪资和岗位数目,当然将C#作为第二或者第三语言非常不错,语言无高低,程序员却有,吃饭还是要吃的,因此就只能加油修福报了。

你可能感兴趣的:(C#,Java,日志)