Java 里的基本类型和引用类型_java基本类型与引用类型

createh55个月前 (02-11)技术教程84
有天赋是一回事,有动力去深究细微之处却是另一回事。 
                                        ————科比·布莱恩特


Java 里的数据类型分为 基础数据类型引用数据类型

基础数据类型 在 Java 里只有 8 种:

  1. byte——整型,1 字节;
  2. short——整型,2 字节;
  3. int——整型,4 字节;
  4. long——整型,8 字节;
  5. float——浮点型,4 字节;
  6. double——浮点型,8 字节;
  7. boolean——布尔型,1 字节;
  8. char——字符型,2 字节。

一个字节等于 8 位。一位(one bite)在计算机里只有 0 或 1 两个值。所以位数就决定了基本数据类型的表数范围。

引用数据类型

引用的数据类型占的地方通常比较大,类型也比较多,而且还一直在增长。

谁都可以创建自己的类型,像标准类型一样使用它。

最常用的引用类型是 String、ScannerArrays

记住,大小写敏感的。

基本类型和引用类型的区别:

基本类型真的存放值;

但是引用类型存的是值的引用(在内存里放地址,这个地址指向数据真正的地方)。

引用类型下,数据就可以被呈现为一种复杂的结构,可以包含其他类型的数据作为他们的一部分。

有两种内存空间:堆、栈。

所有的基本类型存在栈里,引用类型的变量存在 heap memory(堆内存)。

我们以最常见的引用类型之一 String 来做一个简单的解释。

如上图,其实是以下代码的说明:

String java = "java";
String language = "java";
int b = 100;
int a = 100;
复制代码

int 声明的 a 和 b 是基本数据类型,在左边的栈里就直接存了他对应的值; 而 String 声明的 java 和 language 都是引用数据类型,在左边的栈里存的是值的引用,也就是值所对应的内存地址:B10,真正的值 “java” 存在堆里的一个地方。 java 和 language 对应的值一样,所以他们共享了堆里同一个真正的值。

如果是用 == 来判断呢? 答案 true,因为 ==比较的是地址。

那什么时候两个一样的字符串,用 == 判断会等于 false呢?

当你用 new 来创建的时候,就相当于告诉程序,要开辟一块新的空间,不要跟之前的去共享了,此时返回的就是 false。

你可能要说,那值本来就是一样的啊,所以说,如果想要比较引用类型对应的值是否相同,要用 equals,就会经过一番处理,然后比较引号里的值是否相同:

相关文章

Java 17的这些新特性,Java迈入新时代

前言2021年9月14日Java 17发布,作为新时代的农民工,有必要了解一下都有哪些新东西。Java 17是Java 11以来又一个LTS(长期支持)版本,Java 11 和Java 17之间发生了...

ChatGPT:教你认识一个神奇的python的数字类型int(有符号整型)

学编程 的人都知道,数据类型是必须要熟透和掌握的章节,在很多编程语言中,每个数据类型一般都有取值范围,比如:1)C++ 中C++中定义的int型为有符号32位整数,占4个字节,取值范围在-2,147,...

Java 7种类类型,新手必备_java的类型

今天给老婆整理了一下Java的几种类类型,希望她能对类的基本情况增加一些了解。1、接口(interface)接口是一个定义了方法规范(返回值、方法名、参数)的类,一般情况下不实现具体逻辑(在JDK1....

关于java开发中正确的发牌逻辑编写规范

关于 Java 开发中正确的发牌逻辑编写规范的一些要点: **1. 数据结构选择** - 可以使用数组或集合(如 `ArrayList` )来存储牌。例如,使用整数来表示牌的面值和花色.- 对于牌堆,...

Java数据类型_JAVA数据类型可以分为哪两大类?

Java的两大数据类型:基本数据类型引用数据类型1.1 内置数据类型Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。1.1.1 整数类型(Inte...

函数式编程的 Java 编码实践:利用惰性写出高性能且抽象的代码

本文会以惰性加载为例一步步介绍函数式编程中各种概念,所以读者不需要任何函数式编程的基础,只需要对 Java 8 有些许了解即可。一 抽象一定会导致代码性能降低?程序员的梦想就是能写出 “高内聚,低耦合...