JavaSE语法基础(3)---函数、数组

 函数的概念:实现特定功能的一段代码,可反复使用。

 函数的出现减少代码冗余,提高代码的复用性,可读性,可维护性,可以使每个功能模块独立起来,方便分工合作。

 函数的三要素:返回值、函数名、参数表

  

 

我们可以在类中,与main方法(函数)并行的位置定义一个函数,如果我们定义的函数由返回值类型,那么我们必须

要返回相应类型的值。如果函数的返回值类型是void,那么我们可以不需给予返回值,或者在函数中使用return ;结束函数。

调用函数时,会优先执行函数内部代码,结束后,返回到函数调用处,继续向下执行。

继续看这个源文件:

方法的重载:函数名(方法名)相同,参数列表中的参数的个数、位置、类型至少有一个不同。我们称其为方法的重载

方法重载与返回值、修饰符无关。

---------------------------------------------------------------------------------------------------------------------------------------------------------------------

1.数组

概念:一组连续的存储空间,存储多个相同数据类型的值。

数组中的每个数据格被称为 “ 数组元素 ”

对每个元素进行赋值或取值的操作被称为“ 元素的访问”

2.数组的创建(4种方法)

  • 先声明、再分配空间:

数据类型 [] 数组名;

数组名 = new 数据类型[ [ 长度 ];

  • 声明并分配空间:

数据类型 [] 数组名 = new 数据类型[ [ 长度 ];

  • 声明并赋值(繁):

数据类型 [] 数组名 = new 数据类型 []{ value1,value2,value3 ,...};

  • 声明并赋值(简):

数据类型 [] 数组名 = {value1,value2,value3,...}; // 显示初始化,注意:不可换行

3.数组的默认值

  • 整数:0
  • 小数:0.0
  • 字符:\u0000 (空格)
  • 布尔:false
  • 其他:null

4.数组的遍历

遍历:从头至尾,逐一对数组的每个元素进行访问。

数组名.length 可动态获得数组长度。

5.数组的扩容

创建数组时,必须显式指定长度,并在创建之后不可更改长度。

扩容的思路:

创建大于原数组长度的新数组。

将原数组中的元素依次 复制 到新数组中。

5.1 扩容方式

循环将原数组中所有元素逐一赋值给新数组。

System.arraycopy( 原数组, 原数组起始, 新数组, 新数组起始, 长度 );

java.util.Arrays.copyOf( 原数组 ,新长度 ); // 返回带有原值的新数组。

5.2地址的替换

数组作为引用类型之一,其变量中存储的是数组的地址。

完成元素复制后,需将新数组地址,赋值给原变量进行替换。

6.可变长参数

概念:可接收多个同类型实参,个数不限,使用方式与数组相同。

语法:数据类型 ... 形参名 // 必须定义在形参列表的最后,且只能有一个。

7.数组的排序

冒泡排序:相邻的两个数值比较大小,互换位置。

选择排序:固定值与其他值依次比较大小,互换位置。

JDK 排序: java.util.Arrays.sort( 数组名 ); //JDK 提供(升序)

8.二维数组

概念:一维数组中的一维数组;数组中的元素,还是数组。

8.1创建语法

  • 先声明、再分配空间:

数据类型 [][] 数组名;

数组名 = new 数据类型[ [ 高维长度 ][ 低维长度 ];

  • 声明并分配空间:

数据类型 [][] 数组名 = new 数据类型[ [ 高维长度 ][ 低维长度] ]; ;

  • 声明并赋值(繁):

数据类型 [][] 数组名 = new 数据类型[ [ 高维长度 ][] ; // 不规则数组,自行 new 低维数组

  • 声明并赋值(简):

数据类型 [][] 数组名 = { { v1,v2,v3},{v4,v5},{v6,v7,v8,v9} }; //显式初始化,不可换行.

8.2内存分配

高维数组中的每一个元素,保存了低维数组的地址。

8.3二维数组的访问

访问低维长度:array[0].length 首个低维数组的长度

访问低维数组元素:array[0][0] 首个低维数组的首个元素

 二维数组的应用:杨辉三角

JavaSE语法基础(3)---函数、数组的更多相关文章

  1. Swift语法基础入门二(数组, 字典, 字符串)

    Swift语法基础入门二(数组, 字典, 字符串) 数组(有序数据的集) *格式 : [] / Int / Array() let 不可变数组 var 可变数组 注意: 不需要改变集合的时候创建不可变 ...

  2. JAVA语法基础之函数的使用说明

  3. -1-1 java 基础语法 java关键字 java 注释 常量 语句 运算符 函数 数组定义

    Java语言基础组成 关键字 标识符 注释 常量和变量 运算符 语句 函数 数组 关键字 定义:被Java语言赋予了特殊含义的单词 特点:关键字中所有字母都为小写 用于定义数据类型的关键字 class ...

  4. Swift语法基础入门三(函数, 闭包)

    Swift语法基础入门三(函数, 闭包) 函数: 函数是用来完成特定任务的独立的代码块.你给一个函数起一个合适的名字,用来标识函数做什么,并且当函数需要执行的时候,这个名字会被用于“调用”函数 格式: ...

  5. C语言基础语法之指向函数的指针

    指针是C语言的精髓,对于初学者来讲,指针是C语言语法学习中比较难的知识点,而这里面指向函数的指针更是不太容易理解. 下面给大家讲下怎样学习理解C语言中指向函数的指针及编程方法和使用例子. 注意:这是一 ...

  6. JavaScript基础之函数与数组

     函数    函数的基本概念 为完成某一功能的程序指令(语句)的集合,称为函数.有的程序员把函数称为方法,希望大家不要被这两个名词搞晕了. 函数分为:自定义函数.系统函数(经常查看js帮助手册). j ...

  7. Java06-java基础语法(五)数组

    Java06-java基础语法(五)数组 一.循环的嵌套 在一个循环体内部再含有一个或多个循环 强调:内循环全部做完以后再去执行下一次的外循环 int k = 0; for(int i = 0; i& ...

  8. 075 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 07 综合案例-数组移位-主方法功能4的实现

    075 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 07 综合案例-数组移位-主方法功能4的实现 本文知识点:综合案例-数组移位-主方法功能4的实现 说明:因为 ...

  9. 074 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 06 综合案例-数组移位-主方法功能3的实现

    074 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 06 综合案例-数组移位-主方法功能3的实现 本文知识点:综合案例-数组移位-主方法功能3的实现 说明:因为 ...

随机推荐

  1. GET与POST请求的区别

    Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE.URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP ...

  2. 第5章 PCIe总线的事务层

    事务层是PCIe总线层次结构的最高层,该层次将接收PCIe设备核心层的数据请求,并将其转换为PCIe总线事务,PCIe总线使用的这些总线事务在TLP头中定义.PCIe总线继承了PCI/PCI-X总线的 ...

  3. VTK显示mhd,mha格式文件

    下一篇文章将详细介绍mhd,mha文件的构成以及如何制作void renderMhd () { // read input image vtkSmartPointer<vtkMetaImageR ...

  4. Caused by: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'content' a

    1.错误描述 org.hibernate.exception.DataException: could not execute statement at org.hibernate.exception ...

  5. LINQ 按多个字段排序(orderby、thenby、Take)

    LINQ 按多个字段排序(orderby.thenby.Take) orderby  子句解析为 OrderBy()方法,orderby descending 子句解析为OrderBy Descend ...

  6. hihocoder Challenge 29 A.序列的值

    我现在就感觉我这人现在真的没有dp的意识 其实真写起来也不难,但是把就是练的少思维跟不上,dp从根本上就是一种状态的提炼和聚集. 按照题解的意思来,表示二进制第i位的值为j(0,1)的组合有多少,然后 ...

  7. freemark标签从后台接过来数据Boolean在前台还是Boolean输出(四)

    FREEMARK标签中输出BOOLEAN值 private boolean showHeader=true; public boolean getShowHeader(){ return this.s ...

  8. DirectSound---3D环境

    DirectSound对于单声道的Wav文件(或者说对于单声道的PCM音频数据)提供了内置3D音效的模拟,你能够控制每一个声源和收听者的立体位置,对移动的物体应用多普勒效果等等.在单个应用程序中,可以 ...

  9. 「拆小鹤」使用 python 实现 QQ机器人服务。

    使用的是python的qqbot机器人库,我其实只是实现了这个库的一个插件. 具体的说明,我觉得qqbot的官方文档,还有我的插件的注释都写得很详细了,可以直接看.所以有空再写吧. 没错我就是懒..

  10. Fu+ 后台管理 (Thinkphp)

    简要:小主从事PHP二年,期间一直做后台;为此向大家分享我制作一个后台(权限),希望能够跟各位PHP大神学习探索,如果有不对或者好的建议告知下:*~*! 1. 介绍 Fu+ 后台管理,是本人基于H+好 ...