返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >Java与C/C++的区别(转)
  • 874
分享到

Java与C/C++的区别(转)

2023-06-03 06:06:37 874人浏览 安东尼
摘要

首先应该清楚,Java是由c++发展而来的,它保留了c++的大部分内容,类似于c++,但句法更清晰,规模更小,更易学。它是在对多种程序设计语言进行了深入细致研究的基础上,据弃了其他语言的不足之处,从根本上解决了c++的固有缺陷,而产生的一种

首先应该清楚,Java是由c++发展而来的,它保留了c++的大部分内容,类似于c++,
但句法更清晰,规模更小,更易学。它是在对多种程序设计语言进行了深入细致研究的
基础上,据弃了其他语言的不足之处,从根本上解决了c++的固有缺陷,而产生的一种
新的完全面向对象的语言。
Java和c++的相似之处多于不同之处,但两种语言问几处主要的不同使得Java更容易
学习,并且编程环境更为简单。
因篇幅所限,这里不能完全列出不同之处,仅列出比较显著的区别:

1.指针
Java无指针,并且增添了自动的内存管理功能,从而有效地防
止了c/c++语言中指针操作失误,如指针悬空所造成的系统崩溃。
比w操作返回一对象的引用,类似于c++中的引用;在c++中,
new返回一个对象的指针。在Java中无指针,不会遇到下面这样的
语句:
Mywork?>Mywork();
没有指针的程序无法访问不属于它的内存,消除了在c++
中?些常见的错误,这有利于Java程序的安全
2.多重继承
c++支持多重继承,这是c++的一个特征,它允许多父类派
生一个类。尽管多重继承功能很强,但使用复杂,而且会引起许多麻
烦,编译程序实现它也很不容易。Java不支持多重继承,但允许一个
类继承多个接口(界面),实现了c++多重继承的功能,又避免了c++的
许多缺陷。
3.数据类型及类
住Java‘fJ,使用了个能和整数湖蝴的布尔类型(bo01ean),它仪有二个值:true或false。
Java是完全面向对象的语言,所有函数和变量部必须是类的一部分。除了基本数据类型(如
控型初浮点型)之外,其余的都作为类对象,包括中和数组。对象将数据(Proper山s)和方法
(meth。d)结合起来,把它们封装在类中,这样每个对象都可实现自己的特点和行为。而c++
允许将函数和变量定义为全局的。
此外,Java中取消了c/c++中的结构和联合,使编译程序更简捷。
4.自动内存管理
Java程序中所有的对象都是用new操作符建立在堆栈上,这个操作符类似于c++的
new操作符。下面的语句由一个类Readkcy建立了一个对象,然后调用该对象的work方
法:
配『9dLey my们rk;
m?work=new Readkey()
m!work.work()g
这个简单的代码片段突出了Ja调和c十十的一些主要差别,在c十十中,语句Read?
key”ywork在堆栈结构上建立了一个Readkcy的实例。在JaM中不支持基于堆栈的对象,
所以这条语句建立了一个叫”ywork的变量,该变量中存有对象Readk。7的引用。
Javs自动进行无用内存回收操作,不需要程序员进行删除。而c十十中必须由程序贝释
放内存资源,增加了程序设计者的负扔。Java中当一个对象不被再用到时,无用内存回收器
将给它加上标签以示删除。无用内存回收器在后台运行,利用空闲时间工作。
5.操作符重载
Java不支持操作符重载。操作符重载被认为是c十十的突出特征,在Java中虽然类大
体上pJ以实现这样的功能,但操作符重载的方便性仍然丢失了不少。Java语言不支持操作
符重载是为了保持Java语言尽可能简单。
6.预处理功能
Java允预处理器.因此不支持预处理功能。c/c十十在编译过程中都有一个预编泽阶
段,即众所周知的预处理器。预处理器为开发人员提供了方便,但增加丁编译的复杂性。JaM
没有预处理器,但它提供的引入语句(i”Port)与c十十预处理器的功能类似。
7. Java不支持缺省函数参数,而c十十支持。
在c中,代码组织在函数中,函数可以访问程序的全局变量。c十十增加了类,提供了类
算法,该算法是与类相连的函数,c十十类方法与Java类方法十分相似,然而,由于c十十仍
然支持c,所以不能阻止c十十开发人员使用函数,结果函数和方法混合使用使得程序比较
混乱。
Java没有函数,作为一个比c十十更纯的面向对象的语言,Java强迫开发人员把所有
例行程序包括在类中,事实上,用方法实现例行程序可激励开发人员更好地组织编码。
8 字符串
c和c十十不支持字符串变量,在c和c十十程序中使用Null终止符代表字符串的结
束,在Java中字符串是用类对象(strinR和stringBuffer)来实现的,这些类对象是Java语言
的核心,用类对象实现字符串有以下几个优点:
(1)在整个系统中建立字符串和访问字符串元素的方法是一致的;
(2)J3阳字符串类是作为Java语言的一部分定义的,而不是作为外加的延伸部分;
(3)Java字符串执行运行时检空,可帮助排除一些运行时发生的错误;
(4)可对字符串用“十”进行连接操作。
9“Goto语句
“可怕”的goto语句是c和c++的“遗物”,它是该语言技术上的合法部分,引用goto
语句引起了程序结构的混乱,不易理解,goto语句子要用于无条件转移子程序和多结构分
支技术。
鉴于以广理由,Java不提供goto语句,它虽然指定goto作为关键字,但不支持它的使
用,使程序简洁易读。
l0.类型转换
在c和c十十中有时出现数据类型的隐含转换,这就涉及了自动强制类型转换问题。例
如,在c十十中可将一浮点值赋予整型变量,并去掉其尾数。Java不支持c十十中的自动强
制类型转换,如果需要,必须由程序显式进行强制类型转换。
11.其它
(1)break和continue后可加标号,以便跳出它标识的块。如:
inTlJ;
char a;
outing;
{for(i=:i<5;i十十)
for(j=0;j<3i j++)
{if((a=(char)system.in.read())
break outing;
}}

2)析构函数为void finalize映(){}
Java并不保证一定调用该函数,因此不能依赖该函数来保证所写代码的正常运行。
(3)用packa8e将有关联的类组织在一起。例如,将自己编写的类组织成packaBe;
Packa8e mycla5se55
(4)用extaNs表示继承(派生)关系,如;
class ne订?clas5一name extends oN?class?name 47
(5)虚函数用ab列ra瓤修饰,而不用v加ual。
(6)提供丁一个创建完全虚类(界面)的方法;
Public interface intl『facenamEt//abstract mGthods)
利用界面可以为虚类定义协议,而不关心具体实施。一个类可以实现多个界面,同一个界面
也可以被多个类实现。实现界面使用imNemen贿,如:
public classname implmen比int6rfacena毗4)
(7)异常。用于捕获例外事件,增强系统容错能力
try{//可能产生例外的代码
}catch(exceptionType name){
//处理
其中exceptionType表示异常类型,如Arith
[@more@]

--结束END--

本文标题: Java与C/C++的区别(转)

本文链接: https://lsjlt.com/news/233204.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Java与C/C++的区别(转)
    首先应该清楚,Java是由C++发展而来的,它保留了c++的大部分内容,类似于c++,但句法更清晰,规模更小,更易学。它是在对多种程序设计语言进行了深入细致研究的基础上,据弃了其他语言的不足之处,从根本上解决了c++的固有缺陷,而产生的一种...
    99+
    2023-06-03
  • java与c的区别
    Java和C都是指令式语言(Imperative Language),不同的是Java有面向对象(OO)成分在里面,而C是完全面向过程的,C的高级版本C++、C#支持面向对象。另外一个不同是,Java跨平台,既不同的操作系统都可以通过JVM...
    99+
    2018-11-16
    java入门 java
  • 【JAVA】JAVA与C++的区别与联系
    个人主页:【😊个人主页】 系列专栏:【❤️初识JAVA】 文章目录 前言两方介绍C++JAVA 不同==|Java不支持指针、模板、指针重载、联合等|====|支持析构函数|====|条件编译和包含|...
    99+
    2023-08-16
    java c++ 开发语言
  • Java与C#的区别是怎样的
    本篇文章给大家分享的是有关Java与C#的区别是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。最近在学C#,从来没有想过,还会学习C#。在学习C#中,我发现C#真是个好东...
    99+
    2023-06-17
  • c++中::与.的区别
    冒号 (::) 用于访问全局命名空间或类的静态成员,而句点 (.) 用于访问类的实例成员。例如,std::cout 使用 :: 访问全局命名空间中的函数,obj.instancevar ...
    99+
    2024-04-26
    c++
  • c++中=与==的区别
    c++ 中 = 与 == 的区别:= 为赋值运算符,用于变量赋值;== 为相等比较运算符,用于比较操作数是否相等。 C++ 中 = 与 == 的区别 在 C++ 中,= 和 == 是两...
    99+
    2024-04-26
    c++
  • c#接口与java接口的区别
    接口中定义成员C#,如图我在接口ITest添加了一个字段n,那么vs直接就显示红色的底线,而错误就是接口不能包含字段java,如下图,编译也是报错但是并不是接口中不能包含而是缺少赋值,那么我们赋值一下再看。可以看到没有问题,也就是成员变量默...
    99+
    2016-05-24
    java基础 c# java 接口 区别
  • c语法与java语法区别
    c语法与java语法区别:1、标识符: (推荐学习:java课程)C可用的标识符为数字、大小写字母、下划线,不能以数字开头;Java可用的标识符除了C的三种以外,多一种美元符号($),同样不能以数字开头。2、关...
    99+
    2014-08-19
    java入门 java
  • golang与c 区别
    近年来,由于计算机领域的快速发展和新技术的不断涌现,很多新的编程语言被不断推出。Golang与C 作为两种编程语言,分别具有自己的特点和优劣势。在本文中,将对Golang和C语言进行比较,以便更好地了解它们的区别和使用情况。语法差异Gola...
    99+
    2023-05-14
  • java与c语言的区别有哪些?
    java与c语言的区别有哪些?1、Java与C内存分配不同:Java中内存分配五个区,分别为栈区(存储的是局部变量,使用完毕,立即回收),堆区(存储的是new出来的东西,实体,对象,每一个对象都有地址值,每个对象的数据都有默认值,使用完毕后...
    99+
    2020-10-28
    java教程 java c语言
  • java与c语言的区别是什么
    这篇文章将为大家详细讲解有关java与c语言的区别是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。java基本数据类型有哪些Java的基本数据类型分为:1、整数类型,用来表示整数的数据类...
    99+
    2023-06-14
  • c++中&与*的区别
    c++ 中 & 和 * 的区别在于:& 取变量地址,将地址存储在指针变量中。解引用指针变量,获取其指向的值...
    99+
    2024-04-26
    c++
  • C++与C语言的区别是什么
    这篇“C++与C语言的区别是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C++与C语言的区别是什么”文章吧。1. 结构...
    99+
    2023-06-29
  • C#与C++枚举的区别是什么
    本篇内容介绍了“C#与C++枚举的区别是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!C++与C#中枚举的区别一、C++枚举类型中的每个...
    99+
    2023-06-30
  • C++和C语言的比较与区别
    C++和C语言的比较与区别 C++和C语言是两种非常常见的编程语言,它们在很多方面都有相似的地方,但也有很多不同之处。本文将通过具体的代码示例来比较和阐述C++和C语言之间的区别。 ...
    99+
    2024-04-02
  • C++与C语言的特点及区别
    C语言和C++语言作为两种被广泛使用的编程语言,各有其独特的特点和用途。本文将探讨它们的特点及区别,并通过具体的代码示例来展示它们之间的差异。 一、C语言的特点: 过程化编程:C语言...
    99+
    2024-04-02
  • java与c语法上的区别是什么?
    java与c语法上的区别是什么?1、标识符:C可用的标识符为数字、大小写字母、下划线,不能以数字开头;【推荐教程:C语言教程】Java可用的标识符除了C的三种以外,多一种美元符号($),同样不能以数字开头。【推荐学习:java课程】2、关键...
    99+
    2021-09-30
    java教程 java c
  • C#中Backgroundworker与Thread的区别
    目录1.Backgroundworker2.Thread3.总结最近项目要用到,窗体Form程序要在后台开启几个子线程,负责和其他端进行通信,异步读写,并且来更改UI。在网上查了有B...
    99+
    2024-04-02
  • c语言中/与%的区别
    c 语言中的 / 和 % 运算符用于不同类型的除法运算:/ 执行浮点除法,返回浮点数作为结果。% 执行整数取模运算,返回整数作为余数。 C 语言中的 / 与 % 的区别 / 和 % 是...
    99+
    2024-04-28
    c语言
  • c++中double与float的区别
    c++++ 中 double 与 float 的区别 在 C++ 中,double 和 float 都是浮点数类型,但它们在精度、范围和内存占用方面存在差异。 精度: double:双...
    99+
    2024-05-14
    c++ 内存占用
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作