c语言的==和java的==的区别

C语言中的“==”与Java语言中的“==”都属于关系运算符。在C语言中,“表达式1 ==表达式2”的意思是判断两个表达式的值是否相等,若相等,返回1,否则返回0。在Java语言中,对于“表达式1 ==表达式2”式子,如果两个表达式是非引用类型(即基本类型,如int、char、double等),则判断两个表达式的值...
c语言的==和java的==的区别
C语言中的“==”与Java语言中的“==”都属于关系运算符。
在C语言中,“表达式1 ==表达式2”的意思是判断两个表达式的值是否相等,若相等,返回1,否则返回0。
在Java语言中,对于“表达式1 ==表达式2”式子,如果两个表达式是非引用类型(即基本类型,如int、char、double等),则判断两个表达式的值是否相等,若相等,返回true,否则返回false。如果两个表达式是引用类型(如数组、类等),则除判断两个表达式的值是否相等外,还会判断两个对象是否指向同一块内存,若值和指向内存均相同,返回true,否则返回false。
在Java语言中判断两个对象的值是否相等使用equals方法,如“对象1.equals(对象2)”,即如果两个对象的值相等则返回true,否则返回false,而无需比较是否指向同一块内存。2017-05-10
相同的地方:
1、语法类似:
由于Java可以算是从C++发展而来的,因此Java与C语言的语法比较类似
2、编程的熟练程度就是对语言程序库的掌握程度:
从某种程度上来说,编程语言都是由语法和相应的程序库所构成,Java有自身的类库,C语言则有标准库。所谓的编程,就是使用与语法来调用和组合程序库中的函数。
不同的地方:
1、内存管理
在Java中,基本不用考虑内存的问题,如果想用一个对象,new一个就可以,这个过程的背后则是JRE为对象分类的一定内存,当JRE发现你不再使用这个对象的时候,他就会自动回收内存,也就是说你只管借东西,不用管归还,因为与有人当你的跟班,在你不使用的时候就把东西归还了,不过这个过程还是有的,只不过是JRE作的而已。
但是C则不同,如果你想用,你可以用malloc之类的方法申请内存,当你使用完了,因为没有跟班的,你需要自己把这块内存归还回去,也就是调用free方法来完成这个任务。由于需要显式的归还内存,因此当一个函数需要将一块内存返回给调用者的时候,问题就比较复杂了,不如面向对象和具有内存回收功能的Java那么直观了。对于这个问题,在C语言中,有几种解决方案:
(1) 在调用者中先分配好内存,作为参数传入到被调用的函数中
(2) 在被调用的函数中分配,使用完后在调用者中释放
(3) 在被调用函数中使用static变量,可以将该变量返回
2、面向对象
Java的面向对象的特点很明显,而C则是一个地道的结构化语言。 Java中有一个字符串类String, 通过调用 String.length()就可以知道字符串的长度,但是在C语言中,则需要调用函数strlen(str)来得到字符串(字符数组)的长度。由于C不是面向对象的语言,也就没有this的概念,因此当使用一个与某个“东西”相关的函数时,就需要不厌其烦的将代表这个“东西”的变量作为参数传递进去。
3、名称空间
Java通过包(package)来实现名称空间,在C语言中,所有的函数都处于同一名称空间,也就是没有名称空间,因此就会很多程序提供的api接口函数都有一个前缀,例如MYSQL的mysql_init(), mysql_real_connect(), mysql_real_query()等函数名称前面的mysql_。2017-05-10
mengvlog 阅读 9 次 更新于 2025-07-18 21:20:05 我来答关注问题0
  • C语言中的“==”与Java语言中的“==”都属于关系运算符。在C语言中,“表达式1 ==表达式2”的意思是判断两个表达式的值是否相等,若相等,返回1,否则返回0。在Java语言中,对于“表达式1 ==表达式2”式子,如果两个表达式是非引用类型(即基本类型,如int、char、double等),则判断两个表达式的值...

  •  lvterry 在java中,equals和==还有instance of 之间有什么区别啊!

    Java中的String str="abc"; String str=new String("abc");和String str = new String();的区别以及==与equals()的不同。Java运行环境有一个字符串池,由String类维护。执行语句String str="abc"时,首先查看字符串池中是否存在字符串"abc",如果存在则直接将"abc"赋给str,如果不存在则先在...

  • anonymous 简要叙述+Java+和C对表达式真假值判断过程的区别?

    在Java和C中,对于表达式真假值的判断过程有以下区别:1. Java中的布尔类型(boolean)是唯一的真值类型。在Java中,只有两种可能的值:true和false。当一个布尔表达式的值为true时,其对应的布尔类型变量的值为true;当其值为false时,对应的布尔类型变量的值为false。因此,在Java中,对布尔类型的比较运...

  •  诺诺百科 c语言中=和==的区别是谁?

    C语言是一门面向过程的计算机编程语言,与C++、C#、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质...

  •  听不清啊 c语言中=和==的区别是什么?

    C语言是一门面向过程的计算机编程语言,与C++、C#、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码...

檬味博客在线解答立即免费咨询

Java相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部