• JAVA数据类型-整数、浮点、字符串、boolean、引用数据类型


    单个字节表示的整数范围
    1、在计算机中单个字节表示八位二进制位,其中最高位(最左边)代表符号位,使用0代表非负数,使用1代表负数,具体表示的整数范围如下:
    2、非负数表示范围:0000 0000 ~ 0111 1111 => 0 ~ 127 => 0 ~ 2^7-1
    3、负数表示范围:1000 0000 ~ 1111 1111 => -128 ~ -1 => -2^7 ~ -2^0
    4、单个字节表示的整数范围是:-2^7 ~ 2^7-1,也就是-128 ~ 127.
     
    整数类型
    1、Java语言中描述整数数据的类型有:byte、short、int、long,推荐int类型
    2、其中byte类型在内存空间中占1个字节,表示范围是:-2^7 ~ 2^7-1,超出报:不兼容的类型: 从int转换到byte可能会有损失。

     code:

    public class IntTest {

    public static void main(String[] args) {

    // 1.声明一个byte类型的变量并初始化
    byte b1 = 25;
    byte b2 = 250; // 错误: 不兼容的类型: 从int转换到byte可能会有损失 250这样直接写出的整数数据叫做直接量/常量/字面值 默认为int类型
    // 2.打印变量的数值
    System.out.println("b1 = " + b1); // b1 = 25
    System.out.println("b2 = " + b2);
    }}
    3、其中short类型在内存空间中占2个字节,表示范围是:-2^15 ~ 2^15-1.数值超出报:不兼容的类型:从int转换到short可能会有损失

     code:

    public class IntTest {

    public static void main(String[] args) {

    // 声明一个short类型的变量并初始化
    short s1 = 250;
    short s2 = 250250; // 错误:不兼容的类型:从int转换到short可能会有损失
    System.out.println("s1 = " + s1); // s1 = 250
    System.out.println("s2 = " + s2);
    }}
    4、其中int类型在内存空间中占4个字节,表示范围是:-2^31 ~ 2^31-1.超出数值报:java:整数太大

     code

    public class IntTest {

    public static void main(String[] args) {
    // 声明一个int类型的变量并初始化
    int i1 = 250250;
    int i2 = 2502505006; // 错误: 整数太大 默认为int类型,这个数据自身已经出错,无法表示
    System.out.println("i1 = " + i1); // i1 = 250250
    }}
    5、其中long类型在内存空间中占8个字节,表示范围是:-2^63 ~ 2^63-1.将long类型的转换为Int,报:java: 不兼容的类型: 从long转换到int可能会有损失

    code

    public class IntTest {

    public static void main(String[] args) {
    //声明一个long类型的变量并初始化,若描述比long类型还大的数据则使用java.math.BigInteger类型
    long g1 = 2502505006L;
    int i3 = 2502505006L; // 错误:不兼容的类型:从long转换到int可能会有损失
    System.out.println("g1 = " + g1); // g1 = 2502505006
    }}
    6、在Java程序中直接写出的整数数据叫做直接量/字面值/常量,默认为int类 型。若希望表达更大的直接量,则在直接量的后面加上l或者L,推荐L。
     
    浮点类型

    1、Java语言中用于描述小数数据的类型:float 和 double,推荐double类型 

    2、其中float类型在内存空间占4个字节,叫做单精度浮点数,可以表示7位有效数字,范围:-3.403E38~3.403E38。格式:float f2 = 3.1415926f;注意:值后必须加f,不加f默认为double类型。

    public class DoubleTest {

       
    public static void main(String[] args) {

    // 1.声明一个float类型的变量并初始化
    float f1 = 3.1415926; // 错误: 不兼容的类型: 从double转换到float可能会有损失 小数数据叫做直接量,默认为double类型
    float f2 = 3.1415926f;
    // 2.打印变量的数值
    System.out.println("f1 = " + f1); // f1 = 3.1415925 一般是7位有效数字
    System.out.println("f2 = " + f2);
    }}

    3、其中double类型在内存空间占8个字节,叫做双精度浮点数,可以表示15位有效数字,范围:-1.798E308~1.798E308。

     code

    public class DoubleTest {

    public static void main(String[] args) {
    // 声明一个double类型的变量并初始化
    double d1 = 3.1415926;
    System.out.println("d1 = " + d1); // d1 = 3.1415926 一般是15位有效数字
    }
    }

    4、Java程序中直接写出的小数数据叫做直接量,默认为double类型,若希望 表达float类型的直接量,则需要在直接量的后面加上f或者F.

    布尔类型

     1、Java语言中用于描述真假信息类型有:boolean,数值只有:true 和 false。

    2、布尔类型在内存空间中所占大小没有明确的规定,可以认为是1个字节。注意:boolean b1 = 1; 会报错误: 不兼容的类型: int无法转换为boolean

     code

    public class BooleanTest {

    public static void main(String[] args) {

    // 1.声明一个boolean类型的变量并初始化
    boolean b1 = true;
    // 2.打印变量的数值
    System.out.println("b1 = " + b1); // b1 = true
    // 3.修改变量b1的数值 = 赋值运算符,用于将=右边的数据赋值给=左边的变量,覆盖变量中原来的数值
    b1 = false;
    System.out.println("b1 = " + b1); // b1 = false
    }}
    字符类型

     1、Java语言中用于描述单个字符的数据类型:char类型。如:'a'、'中'等。

    2、其中char类型在内存空间中占2个字节并且没有符号位,表示的范围是: 0 ~ 65535,由于现实生活中很少有数据能够被单个字符描述,因此以后 的开发中更多的使用由多个字符串起来组成的字符串,使用String类型加 以描述,如:“hello”、“王一”等。

     code

    public class CharTest {

    public static void main(String[] args) {

    // 1.声明一个char类型的变量并初始化
    char c1 = 'a';
    // 2.打印变量的数值
    System.out.println("c1 = " + c1); // c1 = a
    System.out.println("对应的编号是:" + (int)c1); // 表示将char类型的c1强制转换为int类型并打印 97

    System.out.println("-------------------------------------------------------------------------");
    // 2.声明一个char类型的变量并初始化
    char c2 = 98;
    System.out.println("c2 = " + c2); // c2 = b
    System.out.println("对应的编号是:" + (int)c2); // 98

    System.out.println("-------------------------------------------------------------------------");
    // 3.使用Unicode字符集来表示一下我的名字 王一 对应的编号是: u738bu4e00
    char c3 = 'u738b';
    char c4 = 'u4e00';
    System.out.println("最终的结果是:" + c3 + c4); // 王一
    }
    }
    基本数据类型之间的转换

     1、Java语言中基本数据类型之间的转换方式:自动类型转换和强制类型转换。

    2、 其中自动类型转换主要指从小类型到大类型之间的转换。

     3、其中强制类型转换主要指从大类型到小类型之间的转换,语法格式如下: 目标类型 变量名 = (目标类型)源类型变量名;

    注意: 强转有风险,操作需谨慎!

     数据类型转换的code

    public class TransformTest {

    public static void main(String[] args) {

    // 1.声明两个变量并初始化
    byte b1 = 10;
    short s1 = 20;
    // 2.打印变量的数值
    System.out.println("b1 = " + b1); // b1 = 10
    System.out.println("s1 = " + s1); // s1 = 20

    System.out.println("----------------------------------------------");
    // 3.实现自动类型转换的使用
    // 表示将变量b1的数值赋值给变量s1,并覆盖变量s1中原来的数值,相当于从byte类型到short类型的转换,小到大 自动转换
    s1 = b1;
    System.out.println("b1 = " + b1); // b1 = 10
    System.out.println("s1 = " + s1); // s1 = 10

    System.out.println("----------------------------------------------");
    // 4.实现强制类型转换的使用
    // 表示将变量s1的数值赋值给变量b1,并覆盖变量b1中原来的数值,相当于从short类型到byte类型的转换,大到小 强制转换
    //b1 = s1; // 错误: 不兼容的类型: 从short转换到byte可能会有损失
    s1 = 128; // 故意加该行代码 128:0000 0000 1000 0000 => 1000 0000 => 0111 1111 => 1000 0000 => 128 => -128
    b1 = (byte)s1;
    System.out.println("b1 = " + b1); // b1 = 10 -128
    System.out.println("s1 = " + s1); // s1 = 10 128
    }
    }
     
  • 相关阅读:
    爸爸妈妈儿子女儿吃水果问题以及五个哲学家吃饭问题
    同步与互斥中的购票和退票问题的PV操作与实现
    创建react&ts&antd项目
    在POM配置Maven plugin提示错误“Plugin execution not covered by lifecycle configuration”的解决方案
    aws rds 储存空间占用 异常排查 存储空间占满
    Linux下clang、gcc、intel编译器最新版本安装笔记
    extern "C"与extern "C" { … }的差别
    gcc预处理指令之#pragma once
    指向类的成员变量的指针
    Java程序中使用SQLite总结
  • 原文地址:https://www.cnblogs.com/goldenwangyi/p/14987608.html
Copyright © 2020-2023  润新知