java开发 c 程序员转java好转吗?
c 程序员转java好转吗?
在这个时候,我终于有时间写一篇我想写的文章了。其实,这篇文章的标题并不十分准确。当C程序员编写java代码时,他们不必转用java而放弃C,他们只有一个选择。这两种语言各有优点。我们不要谈语言争端。让我们假设一个朋友需要这样的角色转变。在编写了多年的C语言之后,突然一个项目需要用Java来编写。
Java语言和C语言在语法上有很多相似之处,但在本质上有区别。当一个合格的C程序员写下每一行代码时,他必须记住如何存储代码中的每一个变量,堆栈结构是什么,如果处理不当,哪一块内存会造成很大的麻烦。然而,Java程序员有些不同。由于Java语言规范和Java虚拟机规范是分离的,再加上自动GC,操作性较差。但这不是坏事。毕竟,手动内存管理有其复杂性。
就个人而言,对于C程序员来说,Java语法没有问题。可以说80%以上的结构是相同的,所以这不是问题。但是如果你学英语语法,你能通过大学英语六级考试吗?我们能和外国人见面聊天吗?不一定。顺便说一句,我们要学习方言、成语和句型。当我们进入Java世界时,我们必须按照Java的规则来玩。例如,如何创建一个对象、如何比较两个对象、如何使用枚举类型、如何编写泛型代码、并发代码何时要实现上层结构、何时在代码中抛出异常以及何时使用反射。我认为,一个更专注于技术的人可能还需要至少三个月的项目培训才能获得资格。当然,我说的前提是这个C工程师有相当的基础,所以他可以站在一座山上看另一座山。
所以我认为C程序员转向Java的捷径是:学习Java习惯用法、模式和项目调整。
C程序员的另一个优势是,由于主流JVM是用C/C代码编写的,因此喜欢深入研究的人会非常有帮助。只要你有足够的调试技巧,对一切都了如指掌,这种方法也适用于JavaScript,因为V8在语法上也是C的,C#的语法要比Java漂亮得多。以泛型为例。Java泛型敢在C#前面叫泛型吗,动态等语言特性的加入让C#非常激进,C#的开发效率非常高。
回到建筑物所有者的问题上,一项技术是否牛与它的流行无关,而是与它的生态系统有关,即有多少人在为它开发软件或用它来开发软件。以操作系统为例,Linux操作系统要比windows好得多,但由于windows上的软件非常多,具有先发优势,因此Linux不能做windows上的桌面操作系统。再举一个例子,JavaScript原本是一种蹩脚的语言,但由于它的先发优势,web页面是用JavaScript开发的,越来越多的后端或桌面程序是用JS开发的。基于JS的开源软件也有很多种,所以就连微软和谷歌都在完善JavaScript,迫使它变得优秀。
总之,一项技术能否普及,不仅取决于它自身的不断奋斗,更取决于它的历史进程。
相比于C#,为什么有很多人会喜欢JAVA语法?
Java中的泛型非常棒。这就是为什么我经常讨厌Java的原因之一。
让我们先谈谈泛型的主要功能:
1。加强类型安全。例如,如果定义了一个列表
2. 提高性能,减少类型转换和装箱次数。
让我们来谈谈Java泛型的奇妙之处:
1。Java泛型实现的原理称为类型擦除。无论代码中如何定义泛型,它们在编译后都会成为对象,因此在运行时无法实现类型安全。而且,java编译器不够聪明,很容易被欺骗。例如,调用第三方接口返回list
2. 由于类型被删除,类型转换是不可避免的,所以使用泛型和非泛型不会改变性能。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。