- 四类八种基本数据类型,不包括字符串;引用数据类型包括数组……
- 常量:程序运行期间内容不可改变的量。
- 变量:每次每个变量只能保存一个数据变量,必须确定数据类型,
- 类型转换:
· 自动类型转换:范围小的类型向范围大的类型提升。
byte、short、char -》int -》long-》float-》double
与字节数不一定相关。
· 强制类型转换:将 取值范围大的类型 强制转换成 取值范围小的类型
例如:int i = (int)1.5; - 数组:引用数据类型
· 数组的长度在程序运行期间不可改变。可以改变称号。
· 初始化: - 动态初始化(指定长度)
int[] a = new int[3]; // 定义可以存储3个整数的数组容器
可拆分成:
int[] a;
a = new int[3]; - 静态初始化(指定内容)自动推算出长度
标准格式:
int[] a = new int[] {1, 2, 3}; // 一个数组,里面有1,2,3
可拆分成:
int[] a;
a = new int[] {1, 2, 3};
省略格式:(不能拆成两个步骤)
int[] a = {1, 2, 3}; - java内存划分:
Java 内存需要划分成5个部分: - 栈(Stack):存放的都是方法中的局部变量。方法运行一定要在栈当中。
局部变量:方法的参数或是方法体内部的变量
作用域:一旦超出作用域,立即从栈内存中消失 - 堆(Heap):new出来的都在堆中
堆内存里面存放的东西都有一个地址值:16进制(0x)
整数 | 默认0 |
---|---|
浮点数 | 0.0 |
字符 | |
布尔 | |
引用 | Null |
- 方法区(Method Area):存储.class相关信息,包含方法的信息。(名字,参数,返回值)
- 本地方法栈(Navitive Method Stack):与操作系统相关
- 寄存器(pc Register):与cpu相关
一个数组的内存图
两个引用指向同一个内存图
- 数组的长度:a.length
- 数组可以作为方法的参数,当调用方法的时候,传参进去的是地址值。
- 方法只能有一个或者0个返回值。多个数据返回,可用数组。返回的也是数组的地址值。
public static int[] calculate(int a, int b, int c) {
……
int[] array = {sum, avg};
return array;
}