Java数据类型及运算符及数组(与C语言对比)

news2024/10/6 5:56:16

Java和C语言在数据类型大部分相同,但是也有不同

1.新增了byte类型(相当于C语言中把char用作整数一样)

2.然后就是char类型的大小改为了2字节。 

3.布尔型改名为boolean而不是bool,且大小没有明确规定,方便进行不同平台之间的移植!

4.没有有符号无符号的区分,Java都是有符合,即正负都可以表示!

但是Java里面不再有指针这个概念了,而是将数据类型分成了基本数据类型引用数据类型。

基本数据类型就是刚刚的8种类型,而引用数据类型就包括String,数组,类,接口,我们会慢慢接触到的!

然后我们讲Java为了保证安全而与C语言不一样的地方!

1.局部变量必须初始化才能使用(否则就直接报错),而不是像C语言哪有还有随机值!

2.直接赋值的字面值常量不能超过范围(仅字面值常量,并不是不可能超范围,如果超出范围同样会溢出)

整数类型的区别

除此之外如同C语言中的double和float中默认浮点数是double一样

Java中的int和long也可以加L/l区分!

其次就是byte类型的整形提升

byte byte 都是相同类型 , 但是出现编译报错 . 原因是 , 虽然 a b 都是 byte, 但是计算 a + b 会先将 a 和 b 都提升成 int, 再进行计算 , 得到的结果也是 int, 这是赋给 c, 就会出现上述错误 .
由于计算机的 CPU 通常是按照 4 个字节为单位从内存中读写数据 . 为了硬件上实现方便 , 诸如 byte short 这种低于 4 个字节的类型 , 会先提升成 int, 再参与计算

布尔型的区别

1.首先是名字不是bool而是boolean!

2.大小没有规定!

3.打印出来的是true和false而不是像C语言打印0或者1的数值出来!

4.Java中不存在0为假,非0为真这种说法,即boolean不能和整数进行转化!

字符串类型

1.String后面没有什么以\0结尾这种说法,String里面本身就是有一个数组,根本不需要\0做标识符!

2.String不是包装类型(并且String连基本数据类型都不是,更不谈包装类型)(最后会提到包装类)

3.整形和字符串的转换也非常简单

 

4.字符串+其他这个时候+就是拼接而不是+!

包装类型

基础数据类型会有其对应的包装类型,其中包含一些有关基础数据类型的功能被封装其中!

如Integer(int),Charcter(char).Boolean(boolean),short(Short),byte(Byte),long(Long)

使用类似如下

这些都是基础类型的包装类,但是大家现在还没有学类,所以大家见一下就行,以后大家就会理解这是什么东西的!

然后就是运算符

常见的加减乘除,取余,取模等C语言基本相同!

但是Java支持浮点数取模!除此之外的就不再赘述!

数组

Java中不存在指针的概念,所以就有一套新的规则去解决这个问题!

这个地方arr1和arr2本质只是一个指向(引用类型),所以可以通过直接赋值改变指向其指向!

如图所示,并且如果一块内存没有被指,就会自动回收,例如此处arr2原本指向的空间就会在适当的时机被系统回收!这样就不用像C语言那样手动管理内存,大大的简化了内存管理!提高了程序的安全性!

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

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

相关文章

使用dev_dbg调试

首先内核要使能两个配置才可以使用。一般内核都是打开的。 CONFIG_DEBUG_FSy CONFIG_DYNAMIC_DEBUGy 当编译选项CONFIG_DYNAMIC_DEBUG打开的时候,在编译阶段,kernel会把所有使用dev_dbg()的信息记录在一个table中,这些信息我们可以从/sys/k…

在线预览多类型文件_全栈

目录 一、下载运行项目 二、项目功能 三、前端项目引用 四、文件预览样式更改 在做项目时经常用到在线预览文件,给大家介绍一个好用的在线预览文件项目。使用技术是后端Java,前端Freemarker模板。 FreeMarker 特别适应与 MVC 模式的 Web 应用&#x…

从“产品的RFM分析”看如何探索“职业方向”

我们在做产品分析时,经常会用到一种方法“产品的RFM分析”,它是一种客户细分和价值评估的常用方法,广泛应用于电子商务、零售和其他众多行业,它可以帮助企业和产品团队更好地理解用户行为,优化营销策略,提升…

解禁日大涨,爱玛科技的投资前景值得信任吗?

6月17日,爱玛迎来6.28亿股、金额超190亿元的解禁,占总股本72.91%。不过,爱玛股价在巨量解禁中反而迎来涨势,因为这部分股票中,创始人张剑持有的限售股数量几乎就占了爱玛总股本的七成。某种意义上,市场认为…

【产品经理】订单处理4-拆单策略

上次讲解了订单的促销策略,本次讲解下订单处理过程中的拆单策略。 订单拆单策略分为自动拆单、手动拆单,拆单时机也分为订单未被审核前拆单、订单审核后因仓库/快递情况的拆单,本次主要讲解订单未被审核前拆单、订单审核后快递超重的拆单&am…

ollama模型CPU轻量化部署

一、定义 ollama 定义环境部署demo加载本地模型方法基本指令关闭开启ollamaollama 如何同时 运行多个模型, 多进程ollama 如何分配gpu修改模型的存储路径 二、实现 ollama 定义 ollama 是llama-cpp 的进一步封装,更加简单易用,类似于docker. 模型网址…

SFNC —— 标准特征命名约定(一)

系列文章目录 SFNC —— 标准特征命名约定(一) 文章目录 系列文章目录1、介绍1.1 约定(Conventions)功能名称和接口(Feature Name and Interface)功能类别(Feature Category)功能级别…

菜单栏(骆驼书)

代码如下: 效果图:

使用宝塔面板部署Django应用(不成功Kill Me!)

使用宝塔面板部署Django应用 文章目录 使用宝塔面板部署Django应用 本地操作宝塔面板部署可能部署失败的情况 本地操作 备份数据库 # 备份数据库 mysqldump -u root -p blog > blog.sql创建requirements # 创建requirements.txt pip freeze > requirements.txt将本项目…

揭示SOCKS5代理服务器列表的重要性

在复杂的网络安全领域中,SOCKS5代理在保护在线活动方面发挥着关键作用。本文深入探讨了SOCKS5代理服务器列表的细节,探讨了它们的应用、优势以及在增强在线安全和隐私方面不可或缺的功能。 一、理解SOCKS5代理服务器列表 作为在客户端和服务器之间进行通…

522. 最长特殊序列 II

题目 给定字符串列表 strs ,返回其中最长的特殊序列的长度。如果最长特殊序列不存在,返回 -1。 特殊序列定义如下:该序列为某字符串独有的子序列(即不能是其他字符串的子序列)。 字符串 s 的子序列可以通过删去字符…

Plonky3和Binius中的Brakedown多项式承诺协议解析及优化(3)

3.2 Expander Graph and Linear-Time Encodable Linear Code 线性时间编码是线性纠错码的一种,核心是扩展图(Expander Graph),如下图所示: Figure 3 Expander Graph Expander Graph是一种具有强连通性的稀疏图&#…

ensp防火墙web密码重置(前提通过console可以登录)

客户电脑是命令行没有用户名直接输入密码就可以登录了,但是web端不知道admin的密码 前两天遇到运维单位的一台防火墙web网页不知道用户名密码,默认的登录不了,但是通过console可以登录命令行,今天就记录下如何通过命令行修改web页…

iOS 18 照片应用程序增加了新分类用于查找二维码、收据、插图等

苹果照片应用 苹果在iOS 18的照片应用中引入了全新的设计,将图库和推荐部分合并为一个更集成的多合一视图。重新设计的实用工具部分经过全面改造,使得查找不同类型的图片更加容易。 实用工具 在iOS 17中,照片应用的实用工具部分只包括导入…

单调队列总结

单调队列的介绍 由于现在我也没接触过正经的单调队列的定义,因而引申为介绍, 单调队列,类似与单调栈,存储在单调队列里面的元素理应都是单调的,单调队列的基础使用deque(双端队列)去实现的&am…

DY-34/60C电压继电器 带板前底座 约瑟JOSEF

系列型号: DY-32电压继电器;DY-36电压继电器; DY-33电压继电器;DY-37电压继电器; DY-34电压继电器;DY-38电压继电器; DY-31电压继电器;DY-35电压继电器; DY-32/60C电…

6.17作业

//主函数 #include "widget.h" #include "from.h" #include <QApplication>int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();From f;QObject::connect(&w,&Widget::my_jump,&f,&From::jump_slot);…

如何下载mmwave_automotive_toolbox?

摘要&#xff1a;mmwave_automotive_toolbox已经没有下载连接了&#xff0c;因为它已经和radar_toolbox集成到一起了&#xff0c;本文介绍下载方法。 链接如下 Corner Radar Overview (ti.com) 本文发布的时间时2024年6月17日&#xff0c;如果上面这个链接已经无法访问&#…

如何监控员工浏览网址(有效方法分享)

在数字化办公日益普及的今天&#xff0c;合理监控员工浏览网址成为了企业管理中的一个重要议题。 这不仅关乎工作效率的提升&#xff0c;更涉及到企业信息安全与合规管理。 以下是一些有效监控员工浏览网址的方法分享&#xff0c;旨在帮助企业管理者在保障隐私的前提下&#x…

探索AI绘画工具的前沿:创新科技与艺术的无缝融合

在科技和艺术交织的时代&#xff0c;AI绘画工具以其独特的魅力引领着创作的新潮流。本文将带您深入了解AI绘画工具的前沿技术&#xff0c;并通过最新例子展示其实际应用和潜力。 AI绘画工具概述 AI绘画工具通过集成深度学习、自然语言处理等技术&#xff0c;实现了从文字描述…