大家好,今天小编关注到一个比较有意思的话题,就是关于c和java语言指针区别的问题,于是小编就整理了2个相关介绍c和Java语言指针区别的解答,让我们一起看看吧。
为什么别的语言中没有像C语言一样有指针?
真正对应硬件的操作,怕指针是因为后来的程序员们不需要直接面对CPU和内存了,不需要再玩CPU的汇编了,而早期的程序员们甚至需要用拨码开关输入CPU的二进制指令,发明C语言的时候,指针是多么有用的工具。。。哦,LINUX是用C编写的,这是非常庞大而强壮的系统,里面指针的应用一点没少。。。而各种语言的编译器,各种词法分析语法分析之类的更不会少用了指针。。。调用的各种库,那里面但凡效率高点的都是C去描述的,指针用的眼花缭乱。。。说现在各种好用的编程语言不用指针了,是因为这些编程语言站在巨人的肩膀上,而这个巨人就是由带指针的C所描述的。。。
因为在别的语言中,指针不叫指针了,比如“引用”等词,或者在一些语言中,由于设计理念的关系,指针特性被封装在语言内部,而对外不可见。指针就是地址,地址就是指针,任何编程都是针对地址的编程,只不过有些事情是编译器,链接器等完成的。
可以直接使用指针的语言有C和C++,其它语言其实也会用到指针,只是对指针进行了封装。
为什么不能使用指针呢,因为指针是直接对内存地址进行操作,如果该地址是一个非法地址,很容易造成程序崩溃!比如突然蓝屏。其它语言对指针进行封装保护后,你只能通过其提供的方法进行内存访问,地址由系统进行管理,不容易出现风险。
其实,如果你能熟练运用指针,你会发现真的很方便,如果你还需要控制硬件,那真的是最高效的方法了。这也是为什么C/C++更适用于低层编程的语言。
虽然指针给编程语言强大的功能,甚至可以对底层硬件进行操作,到与之对应的是,他也给程序员代码带来极大的风险。一但程序猿自己经验不足,可能会带来严重的后果,对于较为健壮的操作系统可能影响比较小,但是对于那些健壮性不是那么好的操作系统,直接就是严重的后果。所以为了规避这种风险,现在很多编程语言都底层封装指针。
Java和c语言有什么不一样?C语言可以编写Unix系统,Java能替代c吗?
Java语言和C语言的区别还是相对比较明显的,从语言自身的定位来看,Java语言属于面向对象语言的代表,在构建复杂业务逻辑方面具有一定的优势,而C语言则是面向过程编程语言的代表。
总的来说,Java和C之间的不同,可以通过以下几个方面来进行描述:
第一:应用场景不同。Java语言属于“全场景”编程语言之一,可以应用于Web开发、Android开发、大数据开发等场景,而C语言的应用场景则相对比较集中,主要应用于操作系统开发和嵌入式开发领域。由于Java语言的应用场景更多,所以目前IT行业内Java开发的岗位也相对更多一些。
第二:技术体系不同。Java是面向对象编程语言,虽然也借鉴了C语言的很多写法,但是在技术体系的设计上更注重可移植性、安全性和可扩展性,所以Java语言更契合互联网的应用环境,这也是Java在互联网时代得到快速发展的一个重要原因。由于Java语言极强的扩展性能,所以Java语言可以在互联网时代、移动互联网时代和大数据时代都能够找到自己的位置。
第三:发展道路不同。虽然Java语言的出现要比C语言晚一些,但是Java语言的发展道路与C语言还是具有明显的区别,或者说Java的开发人员并不是想让Java取代C语言。Java语言的发展道路主要可以体现出三个特点,第一是跨平台;第二是资源整合能力强;第三是并发处理能力强。可以说Java语言在设计上是希望解决C语言之上的问题,也就是网络问题。
实际上,与Java语言同时代的Python语言,在设计思想上与Java也有很多共同点,只不过Python语言更注重库的作用,语言风格更开放(胶水语言),而Java语言依托在当时的Sun技术体系下,则显得要相对“严谨一些”,当时的Sun技术体系也想基于Java成就一个新的开发模式,只不过后来的EJB并没有取得设想的结果。
我从事互联网行业多年,目前也在带计算机专业的研究生,主要的研究方向集中在大数据和人工智能领域,我会陆续写一些关于互联网技术方面的文章,感兴趣的朋友可以关注我,相信一定会有所收获。
如果有互联网、大数据、人工智能等方面的问题,或者是考研方面的问题,都可以在评论区留言,或者私信我!
到此,以上就是小编对于c和java语言指针区别的问题就介绍到这了,希望介绍关于c和java语言指针区别的2点解答对大家有用。