方法

Java方法是语句的集合,它们在一起执行一个功能。

  • 方法是解决一类问题的步骤的有序组合

  • 方法包含于类或对象中

  • 方法在程序中被创建,在其他地方被引用

设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块的集合。我们设计方法的时候,最

好保持方法的原子性,就是一个方法只完成1个功能,这样利于我们后期的扩展。

优点:

  • 使程序变得更简短而清晰。

  • 有利于程序维护。

  • 可以提高程序开发的效率。

  • 提高了代码的重用性。

方法的定义

Java的方法类似于其它语言的函数,是一段用来完成特定功能的代码片段,一般情况下,定义一个方法

包含以下语法:

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

方法的调用

对象名.方法名(实参列表)

JAVA中只有值传递!

方法的重载

就是说一个类的两个方法拥有相同的名字,但是有不同的参数列表。

递归

递归是一种常见的解决问题的方法,即把问题逐渐简单化。递归的基本思想就是“自己调用自己”,一个使用递归技术的方法将会直接或者间接的调用自己。利用递归可以用简单的程序来解决一些复杂的问题。它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。

递归结构包括两个部分:

  1. 递归头。解答:什么时候不调用自身方法。如果没有头,将陷入死循环。

  1. 递归体。解答:什么时候需要调用自身方法。

数组

数组的定义:

  • 数组是相同类型数据的有序集合.

  • 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。

  • 其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们.

数组的四个基本特点:

  1. 其长度是确定的。数组一旦被创建,它的大小就是不可以改变的。

  1. 其元素必须是相同类型,不允许出现混合类型。

  1. 数组中的元素可以是任何数据类型,包括基本类型和引用类型。

  1. 数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组

本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象

本身是在堆中的。

数组声明创建

  1. 声明数组

    double[] myList; // 首选的方法 
    或double myList[]; // 效果相同,但不是首选方法
  2. 创建数组

    arrayRefVar = new dataType[arraySize];
  1. 内存分析

  1. 三种初始化

    • 静态初始化

    • 动态初始化

    • 数组的默认初始化

      数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实

      例变量同样的方式被隐式初始化。

    ArrayIndexOutOfBoundsException : 数组下标越界异常!

数组使用

  1. For-Each 循环

语法格式

for(type element: array){
   System.out.println(element);
}
public static void main(String[] args) {
   double[] myList = {1.9, 2.9, 3.4, 3.5};
   // 打印所有数组元素
   for (double element: myList) {
       System.out.println(element);
  }
}
  1. 数组做方法入参

数组可以作为参数传递给方法。

public static void printArray(int[] array) {
   for (int i = 0; i < array.length; i++) {
       System.out.print(array[i] + " ");
  }
}
  1. 数组做返回值

    public static int[] reverse(int[] list) { 
       int[] result = new int[list.length];
       for (int i = 0, j = result.length - 1; i < list.length; i++, j--) {
           result[j] = list[i];
      }
       return result;
    }

Arrays类

数组的工具类java.util.Arrays

由于数组对象本身并没有什么方法可以供我们调用,但API中提供了一个工具类Arrays供我们使用,从

而可以对数据对象进行一些基本的操作。

Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用,而"不用"使用对

象来调用(注意:是"不用" 而不是 "不能")

java.util.Arrays 类能方便地操作数组. 使用之前需要导包!

具有以下常用功能:

  • 给数组赋值:通过 fill 方法。

  • 对数组排序:通过 sort 方法,按升序。

  • 比较数组:通过 equals 方法比较数组中元素值是否相等。

  • 查找数组元素:通过 binarySearch 方法能对排序好的数组进行二分查找法操作。

  1. 打印数组

    public static void main(String[] args) {
       int[] a = {1,2};
       System.out.println(a); //[I@1b6d3586
       System.out.println(Arrays.toString(a)); //[1, 2]
    }
  1. 数组排序

    public static void main(String[] args) { 
       int[] a = {1,2,323,23,543,12,59};
       System.out.println(Arrays.toString(a));
       Arrays.sort(a);
       System.out.println(Arrays.toString(a));
    }
  1. 二分法查找

在数组中查找指定元素并返回其下标

注意:使用二分搜索法来搜索指定的数组,以获得指定的值。必须在进行此调用之前对数组进行排序(通

过sort方法等)。如果没有对数组进行排序,则结果是不确定的。如果数组包含多个带有指定值的元素,则无法保证找到的是哪一个。

public static void main(String[] args) { 
   int[] a = {1,2,323,23,543,12,59};
   Arrays.sort(a); //使用二分法查找,必须先对数组进行排序
   System.out.println("该元素的索引:"+Arrays.binarySearch(a, 12));
}
  1. 元素填充

    public static void main(String[] args) {
       int[] a = {1,2,323,23,543,12,59};
       Arrays.sort(a); //使用二分法查找,必须先对数组进行排序
       Arrays.fill(a, 2, 4, 100); //将2到4索引的元素替换为100
       System.out.println(Arrays.toString(a));
    }
  1. 数组转换为list集合

    int[] a = {3,5,1,9,7}; 
    List<int[]> list = Arrays.asList(a);

JavaSE基础语法学习-方法&数组的更多相关文章

  1. JavaSE基础语法学习-异常

    异常 异常指程序运行中出现的不期而至的各种状况,如:文件找不到.网络连接失败.非法参数等. 异常发生在程序运行期间,它影响了正常的程序执行流程. 比如说,你的代码少了一个分号,那么运行出来结果是提示是 ...

  2. JavaSE基础语法学习-流程控制

    流程控制 用户交互Scanner Scanner**对象** 下面是创建 Scanner 对象的基本语法: Scanner s = new Scanner(System.in); 接下来我们演示一个最 ...

  3. JavaSE基础语法学习

    标识符 表示类名的标识符用大写字母开始. 表示方法和变量的标识符用小写字母开始,后面的描述性词以大写开始. 注意 所有的标识符都应该以字母(A-Z 或者 a-z),美元符($).或者下划线(_)开始 ...

  4. Swift基础语法学习总结(转)

    Swift基础语法学习总结 1.基础  1.1) swift还是使用// 和/* */ 来注释,并且/* */允许多行注释. 1.2) swift使用print和println打印,它的传参是一个泛型 ...

  5. Swift基础语法学习总结

    Swift基础语法学习总结Swift高级语法学习总结Swift语法总结补充(一) 1.基础  1.1) swift还是使用// 和/* */ 来注释,并且/* */允许多行注释. 1.2) swift ...

  6. Python 基础语法学习(第一讲)---类的使用

    [写在前面]:其实自学python有一段时间了,但是一直没想起来要写博客来记录自己的学习,今天才感觉要写点什么让自己学的更扎实一点,所以从今天开始更新python自学系列,希望看见文章的大佬们可以指点 ...

  7. Java基础语法学习

    Java基础语法学习 1. 注释 单行注释: //单行注释 多行注释: /*多行注释 多行注释 多行注释 多行注释 */ 2. 关键字与标识符 关键字: Java所有的组成部分都需要名字.类名.变量名 ...

  8. Java基础语法(方法)

    Java基础语法 今日内容介绍 u 方法 第1章 方法 1.1 方法概述 在我们的日常生活中,方法可以理解为要做某件事情,而采取的解决办法. 如:小明同学在路边准备坐车来学校学习.这就面临着一件事情( ...

  9. java 基础语法学习01

    Java基础语法 注释 初次使用idea时相关配置 new project ->Empty project->进入页面 再选择file->project structure-> ...

随机推荐

  1. HashMap 、ConcurrentHashMap知识点全解析

    散列表 在了解hashmap之前,要先知道什么是散列表,因为hashmap就是在散列表结构基础上改造而成的.散列表,也叫哈希表,是根据关键码值(key value)而直接进行访问的数据结构.也就是说, ...

  2. JavaScript求数组中元素的最大值

    要求: 求数组[2,6,1,77,52,25,7]中的最大值. 实现思路: 声明一个保存最大元素的变量 max 默认最大值max定义为数组中的第一个元素arr[0] 遍历这个数组,把里面每个数组元素和 ...

  3. 在Windows7中打开照片,提示“Windows 照片查看器无法显示此图片,因为计算机上的可用内存可能不足。....”

    在Windows7中打开照片,提示"Windows 照片查看器无法显示此图片,因为计算机上的可用内存可能不足.请关闭一些目前没有使用的程序或者释放部分硬盘空间(如果硬盘几乎已满),然后重试. ...

  4. C# 中 System.Range 结构体

    翻译自 John Demetriou 2020年4月6日 的文章 <C# 8 Is Introducing Ranges> 我们之前讨论过的 C# 中的一个特性 System.Index ...

  5. Github个人首页美化指北

    当你尝试去创建一个与你Github用户名相同的仓库时,会发现这是Github为你预留的特殊仓库,用来作为你的Github Profile,这个仓库就相当于一个可以显示在你Github个人页的READM ...

  6. day48 Pyhton 数据库Mysql 05

    一内容回顾 insert insert into 表名 (字段名)  values (值) insert into 表名 values (有多少个字段写多少个值) insert into 表名 val ...

  7. logstash-安装

    1.下载   cd /usr/local/src   wget https://mirrors.huaweicloud.com/logstash/7.8.0/logstash-7.8.0.tar.gz ...

  8. utf-8和utf-8-sig的区别

    前言:在写入csv文件中,出现了乱码的问题. 解决:utf-8 改为utf-8-sig 区别如下: 1."utf-8" 是以字节为编码单元,它的字节顺序在所有系统中都是一样的,没有 ...

  9. js后台提交成功后 关闭当前页 并刷新父窗体

    后台提交成功后 关闭当前页 并刷新父窗体 this.ClientScript.RegisterStartupScript(this.GetType(), "message", &q ...

  10. C# 微信access_token缓存和过期刷新

    摘自:http://blog.csdn.net/hechurui/article/details/22398849 首先建立一个Access_token类 /// <summary> // ...