栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

第二章 JavaSE专题之基本数据类型详述

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

第二章 JavaSE专题之基本数据类型详述

基本数据类型:每一种数据都定义了明确的数据类型,在内存总分配了大小不同的内存空间 1、整数类型

含义:用于存放整数值的

(1)整数类型详述

类型存储空间范围
byte[1]1字节-128~127
short[2]2字节-32768~32767
int[4]4字节-2147483648~2147483647
long[8]8字节

(2)整数类型的使用细节

Ⅰ、Java各整数类型有固定的范围和字段长度,不受系统影响;

Ⅱ、Java的整形常量默认是int型、声明long整形常量必须加‘l’或者‘L’;

Ⅲ、Java程序中变量通常声明为int型,除非不足以表示大数,才使用long。

范例

package com.lizhi;
public class hello{
    public static void main(String[] args){
        byte n1 = 10;
        short n2 = 10;
        int n3 = 10;
        long n4 = 10L;
        System.out.println("n1: "+n1);
        System.out.println("n2: "+n2);
        System.out.println("n3: "+n3);
        System.out.println("n4: "+n4);
    }
}

运行结果

(3)整数内存存储空间详述

bit:计算机中最小的存储单位byte:计算机中基本存储单元

1byte = 8bit

范例:整数类型3的存储空间

2、浮点数

含义:浮点类型用来表示一个小数

(1)浮点数类型详述

类型存储空间描述
float[4]4字节
double[8]8字节

(2)浮点数使用细节

Ⅰ、浮点数有固定的范围和长度,不受系统影响;

Ⅱ、浮点型常量默认为double型,声明float型常量,须加‘f’或‘F’;

Ⅲ、通常下使用double类型,因为比float更精确。

范例

package com.lizhi;
public class hello{
    public static void main(String[] args){
        float n1 = 3.45f;
        double n2 = 3.45;
        System.out.println("n1: "+n1);
        System.out.println("n2: "+n2);
    }
}

运行结果

(3)浮点数存储空间解析

浮点数存储:符号位+指数位+尾数位

符号位(Sign):0代表正,1代表为负;指数位(Exponent):用于存储科学计数法中的指数数据,并且采用移位存储;尾数部分(Mantissa):尾数部分。

精度存储空间符号位指数位小数位偏移量
float321【31】8【30-23】23【20-00】127
double641【63】11【62-52】52【51-00】1023

范例:8.25在存储空间的表示

按照上面的存储方式,符号位为0,表示为正;指数位为3+127=130,位数部分为 1.00001,故8.25的存储方式如下:

0xbffff380: 01000001000001000000000000000000

分解如下:    0--10000010--00001000000000000000000

具体表示:    符号位为0,指数部分为10000010,位数部分为 00001000000000000000000

(4)8.1/3的计算

范例

package com.lizhi;
public class hello{
    public static void main(String[] args){
        double n1 = 2.7;
        double n2 = 8.1/3;
        System.out.println("n1: "+n1);
        System.out.println("n2: "+n2);
        // 错误比较
        if( n1 == n2 ){
            System.out.println("=");
        } else {
            System.out.println("!=");
        }
        // 正确比较
        if( Math.abs( n1-n2 ) < 0.00001 ){
            System.out.println("=");
        } else {
            System.out.println("!=");
        }
    }
}

运行结果

3、字符型

(1)字符概述

类型存储空间描述
char[2]2个字节

(2)字符使用细节

Ⅰ、字符常量使用单引号(‘’)括起来的单个字符;

Ⅱ、在java中,char的本质是一个整数,对应unicode字符输出;

可以给char赋一个整数,然后输出时,会按照对应的unicode字符输出;

char类型是可以运算的,相当于一个整数,因为它对应Unicode码。

范例

package com.lizhi;
public class hello{
    public static void main(String[] args){
        char c1 = 'a';
        char c2 = 't';
        char c3 = 97;
        char c4 = (char) (c1 + c3);
        System.out.println(c1);
        System.out.println(c2);
        System.out.println(c3);
        System.out.println(c1+c3);
        System.out.println(c4);
    }
}

运行结果

(3)字符类型存储空间

字符类型存储

'a' ==> 码值97 ==> 二进制(1100001) ==> 存储

字符类型读取

二进制(1100001) ==> 码值97 ==> 'a' ==>显示
4、布尔型
类型存储空间描述
char[2]2个字节ture/false

范例

package com.lizhi;
public class hello{
    public static void main(String[] args){
        boolean isPass = true;

        if( isPass == true ){
            System.out.println("1");
        } else {
            System.out.println("0");
        }
    }
}

运行结果

5、类型自动转换

自动转换场景:当java程序在进行赋值或者运算时,精度小的类型自动转换为精度大的数据类型。

自动类型转换:多种类型混合运算时间,系统首先自动将所有数据转换成容量最大的那种数据类型,之后才进行计算自动提升原则:表达式结果的类型自动提升为操作数中最大的类型。 6、类型强制转换

强制转换:将容量大的数据类型转换为容量小的数据类型。

范例

package com.lizhi;
public class hello{
    public static void main(String[] args){
        double n1 = 10;
        float n2 = (float) n1;
        long n3 = (long) n2;
        int n4 = (int) n3;
        System.out.println(n1);
        System.out.println(n2);
        System.out.println(n3);
        System.out.println(n4);
    }
}

运行结果

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/713208.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号