c语言难还是java难 同学都学Java,c 等编译型语言,自学python却总被同学嘲讽为是类似JavaScript的脚本语言,没前途,怎么反驳?
同学都学Java,c 等编译型语言,自学python却总被同学嘲讽为是类似JavaScript的脚本语言,没前途,怎么反驳?
还反驳啥啊!自学python别的都不会,本来就没啥前途。不信出去应聘试试,大厂考各种算法直接问蒙。小厂各种琐碎需求,开荒种地也应付不来。没看现在头条上python都往量化投资上挂嘛!就是在编程圈不好混,才跨界发展呢!在头条上搜搜看看讲python有几个正经搞开发的,国内python都快成培训行业的专用语言了。上至成人下至儿童忽悠个便!热爱编程是一回事,用编程养家糊口是另一回事。登月大家只能记住阿姆斯特朗,谁知道背后的那些科学家都叫啥?编程开发也是这样,大家只知道今日头条。背后的写算法的那些人没人了解!反驳同学无非就是证明自己的观点,让自己更有尊严。这和编程语言有啥关系?要是真热爱编程当初上学就应该选择相关的专业。在自己本专业里用心学得了,在配合编程知识辅助自己才是正道。
Java语言和C语言是同一个级别的吗?
如果你把C语言搞明白的话,再学C ,然后学Java的话就比较容易学了。Java是已经有了积木块,用积木块一块一块搭起来就是项目了。而C语言还得一步一步做积木块,在一步一步搭起来才是项目。
用相机来简单可能比较贴切的比喻是,Java是傻瓜式,而C要比较复杂的设置才能出来比较好的相片。Java是有很多的方法别人已经给你做好了,你拿来用就可以了。但C的话你得自己去写那些方法,然后再用。
如果C学好了,你能明白很多比较深入的计算机语言的原理,而Java学好了,你就是在别人搭建好的平台上的应用专家。但C还是有很多很多应用的地方。
C 与Java比较类似。
Java能不能像C语言不通过JVM虚拟机直接编译成二进制机器码,让计算机直接运行?
从语言设计的角度看是可以的,重新设计一下编译器就能实现,但从工程实践的角度看是不可行的。
其一,Java语言最大的特点就是跨平台可移植,一次开发,一次编译,多平台执行,这一特性就是靠JVM(Java虚拟机)实现的,如果改写编译器像C语言一样直接编译成了可执行程序,就失去了跨平台特性。
其二,Java语言设计之初就设计成为了一款严重依赖JRE(Java运行时环境)的语言,有部分语言设计上的缺陷必须依赖JVM来解决,比如GC(垃圾回收),我们知道,Java语言是没有内存回收能力的,因此还得靠JVM,在工程实践中,如果软件不能进行内存回收,后果将是灾难性的。
其三,Java语言是面向对象的,区别于同是面向对象的C ,Java还有一个动态特性。
它允许程序动态地装入运行过程中所需要的类,这是C 语言进行面向对象程序设计所无法实现的。在C 程序设计过程中,每当在类中增加一个实例变量或一种成员函数后,引用该类的所有子类都必须重新编译,否则将导致程序崩溃。Java从如下几方面采取措来解决这个问题。Java编译器不是将对实例变量和成员函数的引用编译为数值引用,而是将符号引用信息在字节码中保存下传递给解释器,再由解释器在完成动态连接类后,将符号引用信息转换为数值偏移量。这样,一个在存储器生成的对象不在编译过程中决定,而是延迟到运行时由解释器确定的。这样,对类中的变量和方法进行更新时就不至于影响现存的代码。解释执行字节码时,这种符号信息的查找和转换过程仅在一个新的名字出现时才进行一次,随后代码便可以全速执行。在运行时确定引用的好处是可以使用已被更新的类,而不必担心会影响原有的代码。如果程序连接了网络中另一系统中的某一类,该类的所有者也可以自由地对该类进行更新,而不会使任何引用该类的程序崩溃。而这一切同样依赖JRE。
以上几点决定了Java不能像C语言一样直接编译成机器码,当然,还有一些其它因素,但我认为上面几点是最主要的。
c语言难还是java难 c语言编译执行还是解释执行 c语言程序设计
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。