Java内存分析
注:
变量:从本质上讲,变量其实是内存(栈)中的一小块区域,使用变量名来访问这块区域。因此,每个变量使用前必须先申请(声明),然后必须进行赋值,才能使用。
按被声明的位置划分:
- 局部变量:方法或语句块内部定义的变量。
- 成员变量:方法外部、类的内部定义的变量。
- 注意:类外面(与类对应的大括号外面)不能有变量的声明。
按所属的数据类型划分:
- 基本数据类型变量(在栈内)
- boolean型只用ture 和 false
- char型表示单个字符,用单引号括起来。
例子:char a='a' , b='中' ;(字符可以是字母,中文,符号等等)
char c = '\u0061';(可用Unicode编码表示,每个字符占两个字节)
char d = '\n'; //'\n'代表换行符 (还可以用转义字符'\'来将其后面的字符转变为其它含义)
-
整型变量的三种表示形式:
十进制整数,如:12,-314,0
八进制整数,要求以0开头,如:012
十六进制,要求0x或0X开头,如:0x12 - 浮点数变量的两种表示方式:
十进制数形式,如 3.14 , 314.0
科学记数法形式,如 3.14e2 , 3.14E2 , 100e-2 - 容量小的类型自动转换为容量大的类型:byte ,short ,char ->int->long->float->double
byte ,short ,char之间不会相互转换,他们在计算时首先转换成int型
boolean类型不可以转换为其他数据类型
有多种类型的数据混合运算时,系统首先自动将所有的数据转换为容量最大的数据类型,然后再进行计算。
6. "+"运算符两侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串然后再进行连接。
当进行打印时,无论任何类型,都自动转为字符串进行打印。
- 引用数据类型变量(在堆内)
常量:常量用字符串表示,分字符常量和字符串常量两种,值不可改变,只能够被引用。(用到final关键字)