为什么阿里会推荐所有的局部变量使用基本数据类型?

简介: 云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! Java中共有三种变量,分别是类变量、成员变量和局部变量。他们分别存放在JVM的方法区、堆内存和栈内存中。

云栖号资讯:【点击查看更多行业资讯
在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来!


Java中共有三种变量,分别是类变量、成员变量和局部变量。他们分别存放在JVM的方法区、堆内存和栈内存中。

1

上面定义的三个变量中:

  • 变量a就是类变量,存放在方法区,线程共享。
  • 变量b就是成员变量,随着对象一起存放在堆内存,线程共享。
  • 变量c和d是局部变量,存放在栈内存,线程独享。

也就是说,变量a和b是共享变量,变量c和d是非共享变量。

即局部变量是非共享变量,作用域只在方法内部,并不会逃逸到方法外。

那么,既然是一个作用域只在方法内的变量,不需要考虑那么多,怎么性能高怎么定义,怎么方便使用怎么定义。

我们都知道在Java语言中,new一个对象是存储在堆里的,我们通过栈中的引用来使用这些对象;所以,对象本身来说是比较消耗资源的。

对于经常用到的类型,如int等,如果我们每次使用这种变量的时候都需要new一个Java对象的话,就会比较笨重。

所以,和C++一样,Java提供了基本数据类型,这种数据的变量不需要使用new创建,他们不会在堆上创建,而是直接在栈内存中存储,因此会更加高效。

【云栖号在线课堂】每天都有产品技术专家分享!
课程地址:https://yqh.aliyun.com/live

立即加入社群,与专家面对面,及时了解课程最新动态!
【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK

原文发布时间:2020-06-03
本文作者:HollisChuang
本文来自:“掘金”,了解相关信息可以关注“掘金”

相关文章
|
6月前
|
存储
【面试小知识】基本数据类型和引用数据类型
【面试小知识】基本数据类型和引用数据类型
|
存储
基础数据类型和引用数据类型区别?
基础数据类型和引用数据类型区别?
|
5月前
|
存储 安全 Java
程序与技术分享:C#值类型和引用类型的区别
程序与技术分享:C#值类型和引用类型的区别
43 0
|
6月前
|
存储 Java Python
引用数据类型和基础数据类型的区别
引用数据类型和基础数据类型的区别
|
6月前
|
存储 Java
基础数据类型和引用数据类型的区别
基础数据类型和引用数据类型的区别
|
存储 Java
基本数据类型和引用数据类型的区别
基本数据类型和引用数据类型的区别
94 0
|
存储 Java
深入理解Java基本数据类型与引用数据类型
深入理解Java基本数据类型与引用数据类型
130 0
|
存储 编译器 程序员
【C++Primer】第2章:变量和基本类型
【C++Primer】第2章:变量和基本类型
105 0
【C++Primer】第2章:变量和基本类型
|
存储 安全 索引
1 变量和基本数据类型
1 变量和基本数据类型
91 0
|
存储 编译器 C++
【C++】基本数据类型和变量
有关C++数据类型的记录
142 0
【C++】基本数据类型和变量