首页 > 编程语言 >java数据类型

java数据类型

时间:2023-11-06 16:04:03浏览次数:35  
标签:java 字节 int 数据类型 byte 数据

一、数据类型

java数据类型_数据

Java中主要有8中基本数据类型,分别是byte,short,int,long,char,boolean,float,double,具体如下:

1、boolean:数据值只有true或false,适用于逻辑计算。

2、char:char型(字符型)数据在内存中占用2个字节。char型数据用来表示通常意义上的字符,每个字符占2个字节,Java字符采用Unicode编码,它的前128字节编码与ASCII兼容字符的存储范围在\u0000~\uFFFF,在定义字符型的数据时候要注意加' ',比如 '1'表示字符'1'而不是数值1, 

3、byte:byte型(字节型)数据在内存中占用1个字节,表示的存储数据范围为:-128~127。

4、short:short型(短整型)数据在内存中占用2个字节

5、int:int型(整型)数据在内存中占用4个字节

6、long:long型(长整型)数据在内存中占用8个字节

7、float:float型(单精度浮点型)数据在内存中占用4个字节。(float精度为7-8位)

8、double:double型(双精度浮点型)数据在内存中占用8个字节

Java中所有的基本数据类型都有固定的存储范围和所占内存空间的大小,而不受具体操作系统的影响,来保证Java程序的可移植性。整形数据默认为int数据类型,浮点型默认为double数据类型,如果要表示long型数据或float型数据,要在相应的数值后面加上l、L或f、F,否则会出现编译问题

在其他语言中如C语言中,字符型数据和整型数据是可以相互转换的,都是以ASCII码来存储,可以将字符型数据当整型数据来看待。

二、基本数据类型间的转换

1、boolean类型不能转换成任何其他数据类型。

2、自动类型转换:容量小的数据类型可以自动转换成容量大的数据类型,如byte-short-int-long-float-double。byte、short、int不会互相转换,他们三者在计算时会转换成int类型。

例:int a=257;byte b=(byte)a;在java中,int类型占4个字节,byte占一个字节,故int类型转化为byte类型会出现位丢失情况,即将int的低4位作 为byte类型的值。int型变量的值为257,对应的二进制是100000001,后8位是00000001,第一个0表示符号位,表示正数,所以变量 b的值为1。

【备注:在计算机中,存储数据是通过内存地址来区分不同数据的,内存地址用十六进制数表示。在计算机存储单元中,一个ASCII码值占一个字节(8个二进制位),其中最高位符号位。事实上,计算机内的二进制数值是以补码形式表示的,正数的补码和原码的形式相同,负数的补码是将该数的绝对值的二进制形式,按位取反再加一。】

int a=128;byte b=(byte)a;这时b的值是-128。因为变量a对应的二进制是10000000,对应第一位符号位是1,则a是负数,其负数的补码仍是10000000,故b的值是-128。

3、强制类型转换:容量大的数据类型转换成容量小的数据类型时,要加上强制转换符,但这样有可能会造成精度降低或者数据溢出,要小心。

三、对象包装器

Java为了能将基本类型(primitive type)视为对象来处理,并能连接相关的方法,Java为每个节本类型都提供了相应的包装类,这样便能将基本类型转化为对象来处理。其对应关系表如下所示:

 

基本数据类型

包装类

byte(字节)

java.lang.Byte

char(字符)

java.lang.Character

short(短整型)

java.lang.Short

int(整型)

java.lang.Integer

long(长整型)

java.lang.Long

float(浮点型)

java.lang.Float

double(双精度)

java.lang.Double

boolean(布尔型)

java.lang.Boolean

包装器类的使用

       专门用来包裹(Wrap)基本类型的类叫包装类,也叫包装器,如Long,Integer等,其主要目的就是提供一个对象实例作为壳,将其基本类型包到这个对象之中,然后提供很多操作数据的方法,使面向对象的编程变得更加容易。




标签:java,字节,int,数据类型,byte,数据
From: https://blog.51cto.com/emanlee/8213323

相关文章

  • java object 转为 json
      JSONObjectjsonObject=JSONObject.fromObject(map)执行到这的时候没有任何反应的原因及解决办法 JSONObject,JSONArray使用手册http://www.open-open.com/lib/view/open1391842371442.html JSONObject.fromObject(map)(JSON与JAVA数据的转换) 使用JSON时,除了要导入JSON网站上......
  • Java float保留两位小数或多位小数
     Javafloat保留两位小数或多位小数方法1:用Math.round计算,这里返回的数字格式的.   floatprice=89.89;intitemNum=3;floattotalPrice=price*itemNum;floatnum=(float)(Math.round(totalPrice*100)/100);  //如果要求精确4位就*10000然后/10000方法2(OK):用DecimalFo......
  • java中判断从数据库中取出的字段是否为空
    方法一:最多人使用的一个方法,直观,方便,但效率很低.1:if(s==null||s.equals(""));方法二:比较字符串长度,效率高,是我知道的最好一个方法.2:if(s==null||s.length()<=0);方法三:JavaSE6.0才开始提供的方法,效率和方法二几乎相等,但出于兼容性考虑,推荐使用......
  • Java IO教程 - Java文件操作
    文件创建我们可以使用File类的createNewFile()方法创建一个新文件:FiledummyFile=newFile("test.txt");booleanfileCreated=dummyFile.createNewFile();该createNewFile()方法创建一个新的空文件,如果有指定名称的文件不存在。如果文件已成功创建,则返回true;否则,返回fa......
  • Java IO教程- Java文件
    创建文件我们可以从中创建一个 File 对象路径名父路径名和子路径名URI(统一资源标识符)我们可以使用File类的以下构造函数之一创建一个文件:File(Stringpathname)File(Fileparent,Stringchild)File(Stringparent,Stringchild)File(URIuri)如果我们有一个文件路......
  • (九)Python之标准数据类型
    数据类型数据类型用来确定要存储在内存单元中的数据的类型,在Python中,变量没有类型,我们所说的“类型”是变量所指定的内存中对象的类型不可变数据(三个):Number(数字)、String(字符串)、Tuple(元组);不可变数据类型:当该数据类型的对应变量的值发生了改变,那么它对应的内存地址也会发生改......
  • Python数据类型bytes 和 bytearray
    bytes和bytearray都是二进制世界的成员,用二进制的方式去理解才能看清他的本质。理解bytes和bytearray0和1是计算机工作的根本,单个的0和1只能表达两种状态,无法满足我们复杂的计算,于是计算机使用了8位即一个byte作为一个储存的基本单位。byte由8bit组成,例如   0000......
  • node.js快死了!Bun 1.0 正在改变 JavaScript 游戏规则
    在进一步讨论之前,我们需要解释什么是javascript运行时以及为什么我们应该关心它的速度。 想象一下,你用JavaScript写了一个故事,你需要有人大声朗读。JavaScript运行时就像那个友好的叙述者,让你的故事栩栩如生!这是一个特殊的环境,你的JavaScript故事被阅读和表演出来。但是,让我......
  • mac m1上java调用opencv
    mac1openjdk17官网上没有编译好的macm1上二进制库.需要自己下载源代码编译.https://opencv.org/releases/从这里下载源代码.如opencv-4.7.0.zip解压把opencv-4.7.0文件夹重命名为opencv在opencv同级目录下建一个文件夹build_opencvcd到build_opencv,然后执行cmake-DBU......
  • Javacv实现图片转视频流推送
    1.项目背景由于项目中需要接入海康平台的摄像头,并将摄像头采集到的视频流过算法处理,所以对服务器本身要求较高,代码的性能同样如此,经过多方讨论,主流方向主要有两种:1、视频流的每一帧经过算法处理后,将每一帧合成视频流推送出去(这种方法基本上逃离不了ffmpeg,pyav、Javacv底层也全是......