java 基本类型,数组,方法实例详解

 更新时间:2026年02月07日 10:02:49   作者:weixin_70426605  
文章介绍Java的8种基本数据类型,包括整数类型(byte、short、int、long)、浮点类型(float、double)、字符类型(char)和布尔类型(boolean),每种类型都有其占用内存、取值范围、默认值和使用要点,文章涵盖了类型转换和数组的基本概念,感兴趣的朋友跟随小编一起看看吧

Java 基本类型共 8 种,分为整数(4 种)、浮点(2 种)、字符(char)、布尔(boolean)四大类;

一、整数类型(用于存储整数,共 4 种)

byte(字节型)

  • 占用内存:1 个字节(8 位)
  • 取值范围:-128 到 127
  • 默认值(仅成员变量有,局部变量无默认值):0
  • 对应的包装类:Byte
  • 使用要点:占用内存最小,适合存储小范围整数(如文件读取的字节数据)

short(短整型)

  • 占用内存:2 个字节(16 位)
  • 取值范围:-32768 到 32767
  • 默认值:0
  • 对应的包装类:Short
  • 使用要点:日常开发中较少使用,主要用于特定硬件接口的数据交互场景

int(整型)

  • 占用内存:4 个字节(32 位)
  • 取值范围:-2³¹ 到 2³¹-1(约 ±21 亿)
  • 默认值:0
  • 对应的包装类:Integer
  • 使用要点:Java 中最常用的整数类型,声明普通整数时默认就是 int 类型(如10025都是 int)

long(长整型)

  • 占用内存:8 个字节(64 位)
  • 取值范围:-2⁶³ 到 2⁶³-1(远超 int 的范围)
  • 默认值:0L(注意后缀 L)
  • 对应的包装类:Long
  • 使用要点:存储超大整数时使用,声明时必须加后缀L(大写 L 推荐,避免和数字 1 混淆),比如1234567890123L

二、浮点类型(用于存储小数,共 2 种)

float(单精度浮点型)

  • 占用内存:4 个字节(32 位)
  • 精度:约 6-7 位有效数字
  • 默认值:0.0f(注意后缀 f)
  • 对应的包装类:Float
  • 使用要点:声明时必须加后缀f,精度较低,日常开发中较少使用,多用于内存受限的嵌入式场景

double(双精度浮点型)

  • 占用内存:8 个字节(64 位)
  • 精度:约 15-16 位有效数字
  • 默认值:0.0d(后缀 d 可省略)
  • 对应的包装类:Double
  • 使用要点:Java 中最常用的浮点类型,声明小数时默认就是 double 类型(如3.140.5都是 double)

三、字符类型(char)

  • 占用内存:2 个字节(16 位)

//中文在UTF-8中占3字节,GBK中占2字节。

四、布尔类型(boolean)

  • 取值范围:只有两个值 ——true(真)或 false(假)
  • 默认值:false
  • 对应的包装类:Boolean
  • 使用要点:用于表示逻辑判断结果,无法参与数值运算

五.代码运行

下面的代码可以直接运行,直观展示基本类型的默认值、声明方式和取值特点:

public class BasicTypeProperties {
    // 成员变量:有默认值(无需初始化)
    byte byteVar;
    short shortVar;
    int intVar;
    long longVar;
    float floatVar;
    double doubleVar;
    char charVar;
    boolean booleanVar;
    public static void main(String[] args) {
        // 1. 打印成员变量的默认值
        BasicTypeProperties obj = new BasicTypeProperties();
        System.out.println("=== 成员变量默认值 ===");
        System.out.println("byte: " + obj.byteVar);          // 输出 0
        System.out.println("short: " + obj.shortVar);        // 输出 0
        System.out.println("int: " + obj.intVar);            // 输出 0
        System.out.println("long: " + obj.longVar);          // 输出 0
        System.out.println("float: " + obj.floatVar);        // 输出 0.0
        System.out.println("double: " + obj.doubleVar);      // 输出 0.0
        System.out.println("char(ASCII码): " + (int)obj.charVar); // 输出 0
        System.out.println("boolean: " + obj.booleanVar);    // 输出 false
        // 2. 局部变量:必须手动初始化才能使用
        System.out.println("\n=== 局部变量声明示例 ===");
        int age = 25;                  // int(最常用)
        long bigNum = 1234567890123L;  // long需加L
        float piFloat = 3.14f;         // float需加f
        double piDouble = 3.1415926535; // double无需加d
        char ch = '中';                // char存储中文
        boolean isAdult = true;        // boolean只有true/false
        System.out.println("int(年龄): " + age);
        System.out.println("long(大数): " + bigNum);
        System.out.println("float(π): " + piFloat);
        System.out.println("double(π): " + piDouble);
        System.out.println("char(字符): " + ch);
        System.out.println("boolean(是否成年): " + isAdult);
    }
}

六.类型转换

隐式转换

自动进行的小范围到大范围的转换(如intdouble)。

显式转换

需手动指定的强制转换(可能丢失精度)。

七.数组

1.定义数组

public class ArrayProperties {
    public static void main(String[] args) {
        // 1. 数组声明与初始化(两种方式)
        // 方式1:静态初始化(指定元素,长度由元素个数决定)
        int[] intArr1 = {10, 20, 30}; 
        // 方式2:动态初始化(指定长度,元素为默认值)
        int[] intArr2 = new int[4]; // 长度4,元素默认值都是0
        boolean[] boolArr = new boolean[2]; // 长度2,元素默认值false
        // 2. 核心属性:length(获取长度)
        System.out.println("intArr1长度:" + intArr1.length); // 输出 3
        System.out.println("intArr2长度:" + intArr2.length); // 输出 4
        // 3. 访问数组元素(通过索引)
        System.out.println("intArr1[0]:" + intArr1[0]); // 输出 10
        System.out.println("intArr2[1]:" + intArr2[1]); // 输出 0(默认值)
        System.out.println("boolArr[0]:" + boolArr[0]); // 输出 false(默认值)
        // 4. 修改数组元素(索引赋值)
        intArr2[2] = 99;
        System.out.println("修改后intArr2[2]:" + intArr2[2]); // 输出 99
        // 5. 遍历数组(利用length属性)
        System.out.println("\n遍历intArr1:");
        for (int i = 0; i < intArr1.length; i++) {
            System.out.print(intArr1[i] + " "); // 输出 10 20 30
        }
        // 注意:索引越界会报错(注释掉,运行可验证)
        // System.out.println(intArr1[3]); // 抛出ArrayIndexOutOfBoundsException
    }
}

八.方法

  • 方法组成public static(修饰符)、int/double/void(返回类型)、add/sayHello(方法名)、(int a, int b)(参数列表)、{}内是方法体;
  • 重载:两个add方法名相同,参数类型(int/double)不同,符合重载规则;
  • 参数传递:基本类型传值(修改不影响原变量),引用类型传地址(修改影响原对象);
  • 返回值void无返回值,有返回值需用return返回对应类型数据
public class MethodDemo {
    // 1. 无返回值、无参数方法
    public static void sayHello() {
        System.out.println("Hello!");
    }
    // 2. 有返回值、有参数方法(计算两数之和)
    public static int add(int a, int b) {
        return a + b; // 返回int类型结果
    }
    // 3. 方法重载(同名、不同参数类型)
    public static double add(double a, double b) {
        return a + b;
    }
    // 4. 参数传递演示(基本类型传值、引用类型传地址)
    public static void changeValue(int num, int[] arr) {
        num = 100; // 基本类型:修改的是副本,原变量不变
        arr[0] = 200; // 引用类型:修改的是数组本身,原数组会变
    }
    public static void main(String[] args) {
        // 调用无返回值方法
        sayHello();
        // 调用有返回值方法(不同重载版本)
        int sum1 = add(10, 20);
        double sum2 = add(1.5, 2.5);
        System.out.println("int求和:" + sum1); // 输出30
        System.out.println("double求和:" + sum2); // 输出4.0
//接收返回值的核心语法:返回值类型 变量名 = 方法名(参数);
//变量类型必须和方法返回值类型匹配;
//接收的本质是 “用变量存方法的结果”,不接收则结果直接丢失,无法复用;
        // 验证参数传递
        int num = 10;
        int[] arr = {10};
        changeValue(num, arr);
        System.out.println("基本类型原值:" + num); // 仍为10
        System.out.println("引用类型修改后:" + arr[0]); // 变为200
    }
}

到此这篇关于java 基本类型,数组,方法实例详解的文章就介绍到这了,更多相关java基本类型数组方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Spring之借助Redis设计一个简单访问计数器的示例

    Spring之借助Redis设计一个简单访问计数器的示例

    本篇文章主要介绍了Spring之借助Redis设计一个简单访问计数器的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • 详解Java如何获取文件编码格式

    详解Java如何获取文件编码格式

    这篇文章主要介绍了详解Java如何获取文件编码格式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-01-01
  • Java中定时器java.util.Timer的简单模拟

    Java中定时器java.util.Timer的简单模拟

    在Java中,定时器(Timer)是一个工具类,用于安排任务在指定时间后执行或以指定的时间间隔重复执行,本文就来讲讲如何简单模拟实现定时器吧
    2023-07-07
  • Java从零编写汽车租赁系统全程分析

    Java从零编写汽车租赁系统全程分析

    这篇文章介绍了Java实现汽车租赁系统的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-12-12
  • IDEA创建MyBatis配置文件模板的方法步骤

    IDEA创建MyBatis配置文件模板的方法步骤

    这篇文章主要介绍了IDEA创建MyBatis配置文件模板的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • SpringBoot封装JDBC的实现步骤

    SpringBoot封装JDBC的实现步骤

    本文主要介绍了SpringBoot封装JDBC的实现步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • Java 数组详解及示例代码

    Java 数组详解及示例代码

    本文主要介绍Java 数组的知识,这里整理了数组所有操作方法,并一一列举,有学习的朋友可以参考下
    2016-09-09
  • JVM完全解读之Metaspace解密源码分析

    JVM完全解读之Metaspace解密源码分析

    通过这篇文章,你将可以了解到,为什么会有metaspace?metaspace的组成,metaspace的VM参数,jstat里我们应该关注metaspace的哪些值,有需要的朋友可以借鉴参考下
    2022-01-01
  • springboot全局异常处理方式@ControllerAdvice和@ExceptionHandler

    springboot全局异常处理方式@ControllerAdvice和@ExceptionHandler

    文章总结了个人在处理全局异常处理时的经验,包括使用`StatusEnum`来定义状态码,旨在为读者提供参考,并鼓励大家支持脚本之家
    2024-11-11
  • Spring覆盖jar包中路径映射的几种解决方案

    Spring覆盖jar包中路径映射的几种解决方案

    本文主要介绍了Spring覆盖jar包中路径映射的几种解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-09-09

最新评论