【JAVA】JAVA与C++的区别与联系

news2024/11/16 13:38:52

在这里插入图片描述


个人主页:【😊个人主页】
系列专栏:【❤️初识JAVA】


文章目录

  • 前言
  • 两方介绍
    • C++
    • JAVA
  • 不同
      • ==|Java不支持指针、模板、指针重载、联合等|==
      • ==|支持析构函数|==
      • ==|条件编译和包含|==
      • ==|螺纹支架|==
      • ==|默认参数|==
      • ==|转到语句|==
      • ==|多重继承|==
      • ==|异常处理|==
      • ==|方法重载和操作符重载|==
      • ==|文件注释|==
      • ==|平台无关|==
  • 关系


前言

也许是因为最先接触的编程语言是C语言,在此之后,每当我学习一门新的语言时,总会自然的去与C语言进行比较,JAVA也自然在内,但我总感觉不对,JAVA这个年轻人不应该不讲武德的去偷袭C语言这个老同志,那么就让JAVA与C语言的“儿子”C++进行比较吧!
在这里插入图片描述

两方介绍

C++

C++(c plus plus)是一种计算机高级程序设计语言,由C语言扩展升级而产生,最早于1979年由本贾尼·斯特劳斯特卢普在AT&T贝尔工作室研发。

C++既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计。 C++几乎可以创建任何类型的程序:游戏、设备驱动程序、HPC、云、桌面、嵌入式和移动应用等。 甚至用于其他编程语言的库和编译器也使用C++编写

在这里插入图片描述

JAVA

Java 是一个通用术语,用于表示 Java 软件及其组件,包括“Java 运行时环境 (JRE)”、“Java 虚拟机 (JVM)”以及“插件”。

Java具有大部分编程语言所共有的一些特征,被特意设计用于互联网的分布式环境Java具有类似于C++语言的形式和感觉,但它要比C++语言更易于使用,而且在编程时彻底采用了一种以对象为导向的方式。

在这里插入图片描述


不同

|Java不支持指针、模板、指针重载、联合等|

Java的启动者最初说“没有指针!”然而,当许多开发人员谈到如何在没有指针的情况下运行时,启动者开始说“受限指针”。Java支持它所称的“引用”引用的行为相当于C++语言中的指针。然而,您不能在Java中对指针执行数字运算。引用有类型,它们是安全组成的。这些引用不能被破译为原始地址,也不允许进行危险的更改。C++支持指针、结构、联合、模板、运算符重载或指针运算。

|支持析构函数|

Java不支持析构函数,它有一个自动垃圾收集系统。C++支持析构函数,当一个对象被销毁时,它会被调用。

|条件编译和包含|

Java不支持条件编译和包含。C++支持条件编译和包含。

|螺纹支架|

Java内置了Java中的线程支持。Java中有一个thread类,inherit可以创建一个新的线程来重写run方法。C++没有内置的支持,它依赖于第三方库。

|默认参数|

Java不支持默认参数,Java中没有(::),策略定义应该可靠地发生在类内部,因此也不需要确定范围。C++支持的默认参数,C++具有范围解析(::),它利用和表征一个类外的策略,从一个邻域变量附加存在类似的名称的程度内获得一个世界范围内的变量。

|转到语句|

Java中没有goto语句。关键字const和goto是保留的,即使它们没有被使用。C++有goto功能,尽管如此,使用goto解释并不是一个很好的实践。

|多重继承|

java不提供多个继承,至少在C++中没有这样的意义。C++支持继承,关键字virtual可用于确定各种遗留问题(如果有)中的歧义。

|异常处理|

Java异常处理是不同的,因为没有析构函数。在Java中,try/catch必须定义函数是否声明可能引发异常。在C++中,不管容量是否抛出豁免,都可以排除尝试/获取。

|方法重载和操作符重载|

Java有方法重载,但没有操作符重载,String类确实使用+和+=运算符连接字符串,字符串表达式使用自动类型转换,但这是一种特殊的内置情况。C++支持技术重载和管理员过载。

|文件注释|

Java内置了对文档注释的支持(/**…*/);因此,Java源文件可以包含自己的文档,这些文档由单独的工具(通常是Javadoc文档)读取并重新格式化为HTML。这有助于以轻松的方式维护文档。C++不支持文档注释。

|平台无关|

Java在很大程度上是解释的,因此与平台无关。C++创建抗议代码,类似的代码可能无法在不同的阶段运行。

关系

java和C++没有关系,如果硬说有什么联系的话,倒是可以说语法上比较相似,Java诞生于C++之后,由于C++语言本身比较庞杂,所以Java可以说是在语法上对C++的优化与简化,但是Java是运行在虚拟机之上,不具备底层控制能力,这一点与C++不同。Java格式的文件一般是有包含Java源代码的文件,未经过编译,是不能直接运行的,所以Java软件中不会有Java格式文件,而且软件的作者也不会让自己的源代码公开,这样对自己的软件保护不利。至于jad文件,主要是对可执行文件打包所产生的文件,这种文件可以被识别并直接运行,使部署安装变的简洁。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/739177.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

对表中的数据操作

目录标题 创建一个工作者的表 ,对表中数据进行相关操作worker表要求表中的数据内容 对数据的操作1.显示所有职工的基本信息2.查询所有职工所属部门的部门号,不显示重复的部门号3.求出所有职工的人数4.列出最高工和最低工资5.列出职工的平均工资和总工资6…

卷积神经网络CNN进阶与搭建

目录 Pooling(池化)ReluResNetGradient VanishingFeature scalingImage NormalizationBatch Normalization Pooling(池化) 在降采样(Subsampling)中起作用,在不改变feature map的基础上,在卷积出来的基础上…

【LeetCode】217. 存在重复元素

217. 存在重复元素(简单) 方法一:哈希表长度比较 思路 针对重复元素,很容易就想到 set。我们可以先将 nums 中的所有元素存入set,然后比较两个数据结构的长度,如果相等则说明不存在重复元素,反…

Android View滑动处理大法

原文链接 Android View滑动处理大法 对于触控式操作来说,滑动是一个特别重要的手势操作,如何做到让应用程序的页面滑动起来如丝般顺滑,让用户感觉到手起刀落的流畅感,是开发人猿需要重点解决的问题,这对提升用户体验是…

Python:使用 np.lib.stride_tricks.sliding_window_view 将立方体切割成N个三维小块

函数说明:np.lib.stride_tricks.sliding_window_view(arr, window_shape) 参数说明: arr:要创建滑动窗口视图的数组。 window_shape:滑动窗口的形状,表示切割出的小块的大小。 作用:用于创建滑动窗口视图。…

软件设计模式与体系结构-软件体系-基于事件的软件体系结构

目录 三、基于事件的软件体系结构代码显式调用隐式调用事件系统软件体系结构的概念事件系统的连接机制 例子:图形用户界面事件系统调度策略1.带有分离的派遣模块的事件管理器 观察者模式类图观察者模式应用实例 课程作业 三、基于事件的软件体系结构 计算机中&…

Prototype Completion for Few-Shot Learning

小样本学习的目的是用很少的例子来识别新类。基于预训练的方法有效地解决了通过预训练一个特征提取器,然后通过最近的基于质心的元学习对其进行微调 (pretraining fine-tuning)。然而,结果表明微调步骤使边际改进。在本文中,1)我们找出原因,…

Kafka入门,漏消费和重复消费, 消费者事务,数据积压(二十四)

漏消费和重复消费 重复消费:已经消费了数据,但是offset没提交。 漏消费:先提交offset后消费,有可能会造成数据得漏消费 消费者事务 如果向完成consumer端得进准一次性消费,那么需要Kafka消费端将消费过程和提交offs…

Gradio库中的State模块:保存用户会话状态的神秘组件

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️ 👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…

Python Flask构建微信小程序订餐系统 (六)

🔥 账号管理 🔥 展示账户列表 默认情况下的账户列表布局 查询用户信息 查询 所有用户信息 按照 倒序 的方式查询出来 User.query.order_by( User.uid.desc() ).all() ......@route_account.route("/index") def index():#模版文件夹取名叫 "account/login…

【netty】Netty模型

工作原理 1)Netty抽象出两组线程池 BossGroup 专门负责接收客户端的连接, WorkerGroup 专门负责网络的读写; 2)BossGroup 和 WorkerGroup 类型都是 NioEventLoopGroup 3)NioEventLoopGroup 相当于一个事件循环组, 这个组中含有多…

RabbitMQ系列(17)--延迟队列的简介与实现

1、延迟队列的概念 延迟队列内部是有序的,重要的特性体现在它的延迟属性上,延迟队列中的元素希望在指定时间到了之后或之前取出处理,简单的说延迟队列就是用来存放需要在指定时间被处理的元素的队列。 2、延迟队列的应用场景 (1)订单指定时…

Python实现本地电脑启动HTTP服务

在Python中,可以使用Python内置的http.server模块来启动一个简单的HTTP服务器。以下是一个简单的Python代码示例,实现本地电脑启动HTTP服务: import http.server import socketserverport 8081# 在当前目录下启动http服务器 Handler http.…

JavaWeb 速通JavaScript

目录 一、JavaScript快速入门 1.基本介绍 : 2.JavaScript特点 : 3.JavaScript使用方式 : 1 方式一 : 写在 2 方式二 : 以外部文件形式引入 PS : 注意事项 4.JavaScript查错方式 : 二、JavaScript数据类型 1.变量 : 2.数据类型 : 3.特殊值 : 三、JavaScript运算符 1.算…

解决forest低版本请求不安全的网站出现SSL认证不通过问题

文章目录 前言解决问题的步骤1、当然是百度2、官网3、看源码4、GPT5、直接去gitee上看源代码的问题 解决一解决二 前言 先说结论:无法解决 那既然无法解决,为啥还要写这样一篇文章呢,是因为这个问题我弄了一天多,我觉得有必要记…

SpringBoot开启子线程执行任务

目录 一、EnableAsync 二、Async 三、测试 一、EnableAsync 二、Async Service public class IotLocationServiceImpl {Asyncpublic void testA() {try {// 模拟阻塞Thread.sleep(5000);System.out.println("子线程执行完毕");} catch (InterruptedException e) {…

WPS Office AI实战:智能表格化身智能助理

前面我们已经拿 WPS AI 对Word文字、PPT幻灯片、PDF 做了开箱体验,还没有看过的小伙伴,请翻看以前的文章,本文开始对【智能表格】进行AI开箱测验。 表格在日常的数据处理中占绝对地位,但表格处理并不是每一个人都擅长,…

《向量数据库指南》——Milvus 中的向量索引概览和平面索引

目录 Milvus 中的向量索引 索引概览 平面索引 在之前的教程中,我们简单介绍了单词 Embedding 示例,了解了 Embedding 的强大,以及如何在向量数据库中进行向量存储和索引。此外,我们也简单介绍了最近邻搜索算法,这个问题涉及根据所选距离度量找到距离查询向量最接近的向…

spring boot+MySQL智慧食堂”设计与实现(包论文)

“智慧食堂”系统运用springboot框架开发,MIS的总体思想,以及MYSQL等技术的支持下共同完成了该系统的开发,实现了“智慧食堂”系统管理的信息化,使用户体验到更优秀的“智慧食堂”管理系统,管理员管理操作将更加方便&a…

青岛大学_王卓老师【数据结构与算法】Week05_01_栈和队列的定义和特点1_学习笔记

本文是个人学习笔记,素材来自青岛大学王卓老师的教学视频。 一方面用于学习记录与分享, 另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。 如有侵权,请留言作删文处理。 课程视频链接: 数据结构与算法基础…