Java数组、方法与内存
一、数组数组用来存储同种数据类型的多个值。1.数组的静态初始化1初始化初始化是指在定义变量、数组、对象的时候进行赋值。2静态静态是指在定义变量、数组、对象的时候数据是静止的、确定的。3静态初始化在创建数组时直接给数组赋值。//格式数据类型 数组名[] new 数据类型[]{数据值,数据值...};//简写格式数据类型 数组名[] {数据值,数据值...};4特点①数组在内存中是连续的空间②数组一旦定义完毕长度是不可以改变的。2.数组的元素访问1索引索引就是数组的一个编号也叫做角标、下标、编号从0开始不间断。2元素的获取和修改//获取格式变量 数组名[索引];//修改格式数组名[索引] 数据值;3.数组的遍历数组的遍历常使用for循环。*在Java中可以用数组名.length来获取数组长度。*遍历数组的快速生成方式数组名.fori回车。4.数组的动态初始化1动态动态是指在定义变量、数组、对象时数据时不确定的。2初始化创建数组的时候直接给数组赋值。3动态初始化在Java中动态初始化指在创建数组时指定长度由系统分配默认的初始值。数据类型默认值整型0浮点数0.0字符\u0000(空格)布尔false引用null//格式数据类型 数组名[] new 数据类型[长度];5.数组的常见问题1数组索引越界数组索引最小为0最大为数组长度-1若超出数组索引范围则会报错。二、方法程序中的独立功能也是最小的执行单元。1.应用场景及好处1使用场景将经常使用的代码包装起来放在方法中。2好处提高代码的复用性和可维护性。2.方法的格式//定义格式 public static 返回值类型 方法名(参数1,参数2...){ 方法体; return 返回值; } //调用格式 方法名(参数1,参数2...);3.方法的重载同一个类中定义了多个重名的方法这些方法具有类似的功能每个方法具有不同的参数类型和参数个数这些重名的方法就构成了重载关系。理解同一个类方法名相同参数不同个数、类型、顺序无需看返回值。4.注意事项1实参和形参方法调用时的参数是实参方法定义中的参数为形参。实参要和形参一一对应。2return结束方法运行并将结果返回方法的调用处。3定义方法①将反复使用的独立功能包装成方法②参数是实现方法所需的数据③返回值由方法调用处是否需要返回值需要什么返回值决定。4方法调用①方法不调用就不执行②方法与方法之间是平级关系不能嵌套定义③调用方法会优先调用实参和形参一一对应的方法如果没有会进行隐式转换如果存在多种方法的隐式转换的次数一样程序则会报错。5void如果没有返回值可以省略return不写如果不省略return后面不能写具体数据仅表示结束方法。二、Java原理1.Java的运行机制.java后缀文件通过编译生成.class为后缀的字节码文件再运行。Java运行是在Java虚拟机里面完成的。借助不同的虚拟机可以实现跨平台。1内存软件在运行时用来临时存储数据。2内存地址①在32位的操作系统内存地址以32位的二进制表示②在64位的操作系统内存地址以64位的二进制表示系统显示为十六进制。③方便快速管理内存空间。2.Java内存分配规则1栈内存每个线程都有自己独立的栈目前只要考虑一个即可方法被调用进栈执行执行完毕出栈。2堆内存所有线程共享存储对象、数组、字符串常量池。用new关键字创建的。3方法区存储字节码信息。4本地方法栈调用本地Native方法。5程序计数器每个线程独立、记录当前线程执行的字节码指令地址行号。6基本数据类型变量里面记录的是真实的数据传递的也是真实的数据。7引用数据类型变量里面记录的是地址通过地址在堆里找到对应的数据。传递的也是内存的地址。