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

【JAVA全栈学习 基本数据类型和引用数据类型的区分】

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

【JAVA全栈学习 基本数据类型和引用数据类型的区分】

基本数据类型和引用数据类型之间的区分
    • 数据类型
      • 基本数据类型
      • 引用类型
    • 基本数据类型和引用数据类型的区别
      • 存储位置
        • 方法中的变量(基本数据类型/引用数据类型)
        • 类中的变量
      • 传递方式

数据类型 基本数据类型

基本数据类型
基本数据类型只有8种,可按照如下分类
①整数类型:long、int、short、byte
②浮点类型:float、double
③字符类型:char
④布尔类型:boolean

基本类型大小(字节)默认值封装类
byte1(byte)0Byte
short2(short)0Short
int40Integer
long80LLong
float40.0FFloat
double80.0dDouble
boolean-falseBoolean
char2u000(null)Char


引用类型

引用类型
引用数据类型非常多,大致包括:类、 接口类型、 数组类型、 枚举类型、 注解类型、 字符串型
例如,String类型就是引用类型,还有Double,Byte,Long,Float,Char,Boolean,Short(注意这里和基本类型相比首字母是大写)
简单来说,所有的非基本数据类型都是引用数据类型

基本数据类型和引用数据类型的区别

JAVA的基本数据类一定存储在栈中,错误的!

在方法中声明的变量便是局部变量,局部变量仅存在方法栈中,及方法结束就会被内存清理,即为局部变量只能在方法中有效的原因。

存储位置 方法中的变量(基本数据类型/引用数据类型)

当声明是基本类型的变量的时,其变量名及值(变量名及值是两个概念)是放在JAVA虚拟机栈中
当声明的是引用变量时,所声明的变量(该变量实际上是在方法中存储的是内存地址值)是放在JAVA虚拟机的栈中,该变量所指向的对象是放在堆类存中的。

类中的变量

在类中声明的变量
在类中声明的变量是成员变量,也叫全局变量,放在堆中的(因为全局变量不会随着某个方法执行结束而销毁)。

同样在类中声明的变量即可是基本类型的变量 也可是引用类型的变量

当声明的是基本类型的变量其变量名及其值放在堆内存中的
引用类型时,其声明的变量仍然会存储一个内存地址值,该内存地址值指向所引用的对象。引用变量名和对应的对象仍然存储在相应的堆中

传递方式

基本变量类型: 在方法中定义的非全局基本数据类型变量,调用方法时作为参数是按数值传递的

public class Test01 {
    public static void main(String[] args) {
        int msg=10;
        System.out.println("调用前的值:"+msg);
        fun(msg);
        System.out.println("调用后的值:"+msg);

    }
    public static void fun(int temp){
        temp=0;
        System.out.println("方法中值:"+temp);
    }
}


引用变量类型: 引用数据类型变量,调用方法时作为参数是按引用传递的

package com.example;

public class Book {
    private double price=90;

    public Book() {
    }

    public Book(double price) {
        this.price = price;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }
    public void swap(){
        setPrice(150);
    }

    public static void main(String[] args) {
        Book b = new Book();
        System.out.println("这是交换前的数字:");
        System.out.println(b.getPrice());
        b.swap();
        System.out.println("这是交换后的数字:");
        System.out.println(b.getPrice());
    }
}

引用数据类型是基本数据类型的包装类

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

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

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