第三周学习报告

又经过了一周的学习,今天对本周学习进行总结
本周学习了Java中数组、方法的相关知识。

数组

数组的定义

格式一:数据类型[] 数组名;
格式二:数据类型 数组名[];

静态初始化

在声明数组的同时,就为数组的每个元素分配初始值。
数据类型[] 数组名=new 数据类型[]{元素一、元素二...};
简化格式:数据类型[] 数组名={元素一、元素二...};

数组的地址值和元素访问

在Java中,数组是一个对象,因此它存储在内存中并有一个地址值。与C或C++等语言不同,Java不允许直接访问或操作内存地址,不能直接获取或修改数组或其元素的内存地址。
可以通过数组引用来访问和操作数组元素。数组引用是指向数组对象的指针,你可以使用它来访问数组中的元素。
可以通过索引来访问数组中的元素

public static void main(String[] args) {  
    int[] numbers = {10, 20, 30, 40, 50};  
    // 访问数组元素  
    System.out.println(numbers[0]); // 输出: 10  
    System.out.println(numbers[1]); // 输出: 20  
    // 修改数组元素  
    numbers[0] = 100;  
    System.out.println(numbers[0]); // 输出: 100  
}  

数组的动态初始化

数据类型[] 数组名 = new 数据类型[数组长度];
动态初始化的好处是你可以在运行时根据需要来创建数组,并指定其大小。这使得数组更加灵活,能够适应不同的场景和需求,在动态初始化后,你可以通过索引来为数组中的每个元素赋值

数组的内存图

Java内存分配

栈(Stack):用于存储方法运行时使用的局部变量。每个线程都有自己独立的栈空间,栈中的数据是线程安全的。
堆(Heap):用于存储对象实例和数组。堆内存是Java虚拟机管理的最大的一块内存区域,也是垃圾收集器管理的主要区域之一。堆内存中的数据有一个唯一的地址值,用于被栈中的引用变量所指向。

数组内存分配

1.声明数组变量
当在Java中声明一个数组变量时,这个变量本身(即引用)是存储在栈内存中的。
2.动态初始化数组
通过new关键字动态初始化数组时,会在堆内存中为数组分配一块连续的空间,用于存储数组元素。同时,堆内存中的这块空间会有一个唯一的地址值,这个地址值会被赋值给栈内存中的数组引用变量。
3.访问和修改数组元素
通过数组引用变量和索引来访问和修改数组元素。

方法

在Java中,方法是一段用来完成特定功能的代码片段,它类似于其他编程语言中的函数。Java方法是面向对象编程中的一个核心概念,它们被定义在类里面,用于实现类的行为特征和功能实现。
方法是语句的集合,它们在一起执行一个功能。它是解决一类问题的步骤的有序组合,可以实现独立的功能,并且只有被调用时才会执行。

方法的定义和调用

修饰符 返回值类型 方法名(参数类型 参数名1, 参数类型 参数名2, ...) {  
    // 方法体  
    return 返回值; // 如果返回值类型为void,则此行可以省略  
}

修饰符:可选,用于指定方法的访问权限(如public、private等)或其他特性(如static、final等)。
返回值类型:指定方法执行完毕后返回的数据类型。如果方法不返回任何值,则使用关键字void。
方法名:方法的唯一标识符,用于在程序中调用该方法。
参数列表:方法接收外界输入的数据,可以包含多个参数,每个参数由参数类型和参数名组成。参数是可选的,方法可以不包含任何参数。
方法体:包含具体实现功能的Java语句。

方法的特性

必须定义在类里面:Java方法是面向对象编程的一部分,它们必须定义在类内部。
只有被调用才会执行:方法本身不会自动执行,只有在程序的其他部分显式调用时才会执行。
可以被重复使用:这是方法设计的主要目的之一,通过封装具有特定功能的代码块,可以在程序的不同位置多次调用。
支持重载:Java允许在同一个类中定义多个同名方法,只要它们的参数列表不同即可。这称为方法重载,允许同一个方法名称执行不同类型的任务。

静态方法与非静态方法

静态方法:使用static关键字声明的方法。静态方法属于类本身,可以直接通过类名调用,而不需要创建类的实例。静态方法不能访问类的非静态成员变量和非静态成员方法。
非静态方法:未使用static关键字声明的方法。非静态方法属于类的实例,必须通过类的对象来调用。非静态方法可以访问类的所有成员变量和成员方法。

以上是本周学习总结。
下周将学习面向对象和字符串相关知识。

posted @   muxin1630  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示