java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间
1.数据类型
(1)数据类型分类
基本数据类型(整数型(byte、short、int、long),浮点型(float、double),字符型(char),布尔型(boolean) )
引用数据类型
(2)数据类型转换
隐式转换:小的数据类型和大的数据类型进行混合运算的时候,小的数据类型会提升为大的数据类型
强制转换:想要转换成什么样的类型就在其前面加上什么类型的强制转换符。两个byte相加是int类型
2.方法
(1)基础概念
重载:方法名相同,参数列表不同,与返回值类型无关
(2)方法传值
基本数据类型的值传递,不改变原值。因为调用之后就会弹栈,局部变量随之消失
引用数据类型的值传递,改变原值。因为即使方法弹栈,但是堆内存数组对象还在,可以通过地址继续访问
3.数组
(1)数组定义:数据类型[] 数组名 = new 数据类型[数组长度]
(2)数组初始化:
动态初始化:只指定长度,由系统给出初始化值,整数类型默认初始化值是0,浮点类型默认初始化值是0.0,布尔类型默认初始化值是false,字符类型默认初始化值是'\u0000'; int[] arr = new int[5],
静态初始化:给出初始值,系统给出长度;数据类型[] 数组名 = new 数据类型[]{元素1,元素2.....}
4.java内存分配以及栈和堆的区别
栈(先进后出):存储局部变量
局部变量:定义在方法声明上和方法中的变量
堆:存储new出来的数组或对象
方法区:
本地方法区:和系统相关
寄存器:给CPU使用