Java中的基本类型与非基本类型

简介: 本文目录1. 概述2. 基本类型3. 非基本类型4. 内存的不同位置

1. 概述

Java号称一切皆为对象,此话不假,但是尚需知道Java中的对象分两种类型:基本类型和非基本类型。


2. 基本类型

基本类型就是那些最常用的类型,例如:boolean/char/byte/short/int/long/float/double,这些类型有个特点,就是变量直接存储值。举个栗子:int num=100;,变量num中存储的值就是100。


3. 非基本类型

那啥是非基本类型呢,从字面就可以理解,除了基本类型之外的都是非基本类型了。非基本类型有个显著特点就是初始化的时候一般需要使用new来创建一个对象。


例如:String name=new String("Tom");。注意因为String字符串类型太常用了,Java为该类型做了一个语法糖:例如String name="Tom",可以使用等号简化new操作,但是String类型依然是非基本类型。


非基本类型跟基本类型的本质区别,在于非基本类型变量存储的不是值,而是"引用"。


例如String name=new String("Tom");,首先有一个字符串"Tom"在内存上一个位置存储好,然后name变量保存的是一个指示该位置的"引用“。注意该引用不一定是一个真实的内存物理地址,也可以是一个物理地址的代号,Java虚拟机只要能通过该引用找到这个位置就好了。


4. 内存的不同位置

实际上,基本类型和非基本类型对象的存储位置也是有区别的,基本类型对象存储于“堆栈”中,而非基本类型对象存储于“堆”中。


大家需要了解的是,“堆栈”更加靠近寄存器,所以速度更快,但是空间也就更小。而“堆“速度稍微慢点,但是空间更大。“堆栈”和“堆”都是内存的一块区域。


还有一点Java是一门语言,具体如何执行还要靠虚拟机实现,所以上述"堆”和"堆栈“说法也不一定100%如此,比如某个大牛非要实现一个虚拟机,让基本类型存储到堆上,也未尝不可…一顿操作猛如虎,这段话只是提供一个假设,目前应该还是按上述逻辑在执行的。

相关文章
|
1月前
|
存储 Java 数据库
java包装类的作用、基本类型和包装类型的区别
java包装类的作用、基本类型和包装类型的区别
47 0
java包装类的作用、基本类型和包装类型的区别
|
7月前
|
Java 流计算
Flink类型与Java基本类型关系映射表
Flink类型与Java基本类型关系映射表
50 0
|
21天前
|
存储 Java
Java的八种基本类型、隐式转换、强制转换以及特殊转换
Java的八种基本类型、隐式转换、强制转换以及特殊转换
|
11天前
|
存储 Java 程序员
【Java】Java的基本类型解读
【Java】Java的基本类型解读
13 1
|
1月前
|
Java C语言
java中8种基本类型与运算符
java中8种基本类型与运算符
23 3
|
1月前
|
存储 安全 Java
Java一分钟之Java数据类型概览:基本类型与引用类型
【5月更文挑战第7天】本文概述了Java中的基本和引用数据类型,强调了理解它们对高效编程的重要性。基本类型包括数值、布尔和字符类型,而引用类型涉及类、接口、数组等。注意基本类型的精度损失和溢出问题,以及引用类型的空指针异常和内存泄漏。通过明确类型范围、使用包装类、空值检查和及时释放资源来避免这些问题。代码示例展示了基本类型和引用类型的使用。理解这些核心概念有助于编写更健壮的Java代码。
22 1
|
1月前
|
Java 程序员
【JAVA面试题】基本类型的强制类型转换是否会丢失精度?引用类型的强制类型转换需要注意什么?
【JAVA面试题】基本类型的强制类型转换是否会丢失精度?引用类型的强制类型转换需要注意什么?
|
1月前
|
存储 Java C语言
【Java探索之旅】基本类型与引用类型 数组的应用 二维数组
【Java探索之旅】基本类型与引用类型 数组的应用 二维数组
18 0
|
1月前
|
安全 Java
Java中的基本类型原子类介绍
Java中的基本类型原子类介绍
27 1
|
9月前
|
存储 Java
Java基本类型和引用数据类型
Java基本类型和引用数据类型
59 0