Java基础知识分享(二)

写在前面

昨天给了十题编程题,如果你能有思路很快速地完成它,说明你的Java数据类型、运算符、选择语句、循环语句部分的基础知识很好,接下来就来看看后面的方法、数组以及他们在JVM中的内存划分知识吧!

方法

语句定义格式:

修饰符 返回值类型 方法名(参数类型 参数名,参数类型 参数名,......)
{
方法体;
return 返回值;
}

使用通俗一点的语言就是说,Java中定义一个方法需要指定修饰符、返回值类型(如果是空类型则写void)、方法的名字以及后面使用小括号将一个参数列表括起来,最后使用一个大括号,在里面写上方法体和return返回值。

这里的修饰符就像是public、static等修饰方法的符号,每种都有自己特殊的含义。返回值类型就是像int、String、int[][]等Java中的数据类型,也是后面return需要返回值的数据类型。方法名字自己可以取,但最好是见名知意,方法在命名时建议使用小写字母组成的单词或字符串,如果有两个及两个以上单词组合建议使用驼峰法命名,与类名区分。参数列表指的是参数的数据类型和参数的个数,比如这样定义(int a , int b)也就意味着这个方法里面有两个参数,并且这两个参数的类型都是int类型的,传入的参数也只能是int类型的参数,当然,参数可以没有也可以有很多,所以说是一个列表。最后就是方法体了,这个是方法最核心的部分,也是实现功能编写代码的地方,需要自行编写,如果有返回值,前面的返回值数据类型一定要一致,没有返回值也要在开头的返回值类型写void,不然会在运行时报错。

方法中的一些注意事项:

1、修饰符,第一次学的话,默认使用public static。
2、方法和方法是平级关系,不能嵌套定义的。
3、方法不调用不执行。
4、方法调用的时候,只需要传值就可以。
5、参数分为形式参数(方法定义小括号中的参数)和实际参数(实际调用时传入的值)。
6、若一个方法没有返回值,那么它的返回值类型是void。
7、若一个方法没有返回值,return可以省略不写。
8、若方法有返回值,那么方法内部必须要有一个return生效。

数组

数组的概述:数组是一块连续固定大小的内存空间

特点:

1、一旦创建,大小固定。
2、同一个数组、元素的数据类型是一样的。
3、具有索引下标的概念,将来可以通过索引获取元素。
4、数据查询快,增删慢。

一维数组

定义语句:数据类型[] 数组名;初始化:
静态初始化数据类型[] 数组名= new 数据类型[]{元素1,元素2,....};或 数据类型[] 数组名= {元素1,元素2,....};动态初始化数据类型[] 数组名= new 数据类型[元素的个数];

二维数组

定义语句:数据类型[][] 数组名;初始化:
静态初始化:数据类型[][] 数组名= new 数据类型[][]{{2,3,4},{2,3,4}};或 数据类型[][] 数组名={{2,3,4},{2,3,4}};动态初始化:数据类型[][] 数组名= new 数据类型[二维数组中一维数组的个数][每个一维数组中的元素个数];

数组获取长度的属性

使用属性length
使用的方式:数组名.length

可能会有很多人不清楚这个二维数组是个什么样的,可以看下面这个图有助于理解:

也就是说,定义的二维数组里面,不一定要像矩形一样,每个位置都有值。

数组在JVM中的内存划分

如图所示:

下面我就来解释一下这个图中的意思。

我们先来看代码部分,首先定义并创建了两个字符类型的一维数组,长度固定都是5,这个时候看图里的栈中的main里面会有两个字符数组arr1和arr2被定义,再看堆内存里的两个数组,下标都是从0开始的,里面都被系统进行了初始化赋值,因为是字符类型,所以都是'\u0000',这个就是系统进行赋值的默认值,就像int类型会默认赋值为0一样。

我们再继续看代码,打印了两个数组的地址,地址就是图中标红的一串16进制编码,它是这两个数组在内存中的具体位置。之后进行了两种赋值,一种是动态for循环赋值,因为a的阿斯克码为97,所以就直接i递增把值赋给每个数组的第i+1个位置就行了,第二种则是直接写死,最后使用一个方法打印出来就有了两个数组的具体内容。在内存中就是,把对应地址的内容分别改成a到e和f到j,可以看到,在栈中的main里,两个数组都是指向自己数组对应的地址的,所以我在赋值的时候,系统就会分别找到其地址并进行相应的赋值。

最后,再说说方法。方法其实很简单,就是打印一个一维的字符数组,不过是以类似[a,b,c,d,e]的格式打印出来而已,也是进行了方法调用,不用的话需要写两遍这个打印,体现了使用方法的便捷。具体实现细节可以看代码,有不清楚的可以在下面评论!欢迎指正批评!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/774261.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C 语言指针学习

C 语言指针学习 目标:复习软考 + 阅读代码 + 理解数据结构; 1. 指针定义 内存区域中的每个字节都对应一个编号,这个编号就是地址。如果在程序中定义了一个变量,那么在对程序中进行编译时,系统就会给这个变量分配内存单元。按变量地址存取值的方式称为直接访问,如printf(&q…

环形表示进度 css+js+svg

先看看我做出来的效果人狠话不多 直接上代码 html部分 <div id="box"></div>css部分#box{width: 400px;height: 400px;background-color: #00E8D7;display: flex;}.circleBox{width: 33.333%;display: flex;flex-direction: column;align-items: center;…

卡特兰数(Catalan)

1.简介: 卡特兰数是组合数学中一个常出现于各种计数问题中的数列。 十以内的卡特兰数,方便打表找规律,稍微记记。 1 2 5 14 42 132 429 1430 4862 16796 2.catalan递推式子 (1)点击查看代码 #include<bits/stdc++.h> using namespace std;#define int long long con…

数据可视化在智慧园区中能够发挥什么作用?

在智慧园区的建设和管理中,数据可视化技术正发挥着越来越重要的作用。通过数据可视化,园区管理者可以将大量复杂的数据转化为直观、易懂的图形和图表,从而更高效地监控和分析园区内的各种动态。数据可视化不仅能够实时展示园区内的人员流动、能耗情况、安全状况等关键指标,…

【学习笔记】并查集应用

【学习笔记】并查集应用 以 NOI 2001 食物链 为例の两种并查集用法。 题目大意: 规定每只动物有且仅有三种可能的种类 \(A、B、C\),\(A\) 会吃 \(B\),\(B\) 会吃 \(C\),\(C\) 会吃 \(A\)。 给定 \(N\) 只动物,\(K\) 个语句。每个语句有如下两种可能的表达:1 X Y 表示动物…

《NET CLR via C#》---第三章(运行时解析类型引用)

"运行时"解析类型引用首先在"C:\Users\LH89\source\repos"目录下,新建Console1工程(C#控制台)实现简单的代码,并编译为程序集(假定名为Program.exe)using System;public class Program {static void Main(string[] args){Console.WriteLine("Hell…

2024“钉耙编程”中国大学生算法设计超级联赛(3) 1005 数论

题意:分析: 远看数论题,实则是道数据结构。 记 \(f_{i}\) 表示 \(r_{k}=i\) 的方案数,\(g_{i}\) 表示 \(l_{1}=i\) 的方案数,那么运用简单容斥,可得: \[ans_{x} = (\sum_{i=1}^{n} f_{i}) - ((\sum_{i=1}^{x-1}f_{i})+1) \times ((\sum_{i=x+1}^{n}g_{i})+1)+1 \]先考虑…

金蝶云星空历史库存信息批量计算生成

一、业务背景今天是2024年07月30日,系统2024年01月01日启用,导入初始库存。 二、需求背景需要快速查询库存组织=供应链中心下,某仓库某物料的库存数。后面还需要按照过去时间范围查询每一天的库存量以监控变化。 三、参考《库存汇总表》《库存余额》《库存账龄分析》《物料收…

使用 useSeoMeta 进行 SEO 配置

title: 使用 useSeoMeta 进行 SEO 配置 date: 2024/7/30 updated: 2024/7/30 author: cmdragon excerpt: 摘要:本文介绍了Nuxt3中的useSeoMeta组合函数,用于简化和优化网站的SEO配置。通过这个工具,开发者可以在Nuxt3项目中方便地设置页面元标签,包括标题、描述以及Open …