Java和C语言中基础概念中的区别有哪些?

Java和C语言中基础概念中的区别有哪些?

  • 标识符
  • 数据类型
  • 运算符
    • 加号
    • %号
    • & 和 |
  • 关系表达式
  • 函数声明
  • 代码规范
  • 数组

以下是Java和C语言在一些基础概念中的区别(不包含面向对象等的高级知识)

标识符

在Java中,标识符可以由数字、字母和下划线及美元符号组成,C语言中没有美元符号。

数据类型

Java的数据类型有四类八种,分别是
整型家族:byte, short, int, long
字符型:char
布尔类型: boolean
浮点型:float, double.
在这里插入图片描述
其中,在C语言中,没有byte 和 boolean类型,且C语言中 char类型的字节数为1。

在Java中,没有C语言中的 long long 或 long double 这种类型。

在Java中,整数类型和小数类型的取值范围大小关系: double > float > long > int > short > byte。
Java比C语言对数据的存储要求更严格, 只允许范围大的存范围小的 或者 一样类型的,而C语言会自动进行强制类型转换,Java更加严谨

在Java中,float类型的数据必须后边加上F或f,long类型的数据需要在后面加上L或l,一般都写的是大写的F和L,防止与数字1混淆。
在这里插入图片描述
这里会报错的原因就是 3.14默认是double类型的,而变量f时float类型的。

所以得在3.14后加上F,代表他是 f 类型的。
在这里插入图片描述

运算符

加号

在Java中,加号还可以用于字符串的拼接,而C语言不可以。

当加号左右的两边有一个字符串时,就会拼接起来形成一个新的字符串,下面来举几个例子。
在这里插入图片描述结果打印 a = 10
在这里插入图片描述
结果打印 11AAA。


%号

C语言中 %运算符只能是 整数与整数之间进行取余,而在Java中,可以是小数。
在这里插入图片描述
不过一般都是对整数取余数。


& 和 |

在C语言中,&是按位与,|是按位或,只能对整型使用,其中的位指的是二进制位。
在这里插入图片描述
在这里插入图片描述
而在Java中,除了是按位与和按位或的功能外,它们还有一种功能,就是可以当做不会发生短路的&& 和 ||。

无论是Java中还是C语言,&& 和||都会发生短路现象。

而 java中的 & 和 | 如果当作逻辑与和逻辑或使用时 是不会发生短路现象的。

在Java中,没有C语言当中的&(取地址)符号,更不会有 与之对应的 * (解引用)符号。

因为在Java中,没有指针变量,但是会有隐藏的地址。


关系表达式

在Java中,所有关系表达式的返回值均为 布尔类型的值,不是true就是false,而在C语言中,为真返回1,为假返回0。

在这里插入图片描述
在Java中,所有需要判断的地方,比如if for循环 while循环当中的判断部分 均只能接受布尔类型的值。
在这里插入图片描述
1为整型,不是布尔类型的,所以idea会直接报错。
在这里插入图片描述
而在C语言中,完完全全可以。

for循环和while就不举例子了。

函数声明

Java当中不存在方法的声明,函数写上边下边都是一样的。
在这里插入图片描述
C语言写在下边时,就必须函数声明
在这里插入图片描述
Java则没有函数声明这一说法。

代码规范

C语言习惯左大括号在下面,而Java的左大括号习惯在上一行。
在这里插入图片描述
在这里插入图片描述

数组

在Java当中,习惯将 [] 中括号跟数组当中的元素类型放在一起,而C语言不同
在这里插入图片描述
在这里插入图片描述


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

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

相关文章

【Java】字节数组 pcm 与 wav 格式互转(附原理概述)

前言 最近实现了一个文字转语音的功能,语音引擎返回的是pcm格式的数据。需要转化成wav格式前端才能播放。本文首先会给出解决方案,后续会讲背后的原理。 场景 1. pcm wav 转化工具类 入参和出参都为byte[],理论上有了 byte[] 就可以输出…

基于单片机的智能窗户控制系统的设计

摘 要: 根据单片机技术和现代传感器技术 , 本文主要针对基于单片机的智能窗户控制系统的设计进行探讨 , 仅供参考 。 关键词: 单片机 ; 智能窗户 ; 控制系统 ; 设计 在现代科学技术持续发展的带…

面完小红书算法岗,心态崩了。。。

暑期实习基本结束了,校招即将开启。 不同以往的是,当前职场环境已不再是那个双向奔赴时代了。求职者在变多,HC 在变少,岗位要求还更高了。提前准备才是完全之策。 最近,我们又陆续整理了很多大厂的面试题&#xff0c…

Python爬虫基础以及示例讲解

爬虫简介 网络爬虫 爬虫指在使用程序模拟浏览器向服务端发出网络请求,以便获取服务端返回的内容。 但这些内容可能涉及到一些机密信息,所以爬虫领域目前来讲是属于灰色领域,切勿违法犯罪。 爬虫本身作为一门技术没有任何问题,关…

Docker之overlay2的迁移

原因 docker默认将文件及其容器放置在了系统盘的挂载区内,如果长期使用会发现系统挂载区被overlay2挤爆了,因此在一开始我们将其迁移在大容量外挂磁盘上,就可以避免系统盘被挤爆,放心使用. 具体操作 # 停止容器 systemctl stop docker# 修改容器配置&#xff0c…

等差数列和等比数列的介绍及在Java编程中的实现

等差数列 (Arithmetic Sequence) 定义:等差数列是指相邻两项的差相等的数列,这个差值叫做“公差”(d)。 公式: 第 ( n ) 项的公式: 前 ( n ) 项和的公式: 示例: 假设第一项 (…

AI+前端技术的结合(实现图片识别功能)

随着人工智能技术的不断发展,AI在前端设计页面中的应用变得越来越普遍。比如:在电商平台上,可以利用对象检测技术实现商品的自动识别和分类;人脸识别;车辆检测;图片识别等等......其中一个显著的应用是在图…

数据结构_优先级队列(堆)

目录 一、优先级队列 1.1 堆 1.2 PriorityQueue接口 二、模拟实现优先级队列 2.1 初始化 2.2 创建大根堆 (向下调整) 2.3 堆的插入 2.4 堆的删除 2.5 堆排序 总结 一、优先级队列 优先级队列是一种特殊的队列,其出队顺序与入队顺序无关,而与优…

易支付宝塔一键部署项目 懒人专用包 制作

宝塔一键部署说明 https://www.bt.cn/bbs/thread-33063-1-1.html 1. auto_install.json {"php_ext":"fileinfo","chmod":[],"success_url":"install/?step3&jump1","php_versions":"80","db…

利用机器学习弄懂机器学习!

第一个问题:什么是机器学习? 机器学习是人工智能的一个子领域,它使计算机系统能够从经验中学习并改进其性能(和人一样,人也是从经验当中,实现自己的不断地学习和提升)。简单来说,机…

架构师指南:现代 Datalake 参考架构

这篇文章的缩写版本于 2024 年 3 月 26 日出现在 The New Stack 上。 旨在最大化其数据资产的企业正在采用可扩展、灵活和统一的数据存储和分析方法。这一趋势是由企业架构师推动的,他们的任务是制定符合不断变化的业务需求的基础设施。现代数据湖体系结构通过将数…

逻辑地址 线性地址 物理地址 Linux kernel 内存管理设计

linux kernel 2.6以后的MM,受到了兼容 risc arch cpu 的 MM 的启发,新的 MM 架构对 x86 上任务切换的效率上也有明显提高。 新的MM架构,GDT 不再随着进程的创建与结束而创建和删除 新的表项。 TSS段 也只有一个,进程切换时&…

深度学习入门2—— 神经网络的组成和3层神经网络的实现

由上一章结尾,我们知道神经网络的一个重要性质是它可以自动地从数据中学习到合适的权重参数。接下来会介绍神经网络的概要,然后再结合手写数字识别案例进行介绍。 1.神经网络概要 1.1从感知机到神经网 我们可以用图来表示神经网络,我们把最…

上位机图像处理和嵌入式模块部署(mcu之静态库生成和使用)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 很多同学做了很长时间的mcu和keil开发,都认为keil工程中必须包含所有的源代码,其实这是不对的。如果有一些代码我们不希望别…

IKVM.net调用Jar包实现SM4解密

近期,我深入学习了如何使用IKVM.net来调用Jar包,这次的学习经历让我对Java与.NET之间的互操作性有了更深刻的理解。IKVM.net作为一款强大的工具,为我们打通了Java与.NET之间的桥梁,使得在.NET环境中调用Java库变得简单而高效。 在…

红队内网攻防渗透:内网渗透之内网对抗:信息收集篇自动项目本机导出外部打点域内通讯PillagerBloodHound

红队内网攻防渗透 1. 内网自动化信息收集1.1 本机凭据收集类1.1.1、HackBrowserData 快速获取浏览器的账户密码1.1.2、Searchall 快速搜索服务器中的有关敏感信息还有浏览器的账户密码1.1.3、Pillager 适用于后渗透期间的信息收集工具,可以收集目标机器上敏感信息1.2 对外打点…

密码(6)

一、[NCTF 2019]Keyboard——键盘密码 1.题目: ooo yyy ii w uuu ee uuuu yyy uuuu y w uuu i i rr w i i rr rrr uuuu rrr uuuu t ii uuuu i w u rrr ee www ee yyy eee www w tt ee 2.解题: 这些字母是26键盘上的第一行,每个字母对应上…

redis类型解析汇总

redis类型解析汇总 介绍数据类型简介主要数据类型:衍生类型: 字符串(String)底层设计原理图例设计优势字符串使用方法设置字符串值获取字符串值获取和设置部分字符串获取字符串长度追加字符串设置新值并返回旧值递增/递减同时设置…

通过 WireGuard 组建虚拟局域网 实现多个局域网全互联

本文后半部分代码框较多,欢迎点击原文链接获得更佳的阅读体验。 前言 上一篇关于 WireGuard 的文章通过 Docker 安装 wg-easy 的形式来使用 WireGuard,但 wg-easy 的功能比较有限,并不能发挥出 WireGuard 的全部功力。 如果只是想要出门在外连随时随地的连回家里的局域网,…

067、Python 高阶函数的编写:优质冒泡排序

以下写了个简单的冒泡排序函数: def bubble_sort(items: list) -> list:for i in range(1, len(items)):swapped Falsefor j in range(0, len(items) - 1):if items[j] > items[j 1]:items[j], items[j 1] items[j 1], items[j]swapped Trueif not swa…