大家好,今天小编关注到一个比较有意思的话题,就是关于java语言对象真的很糟糕吗的问题,于是小编就整理了3个相关介绍Java语言对象真的很糟糕吗的解答,让我们一起看看吧。
c语言为什么就不能把JAVA压倒?
各有各的应用场景,不能谁把谁压倒。C语言和J***a都有各自的优势,不会谁压倒谁的吧,只是说哪些应用里哪种语言更适用或用得更多。
比如J***a的开源性可移植性,J***a就很方便移植,把J***a代码运行在对应平台的Jvm中,而C就很难达到这种程度。但是如果用J***a来搞系统层、驱动层,那与C比较起来,你会发现那种难搞程度让你爱上C的。
当然事物的发展谁也无法说清楚,几十年后C可能把J***a压倒,也有可能J***a把C压倒,不可预知啊。
谢谢邀请,任何语言都有其真实的存在原因,术业有专攻,未来会出现越来越来多的编程语言,但也不会动摇C语言基础根基地位,在系统和底层效率方面有强大的优势,但是毕竟大部分软件的开发还是以应用型为主,所以各种高级编程语言应运而生,至于J***A由于出现的时间比较早,占据了很大的先机,所以在市场上使用范围非常的广泛。不是谁比谁强的问题,事谁更加合适的问题。
希望能帮到你
语言的开发都有适用的范围,C语言能够操作指针,能高效访问内存,适合底层开发!j***a将指针封装,面向对象开发,适合较大工程应用开发,包括web等,而目前随着互联网和移动应用的大规模普及,J***A作用弥足珍贵
作为实际上排名第一第二的语言,c和j***a一直就是并驾齐驱的引领语言排行榜。
我们看下TIOBE(The Importance Of Being Earnest,翻译成中文是不可儿戏)语言榜(综合各大搜索数据等其他数据的综合语言关注程度的排名)。
基本是十年内的两者的动态曲线,还比较吻合,有几段c语言第一,其他j***a都是第一。不过这样算是忽略了另一个语言c++,稳稳的千年老三。他是来源于对C并对c的改进,c如果加上c和C++那就是一直C*(c#就名字像,没有啥直接干系,倒是c#和j***a一直都是两个冤家,功能及其相似)一直坐着大宝座,压着j***a。
在2017年的排行中c可能结缘于物联网兴起c又爆发了一次,并第二次取得了年度最受欢迎语言
更长期的语言排行名字显示结果也大致这样,我们的结论就是j***a势不可挡、C语言老当益壮
关于两者的对比,笔者的另一个回答中也说过了C用于底层类库、算法和操作系统、硬件驱动等方面的应用。高效而基础,在任何时候都是不可或缺的一部分。出现过很多说要替代c语言的程序语言,比如golang,基本上就是喊个口号,c依然我行我素,稳坐撸码。
c和j***a类似和汽车其他装备的关系。
没有发动机,汽车跑不了。没有c,没有tcp。unix,webkit浏览器qq,photoshop,各种大型网游。
但光有发动机你也没法坐汽车。所以还得有一堆各种框架让你完成特定的需求。J***a做很合适。。。
有人说c语言开发效率比j***a低是哪些因素导致的?
1, 语言特性不一样 比如内存管理不一样 c要求自己来管理内存,当程序变的复杂后,内存管理是一件非常复杂易错的事情,只有用过的人才能真的体会,除了正常业务逻辑之外,你会在各种指针,指针的指针上,分配内存回收内存上花费几乎与业务代码同样的时间。在j***a或者.net里有自动垃圾回收,内存的自动管理机制,不容易写出内存泄露的代码,在这点上两者就像雕刻刀和瓦匠的刀,一起修房子还是瓦刀更合适更快。在小而美的程序上,c往往能做得更好。现在的人工比机器贵,就算性能上不够好,企业也可以选择堆机器。
2,面向对象的支持 面向对象的作为一种设计思想,c语言支持得不够好,就算c++作为一款面向对象的的语言,同样因为要兼容c,而使得语言特性变得很复杂难懂,相比之下,j***a没有这样的历史包袱,得以轻装上阵。这是真正从计算机易懂到人易懂的飞跃。
3,生态 经过长期发展,自己本身适用的场景影响下,j***a在web框架,大数据,ai等等各种常用的框架上都有更完善的可以用,c在嵌入式,操作系统层面有不可替代的优势。
4, 人员[_a***_]储备 往往j***a更容易招人,而且程序更易懂,技术人员更好替换。
综合考虑,j***a要比c更容易做企业开发,开发效率上也要快很多。
因为标准的c语言没有提供针对操作系统的内容,如果要开发针对系统的应用程序就要使用系统提供的API,比如微软系统就是mfc,用起来很繁琐还不能跨平台,但是J***a是虚拟机运行,只要用虚拟机提供的类库完成应用程序就可以,不用再去研究系统API了,只要这个操作系统支持J***a虚拟机就行,可以很方便的跨平台,还有就是封装效率的问题,J***a提供的类库用起来比较简单方便这是相对c++的mfc来说,之外还有开发环境的方面,用VC6.0开发windows应用反正在c++环境下我觉得真还不是所见即所得,它那个组织结构你要深究起来还是挺费时间的,但是J***a那个环境简单的多,最后单从语言上来说c不支持面向对象J***a支持,但我觉得这不是重点,因为J***a你要是不用提供的类自己从头构建也不必c方便
由于JIT技术的进步,纯计算上J***a和C差距很小,但是J***a和C的代码不可能完全等效,因为两者内存管理的机制不同,C可以完全控制内存管理,而J***a主要靠JVM的GC功能,这导致J***a的运行效率比较稳定,而C的运行效率和代码质量密切相关。高质量的C会比高质量的J***a快,但低质量的C很可能回比低质量的J***a更慢。其实单纯比速度并不是特别公平,因为J***a天生有多线程(JIT和GC),而且内存使用量一般J***a明显要多。
J***a是c语言的后辈,它是在c语言的基础上,抛弃了一些指针之类的东西,和c完全不同的是J***a是一门面向对象的语言,J***a是跨平台的,J***a是安全的,许多要求安全的企业对J***a需求很大,J***a也一直排名语言榜第一位。以上是她的优势,它的不足是,它不够简洁,运行效率不是很高,她不是底层语言,不能直接操作硬件,不能操作硬件导致它不太底层吗,有些事情她没有办法做的很好,比如硬件编程,嵌入式之类的等。
c出生的时间比较早,简单来说,C语言更像是计算机程序语言的基础,感觉所有编程语言或多或少的能在它身上找到影子,所以学会c语言像其她语言转移也是非常简单的,c语言是完全底层的语言,比如驱动、通信协议之类,在Unix和Linux环境中也是不可或缺的,另外在嵌入式领域也大有作为,而且c语言效率极高。c语言也有一些问题,因为她是面向的,所以导致她不像面向语言的J***a灵活,尤其在团队开发的时候,她不是跨平台的,具有不可移植性。由于过于底层,所以对硬件依赖很高,导致一旦硬件环境变化,会出现一些问题,c语言的输入输出相对复杂等等问题。
C实际上学习难度比J***a要大,按理说C高手,都是令人“钦佩”的;然而,由于社会上大部分的商业项目并不一定需要多高深的技术,而是需要简单的实现技术,越简单,企业开发的成本越低,再加上J***a的跨平台性,并随着近些年J***a在移动领域的发展,使J***a市场上人才的需求越来越大,因此,J***a就业工资要明显高一些。
其实,你想使用c语言也可以面向对象开发
只不过比较麻烦,而已。
比如J***a什么特性,甚至于面向对象的特性,需要程序员自己实现。
对于普通程序猿没有必要,当然对于大神级都一样。
j***a中什么是null的对象?
一、null是代表不确定的对象
J***a中,null是一个关键字,用来标识一个不确定的对象。因此可以将null赋给引用类型变量,但不可以将null赋给基本类型变量。
比如:int a = null;是错误的。Ojbect o = null是正确的。
二、null本身不是对象,也不是Objcet的实例
null本身虽然能代表一个不确定的对象,但就null本身来说,它不是对象,也不知道什么类型,也不是j***a.lang.Object的实例。
三、J***a默认给变量赋值
在定义变量的时候,如果定义后没有给变量赋值,则J***a在运行时会自动给变量赋值。赋值原则是整数类型int、byte、short、long的自动赋值为0,带小数点的float、double自动赋值为0.0,boolean的自动赋值为false,其他各供引用类型变量自动赋值为null。
四、容器类型与null
List:允许重复元素,可以加入任意多个null。
到此,以上就是小编对于J***A语言对象真的很糟糕吗的问题就介绍到这了,希望介绍关于J***A语言对象真的很糟糕吗的3点解答对大家有用。