当前位置: 首页 > news >正文

【JAVASE】java语法(成员变量与局部变量的区别、赋值运算符中的易错点)

一:成员变量与局部变量的区别

区别                                                             成员变量                                                                                    局部变量

类中位置不同                                        类中,方法外                                                                              常见于方法中

初始值不同                                有默认值,不需要初始化赋值                                             没有默认值,使用之前必须完成赋值

内存位置不同                                      堆内存                                                                                            栈内存

作用域不同                                              整个对象                                                                            在所归属的大括号中

生命周期                                                与对象共存亡                                             随着方法的调用而生,随着方法的运行结束而亡

代码举例:

二:赋值运算符

(1)基本赋值运算符:就是“=”。看代码时,从右往左看。

例如: int  a = 10;先看“=”右边,把数据10赋值给左边的变量a存储。

(2)扩展赋值运算符

符号                                   用法                                          作用                                                                            底层代码形式

+=                                      a +=b                                          加后赋值                                                      a=(a的类型)(a+b)

-=                                        a-=b                                           减后复制                                                       a=(a的类型)(a-b)

*=                                      a*=b                                              乘后赋值                                                     a=(a的类型)(a*b)

/=                                      a/=b                                            除后赋值                                                        a=(a的类型)(a/b)

%=                                     a%=b                                     取余后赋值                                                          a=(a的类型)(a%b)

注意:扩展赋值运算符隐含了强制类型转换。

在c语言中,我们知道a+=b;等价于a=a+b;在c语言中这之间没有强制类型转换。

代码演示:

从这个代码中,我们知道,当char   short  byte 类型的变量做算数运算时,计算得到的结果是int类型。

所以上述代码a=a+b;“=”右边的类型是int类型,“=”左边是byte类型。把int类型的数据赋值给byte类型的变量不兼容。

而a+=b这行代码没有报错,那么我们知道确实是发生了强制类型转换:a=(a的类型)(a+b);

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 基于R语言的糖尿病检测模型准确率97%
  • Linxu: Dynamic debug 简介
  • 近邻算法的详细介绍
  • 树的4种遍历
  • 【打印100个常用Linux命令】
  • websockets怎么工作的呢?
  • CentOS 7.8上安装ClamAV
  • 6.7.13 MV-Swin-T:使用多视图 SWIN 变压器进行乳房 X 光检查分类
  • 简单的订单系统,使用的os目录
  • 《Python程序设计》
  • LabVIEW进行图像拼接的实现方法与优化
  • 远程访问及控制
  • 手机建站介绍
  • 经济与安全兼顾:茶饮店购买可燃气体报警器的价格考量
  • 2024050401-重学 Java 设计模式《实战代理模式》
  • __proto__ 和 prototype的关系
  • Android单元测试 - 几个重要问题
  • C++类的相互关联
  • CAP 一致性协议及应用解析
  • ECMAScript6(0):ES6简明参考手册
  • JavaScript标准库系列——Math对象和Date对象(二)
  • mysql innodb 索引使用指南
  • Netty源码解析1-Buffer
  • nginx 负载服务器优化
  • spring cloud gateway 源码解析(4)跨域问题处理
  • Vultr 教程目录
  • 初识 beanstalkd
  • 将回调地狱按在地上摩擦的Promise
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 我有几个粽子,和一个故事
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • 怎么把视频里的音乐提取出来
  • FaaS 的简单实践
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • ​flutter 代码混淆
  • ​卜东波研究员:高观点下的少儿计算思维
  • ​决定德拉瓦州地区版图的关键历史事件
  • #DBA杂记1
  • $.each()与$(selector).each()
  • (152)时序收敛--->(02)时序收敛二
  • (C++哈希表01)
  • (poj1.3.2)1791(构造法模拟)
  • (办公)springboot配置aop处理请求.
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (一)模式识别——基于SVM的道路分割实验(附资源)
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .NET Project Open Day(2011.11.13)
  • .net 按比例显示图片的缩略图
  • .NET 中让 Task 支持带超时的异步等待
  • .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表
  • @Tag和@Operation标签失效问题。SpringDoc 2.2.0(OpenApi 3)和Spring Boot 3.1.1集成
  • [.net]官方水晶报表的使用以演示下载
  • []我的函数库
  • [Armbian] 部署Docker版Home Assistent,安装HACS并连接米家设备