拔丝芋头的Java学习日记--Day6
< 今日关键词 >
· 方法的重载
· 命令行传递参数
· 可变参数
· 递归
· 数组
· 内存分析
··
··
··
··
—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相关推荐
- Java学习日记1——基础认知
Java学习日记1--基础认知 学习Java阶段,如果发现不正确的描述,还请指正! 首先附上Java相关下载链接和配置教程链接 Java相关软件工具下载地址:官方下载 Java环境配置(win10配置 ...
- Java学习日记-Day01
Java学习日记-Day01 Java语言概述 比特(byte)与字节 内存 Java基础知识图解 人机交互方式 常用的DOS命令 常用快捷键 计算机编程语言介绍 第一代语言 第二代语言 第三代语言 ...
- 尚学堂Java学习日记Day3
尚学堂Java学习日记Day3 第三天老师先回顾了昨天的内容我从回顾中掌握了新的知识 如下图所示 int与double计算,输出类型为double的不同结果 会把int转成double类型的,这是隐式 ...
- Java学习日记:UI篇(6)--谢尔宾斯基地毯图
Java学习日记:UI篇(6)–谢尔宾斯基地毯图 引言:谢尔宾斯基地毯是数学家谢尔宾斯基提出的一个分形图形,谢尔宾斯基地毯和谢尔宾斯基三角形基本类似,不同之处在于谢尔宾斯基地毯采用的是正方形进行分形构 ...
- 【日记】Java学习日记(第63天)持续无聊更新
前言 Youtube上EJ Media(up主)的视频我依次学完了HTML.CSS.Javascript.Jquery.觉得他教得挺好的(短小精悍),就继续学他教的JAVA.感觉EJ教的都是些语法什么 ...
- 尚学堂Java学习日记Day1
尚学堂学习日记Day1 #今天开始写学习博客记录自己学习java的点滴成长历程,希望能成为学弟学妹们的前车之鉴. 先大概的自我介绍下,我原本从事的是网络工程师,学习的是Cisco(思科)并拥有CCNP ...
- Java学习日记8:文件上传工具类的实现和服务器给客户端发送图片
文件上传的工具类: 每次文件上传要写很多东西,把这些封装成一个工具类,以后用起来就会方便很多. 先创建一个类存储上传文件的信息: package com.upload; /*** 每上传成功一个文件的 ...
- 2019-06-03 Java学习日记 day24 多线程
多线程 线程是程序执行的一台路径,一个进程中可以包含多条线程 多线程并发执行可以提高程序的效率,可以同时完成多项工作 多线程的应用背景 红蜘蛛同时共享屏幕给多个电脑 迅雷开启多条线程一起下载 QQ同时 ...
- Java学习日记----反射
------- android培训.java培训.期待与您交流! ---------- 1 Class类 1.1 反射不是Java1.5的新特性,而是从1.2就有的特性,在以后学习到框架都要用到反 ...
- 2019-05-21 Java学习日记之String类型Demo
String类的构造方法: public String():空构造 public String(byte[ ] bytes):把字节数组转成字符串 public String(byte[ ] byte ...
最新文章
- php arraymap()函数
- 盘神 Pandownload 复活
- python pip国内源_【Python】设置pip源为国内源及简单操作
- USEFORM,USERES详解
- 设计模式- 策略模式
- pandas学习笔记三之赋值操作
- 测试kafka的连通性,自导自演生产者与消费者
- Chrome之控制台使用【转载】
- 建筑系学生怎么系统地学 Photoshop、CAD 之类软件?
- 安防蓝海带来亿万商机 汉王人脸通掀起产业风暴
- C/C++ 模拟键盘操作(一)
- 刘宇凡:关于圈子的只言片语
- qt显示温度℃度数°或中文等特殊符号
- 经典SQL语句大全(绝对的经典)----特别好
- CAD文件版本如何转换?分享两种版本转换方法
- 基于rt-thread的udp客户端
- 【iOS】裁剪出环形图片并旋转制作碟片效果
- 2019年的反弹牛市总结
- 信息技术服务标准(ITSS)
- vc2012\vc\include\stdlib.h(360): error C2381: “exit”: 重定义;__declspec(noreturn) 不同
热门文章
- AI 生成歌曲《醒来》(可试听)
- vscode管理员身份运行powershell
- Linux文件裸写,Linux下使用裸設備作為數據文件
- Excel如何输入负数
- 笔记本 ubuntu 亮度调节 命令行
- 用aspose转换文档成PDF导致中文变成方框
- aps生产计划排产的计划类型
- CVPR'22 | 基于可形变关键点模型的图像驱动技术
- Chrome主页被强制修改为百度解决办法
- 深度学习论文: Avoiding Overfitting: A Survey on Regularization Methods for Convolutional Neural Networks