变量的三要素 变量的类型与声明方法
学习笔记(十二)
什么是变量?
变量是内存当中存储数据的最基本的单元。
变量就是一个存储数据的盒子。
变量的类型
在Java语言中任何数据都是有数据类型的。
1、整数型:byte (1字节) 最大存储数据量是255
存放的数据范围是-128~127之间。
short(2字节) 最大数据存储量是65536
存放的数据范围是-32768~32767之间。
int(4字节) 最大数据存储容量是 2的32次方减1,
数据范围是 负的2的31次方 到 正的2的31次方减1。
long(8字节) 最大数据存储容量是2的64次方减1
数据范围为负的2的63次方到正的2的63次方减1。
2、浮点型:float(4字节) 数据范围在3.4e-45~1.4e38
直接赋值时必须在数字后加上f或F
double(8字节)数据范围在4.9e-324~1.8e308
赋值时可以加d或D也可以不加。
3、字符型:char(2字节) 只有true和false两个取值。
4、布尔型:boolean(1字节)存储Unicode码,用单引号赋值。
不同的数据类型,在存储中分配的空间大小不同。也就是说,Java虚拟机到底给这个数据分配多大的空间,主要还是看这个变量的数据类型。
注:一个字节=8个比特位
一个比特位就是一个1或0
比特位是二进制位。
变量中的三要素
- 变量的数据类型
- 变量的名字
- 变量中保存的值
类型+名字+值:类型决定空间的大小。
名字是为了以后方便访问。(以后在程序中访问这个数据是通过名称来访问的)
值是变量保存的数据。
变量怎么声明/定义?语法格式是什么?
思考: 变量声明后,没有主动赋值,可以直接访问吗?
不可以,编译报错,错误原因:可能尚未初始化变量nianLing。
在Java语言中有一个规定,变量必须先声明、在赋值才可以访问。
对变量赋值:
使用一个运算符,叫做“=”,这个运算被称作赋值运算。
赋值运算符“=”的运算特点是:等号右边的先执行,执行完之后赋值给左边的变量。
思考:变量可以声明的时候赋值吗? 可以。
思考:以下代码可以执行吗?
不可以。 方法体当中的代码遵循自上而下的顺序依次逐行执行。只有执行了第六行的代码,k变量在内存中才会开辟空间。
重要结论:
1、同一个域中,变量名不可重复声明。
变量可以重新赋值,但在同一个域中,不可重复声明。
2、变量名不能重复定义
3、一行上可以同时声明多个变量
int a, b, c=100 中,a,b没有赋值,c赋值100。
变量的分类
- 在方法体当中声明的变量,叫做局部变量;
- 在方法体之外声明、类体内声明的变量,叫做成员变量。
声明位置不同,类型不同。
注意:局部变量只在方法体当中有效,方法体执行结束该变量的内存就释放了
变量的作用域
变量的作用域就是指变量的作用范围。
关于变量的作用域,大家可以记住一句话:出了大括号就不认识了。
修改过后:
就近原则:
哪个离我近,就访问哪个。
此时编译器输出的结果为100。
- 匿名内部类不能访问外部类方法中的局部变量,除非变量被声明为final类型
- zendstudio 声明变量类型,让变量自动方法提示
- [译】顺时针分析规则 —— 一种针对复杂变量声明的分析的方法(尤其是指针类型)
- JAVA匿名内部类不能访问外部类方法中的局部变量,除非变量被声明为final类型
- 快学Scala-变量声明、常用类型、条件与块表达式、循环、方法函数的调用
- 在静态方法中使用变量 (需要将变量在.m文件中声明未静态static 类型)
- PHP是否可以在声明变量的时候强行指定类型呢?巧方法让IDE识别PHP变量类型从而有代码提示
- 关于为什么内部类不能访问外部类方法中的局部变量,除非该变量被声明为final类型的疑问?
- 根据声明变量的类型自动转换方法的返回值类型
- [译】顺时针分析规则 —— 一种针对复杂变量声明的分析的方法(尤其是指针类型)
- MVC中的匿名变量声明方法
- js变量的声明、类型、以及使用
- python基础教程之基本数据类型和变量声明介绍
- 全局变量声明,定义与使用方法
- ActionScript3.0中获取变量类型的方法
- SpringMVC处理Date类型的成员变量方法
- 前端学习--TypeScript语法--基础类型以及变量声明
- typeof(fatime)方法 检查变量类型 bool number string null 等
- 007-declare 声明变量的类型
- JS声明变量类型