java支持的数据类型2023006

news2024/11/25 9:55:12

Java语言支持的类型分为两类:基本类型(Primitive Type)和引用类型(Reference Type)。
–基本类型包括boolean类型和数值类型。数值类型有整数类型和浮点类型。整数类型包括byte、short、int、long、char,浮点类型包括float和double。
提示:
char代表字符型,实际上字符型也是一种整数类型,相当于无符号整数类型。
–引用类型包括类、接口和数组类型,还有一种特殊的null类型。所谓引用数据类型就是对一个对象的引用,对象包括实例和数组两种。实际上,引用类型变量就是一个指针,只是Java语言里不再使用指针这个说法。
空类型(null type)就是null值的类型,这种类型没有名称。因为null类型没有名称,所以不可能声明一个null类型的变量或者转换到null类型。空引用(null)是null类型变量唯一的值,空引用(null)可以转换为任何引用类型。
在实际开发中,程序员可以忽略null类型,假定null只是引用类型的一个特殊直接量。
注意:
空引用(null)只能被转换成引用类型,不能转换成基本类型,因此不要把一个null值赋给基本数据类型的变量。

Java的基本数据类型分为两大类:boolean类型和数值类型。
而数值类型又可以分为整数类型和浮点类型,整数类型里的字符类型也可被单独对待。因此常把Java里的基本数据类型分为4类,Java只包含这8种基本数据类型,值得指出的是,字符串不是基本数据类型,字符串是一个类,也就是一个引用数据类型。

在这里插入图片描述
通常所说的整型,实际指的是如下4种类型。
byte : 一 个 byte 类 型 整 数 在 内 存 里 占 8 位 , 表 数 范 围是-128(-2的7次方)~127(2的7次方-1)。
short:一个short类型整数在内存里占16位,表数范围是-32768(-2的15次方)~32767(2的15-次方1)。
Int:一个 int 类 型 整 数 在 内 存 里 占 32 位,表数范围是-2147483648(-2的31次方)~2147483647(231-1)。
long:一个long类型整数在内存里占64位,表数范围是(-2的63次方)~(263-1)。
int是最常用的整数类型,因此在通常情况下,直接给出一个整数
值默认就是int类型。除此之外,有如下两种情形必须指出。
如果直接将一个较小的整数值(在byte或short类型的表数范 围内)赋给一个byte或short变量,系统会自动把这个整数值当成byte或者short类型来处理。
如果使用一个巨大的整数值(超出了int类型的表数范围)时,Java不会自动把这个整数值当成long类型来处理。如果希望系统把一个整数值当成long类型来处理,应在这个整数值后增加l或者L作为后缀。通常推荐使用L,因为英文字母l很容易跟数字1搞混。

Java中整数值有4种表示方式:十进制、二进制、八进制和十六进制,其中:
二进制的整数以0b或0B开头;
八进制的整数以0开头;
十六进制的整数以0x或者0X开头,其中10~15分别以a~f(此处的a~f不区
分大小写)来表示。

字符型通常用于表示单个的字符,字符型值必须使用单引号(') 括起来。

浮点型
Java的浮点类型有两种:float和double。Java的浮点类型有固定的表数范围和字段长度,且字段长度和表数范围与机器无关。Java的浮点数遵循IEEE 754标准,采用二进制数据的科学计数法来表示浮点数,
对于float型数值,第1位是符号位,接下来8位表示指数,再接下来23位表示尾数;
对于double型数值,第1位是符号位,接下来的11位表示指数,再接下来52位表示尾数。
注意:
因为Java浮点数使用二进制数据的科学计数法来表示浮点数,因此可能不能精确表示一个浮点数。例如把5.2345556f值赋给一个float类型变量,接着输出这个变量时看到这个变量的值已经发生了改变。使用double类型的浮点数比float类型的浮点数更精确,但如果浮点数的精度足够高(小数点后的数字很多时),依然可能发生这种情况。如果开发者需要精确保存一个浮点数,则可以考虑使用BigDecimal类。
double类型代表双精度浮点数,float类型代表单精度浮点数。
一个double类型的数值占8字节、64位,
一个float类型的数值占4字节、32位。
Java语言的浮点数有两种表示形式:
–十进制数形式:这种形式就是简单的浮点数,例如5.12、512.0、.512。浮点数必须包含一个小数点,否则会被当成int类型处理。
–科学计数法形式:例如5.12e2(即5.12×102),5.12E2(也是5.12×102)。必须指出的是,只有浮点类型的数值才可以使用科学计数法形式表示。例如,51200是一个int类型的值,但512E2则是浮点类型的值。
Java语言的浮点类型默认是double类型,如果希望Java把一个浮点类型值当成float类型处理,应该在这个浮点类型值后紧跟f或F。例如,
5.12代表一个double类型的值,占64位的内存空间,默认是double的;
5.12f或者5.12F才表示一个float类型的值,占32位的内存空间。
当然,也可以在一个浮点数后添加d或D后缀,强制指定double类型,但通常没必要。
Java还提供了三个特殊的浮点数值用于表示溢出和出错:
正无穷大:使用一个正数除以0将得到正无穷大,通过Double 或 Float类的POSITIVE_INFINITY 表 示 ;
负无穷大:使用一个负数除以0将得到负无穷大,通过Double 或 Float类的NEGATIVE_INFINITY表示;
非数:0.0除以0.0或对一个负数开方将得到一个非数,非数通过Double或Float类的NaN表示。
必须指出的是,
–所有的正无穷大数值都是相等的,所有的负无穷大数值都是相等的;
–NaN不与任何数值相等,甚至和NaN都不相等。
注意:
1.只有浮点数除以0才可以得到正无穷大或负无穷大,因为Java语 言会自动把和浮点数运算的0(整数)当成0.0(浮点数)处理。如果一个整数除以 0,则会抛出异常:ArithmeticException:/by zero(除以0异常)。

当程序中用到的数值位数特别多时,程序员眼睛“看花”了都看不清到底有多少位数。为了解决这种问题,Java 7引入了一个新功能:程序员可以在数值中使用下画线,不管是整型数值还是浮点型数值,都可以自由地使用下画线。通过使用下画线分隔,可以更直观地分辨数值中到底包含多少位。如下面程序所示:double a = 4.56_67777_56777;

布尔型:
布尔型只有一个boolean类型,用于表示逻辑上的“真”或 “假”。在Java语言中,boolean类型的数值只能是true或false,不能用0或者非0来代表。其他基本数据类型的值也不能转换成boolean类型。
提示:
Java规范并没有强制指定boolean类型的变量所占用的内存空 间。虽然boolean类型的变量或值只要1位即可保存,但由于大部分 计算机在分配内存时允许分配的最小内存单元是字节(8位),因此
bit大部分时候实际上占用8位。
boolean类型的值或变量主要用做旗标来进行流程控制,Java语言中使用boolean类型的变量或值控制的流程主要有如下几种。
➢ if条件控制语句
➢ while循环控制语句
➢ do while循环控制语句
➢ for循环控制语句
除此之外,boolean类型的变量和值还可在三目运算符(?:)中使用。

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

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

相关文章

dp(九)不同的子序列

不同的子序列_牛客题霸_牛客网【牛客题霸】收集各企业高频校招笔面试题目,配有官方题解,在线进行百度阿里腾讯网易等互联网名企笔试面试模拟考试练习,和牛人一起讨论经典试题,全面提升你的技术能力https://www.nowcoder.com/practice/ed2923e49d3d495f83…

Vue知识系列-axios

一、axios基础知识 axios是独立于vue的一个项目,基于promise用于浏览器和node.js的http客户端。 在浏览器中可以帮助我们完成ajax请求的发送在node.js中可以向远程接口发送请求 二、axios应用场景 三、axios的使用 第一步:创建html文件,在…

6.见过最强的后台管理系统

芋道,以开发者为中心,打造中国第一流的快速开发平台,全部开源,个人与企业可 100% 免费使用。 架构图 管理后台的 Vue3 版本采用 vue-element-plus-admin ,Vue2 版本采用 vue-element-admin 管理后台的移动端采用 uni-…

虹科方案 | 医药行业专用ECOLOG即插即用室内和设施环境监控系统

虹科ELPRO ECOLOG Plug&Play 连续监测解决方案采用功能强大的新ECOLOG-PRO硬件模块和ECOLOG-PRO Base服务器解决方案。即插即用是虹科ELPRO室内和设施环境监测解决方案增强型系列的一部分。ECOLOG即插即用是一种多功能,经济的系统,专为需要监测少于5…

转换流:代码与文件编码不一致读取乱码的问题

字符输入转换流:package com.gao;import java.io.*;public class transfer_stream {public static void main(String[] args) throws Exception {InputStream in new FileInputStream("E:\\黑马教育\\demo.txt");Reader re new InputStreamReader(in,&q…

Postman(07)Postman+OMySQL操作数据库

一、本文解决的问题 ● Postman断言需要查询数据存储情况; ● 部分业务需要从数据库中获取验证码(例如登录); ● 自动化场景需要执行数据正确性比对。 二、OMySQL连接数据库 1、OMySQL安装与启动 1.1 安装node.js 这个百度一…

【windows】VMware Workstation 不可恢复错误:(vmui) 错误代码0xc0000094

【问题描述】 打开需要启动的虚拟机后, 修改设备参数的时候,提示: VMware Workstation 不可恢复错误: (wmui) Exception 0xc0000094 has occurred。 【解决方法】 由于搭建的虚拟机环境一直在使用, 后来发现是VMware升级到17.0后…

【回眸】牛客网刷刷刷(三) Linux(续)软件工程(专题)

前言 近期的牛客网学习内容有Linux专题,以下记录一些笔试题中的Linux的知识点。 知识点 -u 用户号 指定用户的用户号;因为系统用户的用户号为 0,故指定用户号为 0; 如果同时有 -o 选项,则可以重复使用其他用户的标识…

马来酰亚胺-二硫键-活性酯;MAL-SS-NHS结构式

英 文 :MAL-SS-NHS 中文:马来酰亚胺-双硫键-活性酯 存储条件:-20C,避光,避湿 用 途:仅供科研实验使用,不用于诊治 外观: 固体或粘性液体,取决于分子量 注意事项:取用…

【机器学习】逻辑回归(理论)

逻辑回归(理论) 目录一、概论1、何为逻辑回归2、映射函数的引入3、伯努利分布二、损失函数的推导三、用逻辑回归实现多分类1、间接法:HardMax2、直接法:SoftMaxⅠ SoftMax的引入Ⅱ SoftMax的计算Ⅲ 引入SoftMax后的损失函数&#…

声网许振明:RTC 场景 UHD 视频应用和探索

大家好,我是声网的视频工程师许振明,今天跟大家主要介绍一下声网在 RTC 场景 UHD 视频的应用和探索。主要基于声网 HFR 和 VDR 两个系统来展开分享。 随着 RTC 技术的发展和应用,越来越多的场景都需要接入 RTC 的能力。尤其是随着编码技术、…

【Linux】Ubuntu20.04.5安装ROS1【教程】

文章目录【Linux】Ubuntu20.04.5安装ROS1【教程】写在前面,一些特别注意的点安装步骤大纲1.选择软件镜像源(可以省略,如果不成功再试这一步)2.添加ROS软件源和密钥3.安装ROS14.设置环境变量5.安装rosinstall6.检查安装是否成功Ref…

基于uds和modbus协议的bootloader对比

2022年参与了两个bootloader项目的开发,两个项目使用的芯片、通讯驱动不同,因此传输协议也不同,年底了将两个项目做一个对比,也顺便加深下对bootloader的理解。相同点:modbusuds刷新流程刷新流程大同小异,简…

活动星投票技能创意大赛网络评选微信的投票方式线上免费投票

“技能创意大赛”网络评选投票_建立投票链接_作品投票小程序_扫码投票制作方法现在来说,公司、企业、学校更多的想借助短视频推广自己。通过微信投票小程序,网友们就可以通过手机拍视频上传视频参加活动,而短视频微信投票评选活动既可以给用户…

C语言详解——自定义类型:结构体、枚举、联合体

🌇个人主页:平凡的小苏 📚学习格言:别人可以拷贝我的模式,但不能拷贝我不断往前的激情 🛸C语言专栏:https://blog.csdn.net/vhhhbb/category_12174730.html 小苏希望大家能从这篇文章中收获到许…

【Pytorch】稀疏矩阵的表示与加减运算

前提知识:LongTensor()是64位整数型向量,FloatTensor()是32位浮点数向量。 有大量0元素的时候,我们可以使用坐标形式存储稀疏矩阵。 一个3*3的矩阵,但是只有坐标(0,0)处有值(值为1)…

量子计算(二十二):Grover算法

文章目录 Grover算法 一、什么是搜索算法 二、怎么实现Grover搜索算法 Grover算法 一、什么是搜索算法 举一个简单的例子,在下班的高峰期,要从公司回到家里,开车走怎样的路线才能够耗时最短呢?最简单的想法,当然…

Radius vector (半径矢量)

Radius vector引言定义引言 今天给大家介绍一下什么是Radius vector。 定义 从圆心到当前位置的矢量r⃗\vec{r}r。它也被叫做位置向量。 其中,O表示圆心,这里我们称之为原点位置,A表示当前位置。因此矢量OA⃗\vec{OA}OA是一个Radius vec…

VsCode简单使用,配置c/c++编译环境,个人感受

整体感觉 本质就是一个加强的文本编译器,增加了终端和控制台,可以程序交互,相当于一个IDE的外部框架。和sublime有一定相似性,但界面和插件安装方面远远优于sublime。应该说这是一种为编译语言设计的显示框架,真正起作…

代码随想录算法训练营第二十天 二叉树 java : 654.最大二叉树 617.合并二叉树 700.二叉搜索树中的搜索 98.验证二叉搜索树

LeetCode 654.最大二叉树 题目讲解 思路 二叉树的根是最大值左子树最大值左边部分构造的最大二叉树右子树最大值是右边部分构造的最大二叉树 AC代码 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode ri…