数组:
数组是存储同一种数据类型多个元素的容器.数组既可以存储基本数据类型,也可以存储引用数据类型.
数组的定义格式(这两种定义做完了,数组中是没有元素值的):
数据类型[] 数组名
数据类型 数组名[]
数组初始化:java中的数组必须先初始化,然后才可以使用.
初始化:就是为数组中的数组元素分配内存空间,并为每个数组元素赋值
动态初始化:初始化时只指定了数组长度,由系统为数组分配初始值.
格式:数据类型[ ] 数组名 = new 数据类型[数组长度];
数组长度其实就是数组中元素的个数.
静态初始化:初始化时指定每个元素的初始值,由系统决定数组长度.
格式:数据类型[] 数组名 = {元素1,元素2,.....};
Java中JVM内存的划分:
Java程序在运行时,需要在内存中的分配空间.为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式.
Jvm的内存可以分为三个部分:堆(heap),栈(stack)和方法区(method);
堆区:存储的全部是对象,每个对象都包含一个与之对应的class的信息.(class的目的是得到操作指令);jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身.
栈区:每个线程包含一个栈区,栈中只保存基础数据类型的对象和自定义对象的引用(不是对象),对象都存放在堆区中;每个栈中的数据(原始类型和对象引用)都是私有的,其他栈不能访问.栈分为三个部分:基本类型变量区,执行环境上下文,操作指令区(存放操作指令)
方法区:又叫静态区,跟堆一样,被所有的线程共享.方法区包含所有的class和static变量;方法区中包含的都是在整个程序中永远唯一的元素.如class,static变量.
函数(方法)
方法(函数):就是完成特定功能的代码块.
格式:修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2..){ 函数体;return 返回值;}
方法的两个明确:
明确返回值类型 明确功能结果的数据类型
参数列表: 明确有几个参数,以及参数的类型
方法的调用(三种方式):
有明确返回值的调用:
单独调用,没有意义;输出调用,有意义,但是不够友好;赋值调用,简单实用,可操作性大;
没有明确返回值(void)的调用:
只能单独调用
方法的重载:
在同一个类中,允许存在一个以上的同名方法,只要他们的参数个数或者参数类型不同即可.
方法重载(overload)的特点:
方法名相同(必须),参数不同(数据类型,个数,顺序),与返回值无关.
在调用的时候,虚拟机通过参数列表的不同来区分同名方法.
方法的参数传递:
形式参数:用于接收实际参数的变量;
实际参数:实际参与运算的变量;
方法的参数是基本类型的时候:形式参数的改变不影响实际参数;
方法的参数是引用数据类型的时候,形式参数的改变,实际参数也跟着改变;