Java|那些C/C++做不好的事


Java|那些C/C++做不好的事
文章图片
Java|那些C/C++做不好的事
文章图片
Java|那些C/C++做不好的事
我开始学习C / C ++编程 。 创建小型命令行程序并实现各种算法让我感觉到非常有趣 。 我认为 , C非常适合理解面向OOP的编程和C ++概念 。 这两种语言对于系统编程而言都是非常出色的语言 , 如果没有C , 就不会有操作系统 。
但是 , 当涉及到基于Web的应用程序级编程时 , 我发现C / C ++的某些质量有很大的改进范围 。
1.低级别-与Java不同 , C和C ++都直接作为二进制文件编译为机器级代码 , 而Java则编译为字节码 , 而C#编译为MSIL , 这使得它们可以在任何OS的任何计算机上运行 。 但是在C / C ++的整个操作系统上 , 可移植性要困难得多 , 因为每台机器都不同 , 因此您需要为特定的硬件和OS编译二进制文件 , 这很麻烦 。 例如 , 您需要考虑您的代码是否符合POSIX 。 仅仅因为它可以在Windows上运行并不意味着它可以在Mac / Linux上运行 。
2.语法-我发现c ++的语法非常详细-这意味着有时必须非常小心 。 随着深入研究 , 您将了解何时字符串比const char * 更好 , 反之亦然 。
3.缺乏工业级3层堆栈(框架)-这可能是Web开发中不使用C / C ++的主要原因 。 J2EE和Spring只是使用Java编写的众多堆栈中的两个 。 在前端网络中使用jsp , 在J2EE中使用Java用于业务层 , 使用jdbc进行数据库操作 , 类似地 , 在网页中使用ASP , 在dotnet框架中使用C#在业务层中使用ADO , 在数据库操作中使用ADO , 在Python中使用Django , 在Ruby中使用Rails , 在Java中使用MEAN和MERN, C / C ++没有 。 因此 , 在构建工具之前 , 您将首先构建组件 。
4.玩指针-如果您在C ++的基础上成长 , 那么您要么会很高兴拥有对确切的内存地址的控制权 , 要么会为大量使用指针感到困惑 。 如果您错过星号(*) , 则很容易使您的应用程序崩溃 , 因为您所需的内存地址与您取消引用的内存地址将完全不同 。
5.手动控制-能力越强 , 责任越大 。 C ++是最好的例子 。 它使您对计算机有太多的控制权 , 使您想知道为什么它自己不处理<插入某些操作>?也许在以后的修订版中已经解决了这个问题 , 但是一个例子是我发现不需要用空字符终止字符串 。 您可以做的事情超出了不允许的范围 。
【Java|那些C/C++做不好的事】最后不要误会我的意思 , 我喜欢C / C ++ , 没有C / C ++ , 计算机行业就不可能发生任何新的事情 。 实际上 , 它还有其他用途-互联网浏览器 , 计算机视觉工具 , 甚至Windows操作系统都是用C ++编写的 。 在做出决定之前 , 我只会尝试研究哪种语言最适合什么目的 。


    推荐阅读