为什么阿里会推荐所有的局部变量使用基本数据类型?
云栖号资讯:【点击查看更多行业资讯】
在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来!
Java中共有三种变量,分别是类变量、成员变量和局部变量。他们分别存放在JVM的方法区、堆内存和栈内存中。
上面定义的三个变量中:
- 变量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
本文来自:“掘金”,了解相关信息可以关注“掘金”
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
用Python给女朋友每日定时推送睡前小故事
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 导读:这篇文章利用简单的Python爬虫、邮件发送以及定时任务实现了每天定时发送睡前小故事的功能,是一篇步骤详尽的文章。 最近,某可爱要求我忙完之后给她每晚睡前讲讲小故事,我想了下,网络上应该有各种资源,小故事也都能搜得到,但是数量比较少,而且格式不够统一,提取比较困难。转念一想,面向儿童的睡前故事可能也比较适用,于是我准备从儿童睡前故事中取材,搜索之后发现有一个适合提取睡前故事的网址: tom61.com/ertongwenxue/ 一共有700则小故事,嗯,一天一则数量可以满足,html格式也比较统一,就决定是它了! 查看网页源代码,ctrl+F输入查询关键字幸福王国,定位到相关信息: 发现其故事链接包含在dl标签中的a标签中的href属性, /ertongwenxue/shuiqiangushi/2018-02-25/106432.html,点击后得到完整网址 tom61.com/ertongwenxue/ 接下来要做的就是提取出该链接: 模拟浏览器访问网页,利用requests库...
- 下一篇
如何选出适合自己的管理Helm Chart的最佳方式?
本文转载自Rancher Labs 无论你喜欢与否,你都不得不承认Helm是管理Kubernetes应用程序独一无二的工具,你甚至可以通过不同的方式使用它。 在Helm的使用过程中,我们注意到有几个问题不断出现: 你将你的Helm chart放在哪里? 你是使用app文件保存它们还是使用chart仓库? 你如何划分Helm chart? 你是使用一个共享的chart或是为每个服务维护一个chart? 我正在通过我以往在各种创业公司的经验来尝试解决这些问题,但是我也借鉴了大型公司的做法。 以下是我要概述的几个方法: 使用一个chart仓库来存储一个大型共享chart 使用一个chart仓库来存储许多特定于服务的chart 使用特定于服务的chart,这些chart与服务本身存储在同一仓库中 然后,我将介绍在决定这些选项时应该考虑的因素,例如依赖项差异和团队结构等。 Option1:在一个chart仓库中维护一个大型共享chart 在我们一个项目中,我们从一个用于部署多个服务的大型chart开始。它存储在ChartMuseum中,并由负责部署基础架构的人员进行维护。 如果你的各个服务在本质...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Red5直播服务器,属于Java语言的直播服务器
- CentOS关闭SELinux安全模块
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS8编译安装MySQL8.0.19