< 今日关键词 >

· 方法的重载
· 命令行传递参数
· 可变参数
· 递归
· 数组
· 内存分析

··
··
··
··

—01方法的重载

1、重载就是在一个类中,有相同的函数名称,但是形参不同的函数。

2、方法的重载的规则:

  • 方法名称必须相同
  • 参数列表必须不同(个数不同、类型不同或参数排列顺序不同等。)
  • 方法的返回类型可以相同也可以不相同
  • 仅仅返回类型不同不足以成为方法的重载

3、实现理论:

  • 方法名称相同时,编译器会根据调用方法的参数的个数、参数类型等逐个去匹配,以选择对应的方法,如果匹配失败,则编译器报错。

***名字相同的方法可以有无限多个,但是参数列表必须不同

·
·
·

—02可变参数

1、JDK1.5开始,Java支持传递同类型的可变参数给一个方法
2、在方法声明中,在指定参数类型后加一个省略号(…)
3、一个方法只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明。

  • 例:
public class Demo02 {public static void main(String[] args) {//调用可变参数的方法printMax(...numbers:1,2,3,4,5,5);printMax(new double[]{1,2,3});}public static void printMax(double...numbers) {if(numbers.length == 0) {System.out.println("No argument passed");return;}double result = numbers[0];//排序for (int i = 1; i < numbers.length; i++) {if(numbers[i] > result ) {result = numbers[i];}}System.out.println("The max value is"+ result);}
}

·
·
·

—03递归

1、递归结构包括两个部分:

  • 递归头:什么时候不调用自身方法。如果没有头,将陷入死循环,会爆栈。
  • 递归体:什么时候需要调用自身方法

例:5的阶乘

public class Demo02 {public static void main(String[] args) {System.out.println(f(5));}public static int f(int n) {if(n==1)return 1;else return n*f(n-1);}
}

·
·
·

—04数组

1、数组声明创建

  • 首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的语法:

dataType[ ] arrayRefVar; //首选的方法
或者
dataType arrayRefVar[ ]; //效果相同,但不是首选的方法

  • Java语言使用new操作符来创建数组,语法如下:

dataType[ ] arrayRefVar = new dataType[ arraySize ] ;

  • 数组的元素是通过索引访问的,数组索引从0开始
  • 获取数组长度:
                  arrays . length
  • 例子:
public class Demo02 {public static void main(String[] args) {int[] nums;            // 1.声明一个数组nums = new int [10];       //2.创建一个数组(分配空间int[] nums = new int[10];    //可以声明和创建写在一起}
}

·
·
·

—05内存分析
  • Java内存:堆、栈、方法区
  • 堆:

堆:

  • 存放new的对象和数组
  • 可以被所有的线程共享,不会存放别的对象引用
  • 栈:
  • 栈:
  • 存放基本变量类型(会包括这个基本类型的具体数值)
  • 引用对象的变量(会存放这个引用在堆里的具体地址)
  • 方法区:
  • 可以被所有的线程所共享
  • 包含了所有的class和static变量

·
·
·

----->家庭作业:写一个计算器,要求实现加减乘除功能,并且能够循环接收新的数据,通过用户交互实现。

***附:文中所有PPT图片均出自于b站 【狂神说Java】Java零基础学习视频通俗易懂 ***

拔丝芋头的Java学习日记--Day6相关推荐

  1. Java学习日记1——基础认知

    Java学习日记1--基础认知 学习Java阶段,如果发现不正确的描述,还请指正! 首先附上Java相关下载链接和配置教程链接 Java相关软件工具下载地址:官方下载 Java环境配置(win10配置 ...

  2. Java学习日记-Day01

    Java学习日记-Day01 Java语言概述 比特(byte)与字节 内存 Java基础知识图解 人机交互方式 常用的DOS命令 常用快捷键 计算机编程语言介绍 第一代语言 第二代语言 第三代语言 ...

  3. 尚学堂Java学习日记Day3

    尚学堂Java学习日记Day3 第三天老师先回顾了昨天的内容我从回顾中掌握了新的知识 如下图所示 int与double计算,输出类型为double的不同结果 会把int转成double类型的,这是隐式 ...

  4. Java学习日记:UI篇(6)--谢尔宾斯基地毯图

    Java学习日记:UI篇(6)–谢尔宾斯基地毯图 引言:谢尔宾斯基地毯是数学家谢尔宾斯基提出的一个分形图形,谢尔宾斯基地毯和谢尔宾斯基三角形基本类似,不同之处在于谢尔宾斯基地毯采用的是正方形进行分形构 ...

  5. 【日记】Java学习日记(第63天)持续无聊更新

    前言 Youtube上EJ Media(up主)的视频我依次学完了HTML.CSS.Javascript.Jquery.觉得他教得挺好的(短小精悍),就继续学他教的JAVA.感觉EJ教的都是些语法什么 ...

  6. 尚学堂Java学习日记Day1

    尚学堂学习日记Day1 #今天开始写学习博客记录自己学习java的点滴成长历程,希望能成为学弟学妹们的前车之鉴. 先大概的自我介绍下,我原本从事的是网络工程师,学习的是Cisco(思科)并拥有CCNP ...

  7. Java学习日记8:文件上传工具类的实现和服务器给客户端发送图片

    文件上传的工具类: 每次文件上传要写很多东西,把这些封装成一个工具类,以后用起来就会方便很多. 先创建一个类存储上传文件的信息: package com.upload; /*** 每上传成功一个文件的 ...

  8. 2019-06-03 Java学习日记 day24 多线程

    多线程 线程是程序执行的一台路径,一个进程中可以包含多条线程 多线程并发执行可以提高程序的效率,可以同时完成多项工作 多线程的应用背景 红蜘蛛同时共享屏幕给多个电脑 迅雷开启多条线程一起下载 QQ同时 ...

  9. Java学习日记----反射

    ------- android培训.java培训.期待与您交流! ---------- 1 Class类   1.1 反射不是Java1.5的新特性,而是从1.2就有的特性,在以后学习到框架都要用到反 ...

  10. 2019-05-21 Java学习日记之String类型Demo

    String类的构造方法: public String():空构造 public String(byte[ ] bytes):把字节数组转成字符串 public String(byte[ ] byte ...

最新文章

  1. php arraymap()函数
  2. 盘神 Pandownload 复活
  3. python pip国内源_【Python】设置pip源为国内源及简单操作
  4. USEFORM,USERES详解
  5. 设计模式- 策略模式
  6. pandas学习笔记三之赋值操作
  7. 测试kafka的连通性,自导自演生产者与消费者
  8. Chrome之控制台使用【转载】
  9. 建筑系学生怎么系统地学 Photoshop、CAD 之类软件?
  10. 安防蓝海带来亿万商机 汉王人脸通掀起产业风暴
  11. C/C++ 模拟键盘操作(一)
  12. 刘宇凡:关于圈子的只言片语
  13. qt显示温度℃度数°或中文等特殊符号
  14. 经典SQL语句大全(绝对的经典)----特别好
  15. CAD文件版本如何转换?分享两种版本转换方法
  16. 基于rt-thread的udp客户端
  17. 【iOS】裁剪出环形图片并旋转制作碟片效果
  18. 2019年的反弹牛市总结
  19. 信息技术服务标准(ITSS)
  20. vc2012\vc\include\stdlib.h(360): error C2381: “exit”: 重定义;__declspec(noreturn) 不同

热门文章

  1. AI 生成歌曲《醒来》(可试听)
  2. vscode管理员身份运行powershell
  3. Linux文件裸写,Linux下使用裸設備作為數據文件
  4. Excel如何输入负数
  5. 笔记本 ubuntu 亮度调节 命令行
  6. 用aspose转换文档成PDF导致中文变成方框
  7. aps生产计划排产的计划类型
  8. CVPR'22 | 基于可形变关键点模型的图像驱动技术
  9. Chrome主页被强制修改为百度解决办法
  10. 深度学习论文: Avoiding Overfitting: A Survey on Regularization Methods for Convolutional Neural Networks