JAVA四类八种基本数据类型

摘要:
在实际应用中,month通常被定义为int类型,因为这可以简化数据操作期间的强制类型转换操作。浮点和双浮点类型(带小数)Float:四个字节,共32位,称为单精度浮点数double:八个字节,总共64位,它称为双精度浮点数。默认情况下,Java中的浮点常量值是双倍的。注意:Java提供的浮点类型不适合精确操作。publicstaticvoidmaintrowsException{doublemoney=1;doubleprice=0.1;System.out.println;//打印0.09999999999999999998}解决方案:java。math BigDecimal类可以满足用户的精度。请注意,构造BigDecimal类时,构造方法中的参数不建议为浮点类型,需要转换为String类型的基本数据类型,以及上述四种类型和八种基本数据类型。

boolean类型

Boolean在内存中占用一个字节。

当java编译器把java源代码编译为字节码时,会用int或byte来表示boolean。在java虚拟机中,用整数零来表示false,用任意一个非零整数表示true。

java虚拟机这种底层处理方式对java虚拟机是透明的,在java源程序中boolean类型的变量取值只能是true或false

byte、short、int、和long 整数类型

byte、short、int、long都是整数类型,并且是有符号整数 分别占用1、2、4、8个字节。

取值范围分别是-128—127、-2的15次方到2的15次方减一、-2的31次方到2的31次方减一、-2的63次方到2的63次方减一

byte在内存中占用一个字节 取值范围是 -128—127。在定义一个变量时。比如月份的取值是1到12。因此把代表月份的month变量定义为byte类型会节省内存空间。

在实际应用中 通常把month定义为int类型,因为这样可以简化数据运算时强制类型转换操作。

byte month = 1;
month = month+2;//编译错误 需要强转
month = (byte) (month+2); //编译正确

Java中整型常量数值的默认类型是int类型

char 字符类型

char是字符类型 占用两个字节,java语言对字符采用Unicode字符编码。由于计算机内存只能存储二进制数据。因此必须对各个字符进行编码。

所谓字符编码是指用一串二进制数据来表示特定的字符。常见的字符编码包括,ASCII编码(1Byte=8bit 一共能表示2的7次方 128个字符) 是单字节编码系统,ISO-8859-1编码(也是单字节编码系统) GB2312编码 GBK编码 Unicode编码。

Unicode编码由国际Unicode协会编制,收录了全世界所有语言文字中的字符,是一种跨平台的字符编码USC(Universal Character Set)是指采用Unicode编码的通用字符集。

如果实际上要存储的字节都是ASCII字符(只占7位),采用Unicode编码及其浪费存储空间。UTF-8编码能够更加有效的利用存储空间,它对ASCII字符采用一个字节形式的编码,对非ASCII字符则采用两个或两个以上字节形式的编码。

Unicode有两种编码方案。

  用两个字节(16位)编码,采用这个编码方案的字符集称为UCS-2。java语言采用的就是两个字节的编码方案

  用四个字节(32位)编码(实际上只用了31位,最高位必须为0),采用这个编码的字符集被称为UCS-4。

1994年公布的Unicode,为每种语音中的每个字符都设定了唯一编码,以满足跨语言的交流,分为编码方式和实现方式。

实现Unicode的编码格式 有UTF编码可以理解为对Unicode的压缩方式,常见的UTF编码有 utf-8,utf-7,utf-16

有些操作系统不完全支持16位或32位的Unicode编码,UTF(UnicodeTransformation Format) 编码能够把Unicode编码转换为操作系统支持的编码。

ASCII编码,ISO-8859-1编码 GB2312编码 GBK编码 Unicode编码 都属于编码方式,UTF属于实现方式(实现Unicode编码)。

float和double 浮点类型(带小数)

float:占四个字节,共32位,称为单精度浮点数

double:占八个字节,共64位,称为双精度浮点数

Java中的浮点型常量数值默认是double类型

注意: java提供的浮点类型不适合进行精确的运算

    public static void main(String[] args) throws Exception {
        double money = 1;
        double price = 0.1;
        System.out.println(money-price*9);//打印出来0.09999999999999998(本应该是0.1)
    }

解决办法: java.math.BigDecimal类可以满足用户的精度 注意 构造BigDecimal类时 构造方法中的参数 不建议是浮点类型 需要转成String类型

基本数据类型转换

上面四类八种基本数据类型。除了boolean类型。整型 浮点型和字符型数据可以进行混合转换。

从低位到高位会自动进行类型转换,即int类型的数和Long类型的数一起运算时 结果会自动转成Long类型(向上转型)

从高位到低位需要进行强制类型转换。(向下转型)

从低位到高位 byte、char、short、int、long、float、double

  float f = 3.14; //编译错误,不能把double类型直接赋值给float类型变量 需要强制类型转换

  应用中,强制类型转换有可能会导致数据溢出或者精度下降,应该避免使用强制类型转换。

  下面代码中 把int强制转换为byte类型,会导致数据溢出。

    int a = 256;
    byte aa = (byte) a;
    int b = 222;
    byte bb = (byte) b;
    System.out.println(aa); // 打印结果0
    System.out.println(bb); //打印结果-34

对于基本类型的变量,java虚拟机会为其分配数据类型实际占用内存的大小

免责声明:文章转载自《JAVA四类八种基本数据类型》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇vimdiff的常用命令状态迁移法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

IDEA安装及破解永久版教程————鹏鹏

---恢复内容开始---首先,让我们介绍一下IDEA是什么?IDEA,全称IntelliJIDEA,是一个用于java编程语言开发的集成环境。IDEA是总部位于捷克共和国首都布拉格的JetBrains公司的产品,该公司的开发人员主要是以严谨著称的东欧程序员。⑨ 启动IntelliJIDEA并输入以下激活代码以激活。首先,打开进入IDEA主界面。在顶部,打开H...

电脑不识别USB blaster驱动问题

电脑不识别USB blaster,如下图: 解决办法:手动更新...

JavaScript算法学习:获取字符串最后一位方法及判断是否以指定字符串开始或结尾

Str.substr,其中start是必需的参数,表示坐标的起始位置。正值在正方向计数,负值在反方向计数,长度是可选参数,表示从起始位置开始计数的数字。...

Java 读取ANSI文件中文乱码问题解决方式[转]

Filefile=newFile(路径);InputStreamin=newjava.io.FileInputStream(文件);BufferedReader读取器=新的BufferedReader(读取);FileInputStreamin=newFileInputStream(文件);byte[]b=新字节[3];内容如下(b);...

C# winform开发嵌套Chrome内核浏览器(WebKit.net)开发(一)

//Www.cnblogs.com/Maxq/p/6566558.htmlWebKit.net是WebKit的一个net包。使用它,。net程序可以非常方便地集成和使用webkit作为加载网页的容器。EventArgse){WebKit.WebKitBrowser=newWebKitBrowser();this.Controls.Add(浏览器);...

利用油猴插件实现全网VIP视频免费看

利用油猴插件实现全网VIP视频免费看第一步:首先打开谷歌应用商店搜索tampermonkey安装这个插件第二步:在百度搜索框搜索油猴可以看到以下页面,点击进入。下载谷歌上网助手解压后,将后缀为crx的文件拖入即可。之后注册一个谷歌上网助手账后登录即可进入谷歌应用商店油猴插件...