一、数据类型

java中的数据类型分为两大类,基本数据类型与引用数据类型。

1、基本数据类型

基本数据类型只有8种,可按照如下分类:

  • 整数类型:long、int、short、byte;

  • 浮点类型:float、double:

  • 字符类型:char,因为Java在内存中总是使用Unicode表示字符,所以,一个英文字符和一个中文字符都用一个char类型表示,它们都占用两个字节;

  • 布尔类型:boolean。

No 数据类型 大小/位 可表示数据范围 默认值
1 byte(字节型) 8 -128~127 0
2 short(短整型) 16 -32768~32767 0
3 int(整型) 32 -2147483648~2147483647 0
4 long(长整型) 64 -9223372036854775808~9223372036854775807 0
5 float(单精度) 32 -3.4E38~3.4E38 0.0f
6 double(双精度) 64 -1.7E308~1.7E308 0.0
7 char(字符) 16 0~255 ‘\u0000’
8 boolean(布尔) - true或false false

2、引用数据类型

引用数据类型非常多,大致包括:

类、接口、数组、枚举、注解、字符串等

例如,String类型就是引用类型。

简单来说,所有的非基本数据类型都是引用数据类型。

二、基本数据类型与引用数据类型的区别

1、存储位置

基本变量类型

  • 在方法中定义的非全局基本数据类型变量的具体内容是存储在栈中的。

引用类型变量

  • 只要是引用数据类型变量,其具体内容都是存放在堆中的,而栈中存放的是其具体内容所在内存的地址。

ps:通过变量地址可以找到变量的具体内容,就如同通过房间号可以找到房间一般

public class Main{public static void main(String[] args){//基本数据类型int i=1;double d=1.2;//引用数据类型String str="helloworld";}
}

具体如下图:

2、传递方式

基本变量类型

  • 在方法中定义的非全局基本数据类型变量,调用方法时作为参数是按数值传递
//基本数据类型作为方法参数被调用
public class Main{public static void main(String[] args){int msg = 100;System.out.println("调用方法前msg的值:\n"+ msg);    //100fun(msg);System.out.println("调用方法后msg的值:\n"+ msg);    //100}public static void fun(int temp){temp = 0;}
}

具体如下图:

引用变量类型

  • 引用数据类型变量,调用方法时作为参数是按引用传递的,传递的是引用的副本
//引用数据类型作为方法参数被调用class Book{String name;double price;public Book(String name,double price){this.name = name;this.price = price;}public void getInfo(){System.out.println("图书名称:"+ name + ",价格:" + price);}public void setPrice(double price){this.price = price;}
}public class Main{public static void main(String[] args){Book book = new Book("Java开发指南",66.6);book.getInfo();  //图书名称:Java开发指南,价格:66.6fun(book);book.getInfo();  //图书名称:Java开发指南,价格:99.9}public static void fun(Book temp){temp.setPrice(99.9);}
}

调用时为temp在栈中开辟新空间,并指向book的具体内容,方法执行完毕后temp在栈中的内存被释放掉

基本数据类型与引用数据类型的区别相关推荐

  1. java中数组的返回值是什么类型_java基础学习:数组的常用操作与基础二维数组用法、及基本数据类型和引用数据类型赋值的区别...

    一.Arrays jdk中为了便于开发,给开发者提供了Arrays类,其中包含了很多数组的常用操作.例如快速输出.排序.查找等. 1.数组的常用方法 1.数组以字符串形式的输出,2.sort对数组排序 ...

  2. ES6 深拷贝_JS基本数据类型和引用数据类型的区别及深浅拷贝

    1.栈(stack)和堆(heap) stack为自动分配的内存空间,它由系统自动释放:而heap则是动态分配的内存,大小也不一定会自动释放 2.数据类型 JS分两种数据类型: 基本数据类型:Numb ...

  3. JavaScript数据类型基本数据类型与引用数据类型的区别

    JavaScript数据类型 1.JavaScript判断数据类型 typeof操作符 使用typeof操作符可以返回变量的数据类型 typeof操作符有带括号和不带括号两种用法 typeof (变量 ...

  4. JavaScript中基本数据类型和引用数据类型的区别

    1.基本数据类型和引用数据类型 ECMAScript包括两个不同类型的值:基本数据类型和引用数据类型. 基本数据类型指的是简单的数据段,引用数据类型指的是有多个值构成的对象. 当我们把变量赋值给一个变 ...

  5. Java中基本数据类型和引用数据类型的区别

    Java中基本数据类型和引用数据类型的区别 一.数据类型 1.基本数据类型 2.引用数据类型 二.基本数据类型和引用数据类型的区别 1.储存位置 基本变量类型 引用变量类型 2.参数传递方式 基本变量 ...

  6. Java中的基本数据类型和引用数据类型的区别

    一.数据类型 Java中的数据类型分为两大类,基本数据类型和引用数据类型. 1.基本数据类型 基本数据类型只有8种,可按照如下分类 ①整数类型:long.int.short.byte ②浮点类型:fl ...

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

    JAVA的基本数据类型和引用数据类型的区别: 1.基本数据类型有:byte:Java中最小的数据类型:short:短整型:int:整型:long:长整型:float:浮点型:double:双精度浮点型 ...

  8. js基本数据类型和引用数据类型有什么区别?

    js基本数据类型和引用数据类型有什么区别? 1.基本数据类型和引用数据类型包括哪些? 基本数据类型: 在javascript中,有6种基本数据类型:string.number.boolean.null ...

  9. JavaScript中的基本数据类型与引用数据类型

    JavaScript中的基本数据类型与引用数据类型 转载自:https://www.cnblogs.com/c2016c/articles/9328725.html 1.栈(stack)和堆(heap ...

最新文章

  1. wxWidgets:wxPanel类用法
  2. mongodb可视化工具 linux,Linux中安装启动MongoDB与可视化工具
  3. Guava入门~Objects
  4. c语言 sqrt求100以内素数,C语言实现判断一个数是否为素数并求100以内的所有素数...
  5. echarts柱状图,改变柱状颜色
  6. 高可用结合gfs2,,实现集群文件系统以及集群逻辑卷。
  7. 数论 (大数,小费马定理,欧拉定理,威尔逊定理,快速数论变换(NNT)模版)...
  8. 油猴脚本(Tampermonkey)的简介
  9. c++11 std::decay源码剖析
  10. APISIX网关在雪球生产实践
  11. 怎么查找无线的dns服务器,无线找不到服务器dns地址
  12. 自定义ImageView实现圆形图片
  13. mariadb ROW格式复制下从库结构变更引发1677错误
  14. 巴西龟饲养日志-----日常护理
  15. 一文读懂数据中台技术架构
  16. oracle中调用过程,oracle中如何调用存储过程
  17. OSChina 端午节乱弹 ——假期余额不足,大家端午快乐
  18. 计算机里的东西不小心删除如何恢复,不小心删除的文件怎么恢复(教你如何找回被误删除的电脑文件)...
  19. Chrome浏览器如何完美实现滚动截图技巧
  20. 兄弟3150cdn灯亮error_兄弟3150cdn彩色打印机一直显示红灯

热门文章

  1. spring Mybatis注解加判断
  2. u盘php,u盘格式转换的方法
  3. 纯流量卡实名注销方式,两种注销方式你知道吗
  4. ssh总是自动断开处理方法,等待输入超时:自动注销
  5. 保存git登录账号密码
  6. 21.9.15 ActivityThread
  7. import win32com.client 将xls改成xlsx,操作excel报错
  8. html5 jsplumb,jsPlumb开发入门教程(实现html5拖拽连线)
  9. 《SolidCAM+SolidWorks 2014中文版数控加工从入门到精通》——导读
  10. bpmn-js + vue实现工作流设计器