首页 > 其他分享 >第三周学习报告

第三周学习报告

时间:2024-07-20 20:20:14浏览次数:6  
标签:Java 报告 数据类型 元素 第三周 学习 内存 数组 方法

又经过了一周的学习,今天对本周学习进行总结
本周学习了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关键字声明的方法。非静态方法属于类的实例,必须通过类的对象来调用。非静态方法可以访问类的所有成员变量和成员方法。

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

标签:Java,报告,数据类型,元素,第三周,学习,内存,数组,方法
From: https://www.cnblogs.com/wangzilin0507/p/18313705

相关文章

  • 苍穹外卖学习笔记——第十二天
    数据统计(Excel报表)工作台需求分析和设计工作台是系统运营的数据看板,并提供快捷操作入口,可以有效提高商家的工作效率。产品原型工作台展示的数据今日数据订单管理菜品总览套餐总览订单信息名词解释营业额:已完成订单的总金额。有效订单:已完成订单的数量。订单完成......
  • 暑假第三周总结(7.15-7.20)
    这周做了什么继续学习JAVA,做出了城堡游戏点击查看代码//RoompackagecastleV3;importjava.util.HashMap;publicclassRoom{ privateStringdescription;privateHashMap<String,Room>exits=newHashMap<String,Room>();publicRoom(String......
  • 软件工程进度报告——第三周
    本周总结:本周下载安装了IDEA编译器并学习Java代码的基本格式1.为什么要用编译器?记事本不够智能,即没有编译器的提示功能也没有编译器的测试功能,这时就需要使用高级的开发工具——编译器。2.为什么要用IDEA?IDEA是现在业内公认的JAVA程序开发的最好工具下载地址:www.jetbrains.co......
  • Datawhale AI 夏令营——CV图像竞赛(Deepfake攻防)——Task3学习笔记
        这一篇是在数据增强的方向上发力,尝试提升模型的表现。        数据增强的目的是通过人工方式增加训练数据的多样性,从而提高模型的泛化能力,使其能够在未见过的数据上表现得更好。对于图像而言,数据增强包括例如视角、光照、遮挡等情况,使得模型能够学习到......
  • Java学习路线图-进阶版
    好看的皮囊千篇一律、有趣的灵魂万里挑一文章持续更新,可以微信搜索【小奇JAVA面试】第一时间阅读,回复【资料】获取福利,回复【项目】获取项目源码,回复【简历模板】获取简历模板,回复【学习路线图】获取学习路线图。还有机会获得内推名额。文章目录一、Java基础二、MyS......
  • 第三周总结
    学习进度:(1)阅读完《大道至简》第三章以及第四章一部分,第三章讲了团队缺乏的不只是管理,讲了如何做一位管理者,制度的一些问题,还有分工的重要性,管理并不等同于做伯乐。在第四章的阅读部分,告诉我们不要要求你的客户按照你的方式来明白你的东西,要以客户的角度来让客户明白你的东西,要注......
  • 2024“钉耙编程”中国大学生算法设计超级联赛(1)结题报告1 2 8
    1001循环位移字符串哈希将a展开*2对于每个长度为len_a的序列进行一次hash存储并将其插入set中对于b进行一次哈希对于每个长度为len_a的连续子串进行一次查询点击查看代码#include<bits/stdc++.h>usingnamespacestd;//22222constintN=5e6+10;constintp1......
  • 第三周学习日历
    这一周在练车,感觉练学车好难...在空余时间我也学习了Java的一些知识,在学习中自己敲了一些代码记录下来...这周最大的进步是自己根据要求写了一个学生管理系统,虽然之前用C++写过类似的,但是用一门新的语言,有不同的成就感>_<7月15日参加了睿康的编程赛写出来3题半1000多名......
  • 2024牛客暑期多校训练营2 解题报告
    B-MST对于整个序列进行一次kruskal对于序列中如果需要访问的点数小于300那么将所有的点的边存入序列中进行kruskal如果大于300那么直接对于所有的点进行kruskal点击查看代码#include<bits/stdc++.h>#defineintlonglong#defineall(x)x.begin(),x.end()#defineral......
  • acwing学习笔记-数学知识
    文章目录数学知识一、质数1、试除法判定质数2、开方判定质数3、分解质因数4、筛质数(1)、埃氏筛法(2)、线性筛二、约数1、试除法求约数2、约数个数总结数学知识数学真是一个令人摸不着头脑的一个东西,小小的质数都可以把你拿捏得死死的一、质数1、试除法判定质......