方法

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. P2590 树的统计

    一道树剖的模板题 首先,由于本人比较懒,就把单点修改写成了区间修改,其实也没有有多大区别(关键是我不会写单点修改QAQ) 不得不说,树剖的码量比较大,调了一上午才勉强调完. 这道题要求我们支持 单点修 ...

  2. 【学习笔记】Polya定理

    笔者经多番周折终于看懂了\(\text{Burnside}\)定理和\(\text{Polya}\)定理,特来写一篇学习笔记来记录一下. 群定义 定义:群\((G,·)\)是一个集合与一个运算·所定义 ...

  3. 2. 在TCGA中找到并下载意向数据

    听说过别人用生信分析"空手套白狼"的故事吧想做吗好想学哦~ 或多或少都知道GEO和TCGA这些公共数据库吧!那么你知道怎么在数据库上找到意向数据,并且成功下载呢?这第一步要难倒一大 ...

  4. 推荐几款好用的python编辑器

    1.自带的IDLE:  (1)交互式代码编辑.在>>>提示符后输入python代码,按Enter键就可以显示代码命令执行结果. (2)脚本式代码编辑.选择File菜单里的newFil ...

  5. vs code C语言环境搭建

    最近重温C语言,因为很多练习只是小程序,并不需要Clion和Codeblocks这样工程导向的编译软件,所以下载了vs code,并试图搜索相应的环境,在此过程中发现,网上许多vs code 的c/c ...

  6. Flask实现群聊

    后端 from geventwebsocket.handler import WebSocketHandler from gevent.pywsgi import WSGIServer from ge ...

  7. 比特币PoW

    比特币区块头结构 字段 大小(Byte) 说明 nVersion 4 区块版本号,表示本区块遵守的验证规则 hashPrevBlock 32 前一区块的哈希值,使用SHA256(SHA256(父区块头 ...

  8. 【原创】有利于提高xenomai 实时性的一些配置建议

    版权声明:本文为本文为博主原创文章,转载请注明出处.如有错误,欢迎指正. @ 目录 一.影响因素 1.硬件 2.BISO(X86平台) 3.软件 4. 缓存使用策略与GPU 二.优化措施 1. BIO ...

  9. centos7安装redis6

    wget http://download.redis.io/releases/redis-6.0.6.tar.gz?_ga=2.104030464.1049731693.1595900008-1330 ...

  10. centos8平台redis5的主从同步搭建及sentinel哨兵配置

    一,规划三台redis的ip:一主二从 redismaster01: 172.18.1.1 主 redisslave01: 172.18.1.2 从 redisslave02: 172.18.1.3 ...