关于前面内容的查疑补漏
前面我们讲了那么多的内容,难免有遗漏之处,这节我们就遗漏之处做一个补充,一起来看看吧!
String[ ] args
它主要用在当我们执行Java程序(Java 字节码文件)的时候,可以指定一些参数。
class Test01{public static void main(String[] args){System.out.println(args.length);for(int i=0;i<args.length;i++){System.out.println(args[i]);}}
}
上面的代码,在主函数中我们直接输出了args的长度,然后对args进行了遍历,输出它当中每一个元素。正如上面所说,String[ ] args它主要用在当我们执行Java程序(java 字节码文件)的时候,可以指定一些参数。所以我们在终端里面首先编译,然后在运行的时候传入数字1 2 3,最后发现打印出了传入参数的长度、内容。这就是它的用法。
另外说一下,这里面args的名称是可以改变的,因为它只是一个参数名。
可变长参数
当我们在给一个函数传参的时候,如果我们不确定具体要传参数的个数的话,这个时候就可以使用可变长参数(这些参数必须是相同的类型)。其实它本质上就是一个数组。
class Test02{public static void main(String[] a){multiArguments(1);multiArguments(1,2,3);multiArguments(1,2,3,4,5,6);}//传入的是不确定个数的int型参数public static void multiArguments(int ... nums){//System.out.println(nums.length);for(int i = 0;i < nums.length;i++){System.out.print(nums[i] + " ");}System.out.println();}
}
在主函数当中调用了三次multiArgiments方法,第一次传入了一个参数1,第二次传入了三个参数1、2、3,第三次传入了六个参数1、2、3、4、5、6,所以最后打印出来的分别是1/123/123456。这就是可变长参数的用法,
PS:1.一个参数列表当中只能有一个可变长参数,如果出现多个的话,首先编译就会出错;
2.如果可变长参数和固定参数同时存在的话,那么可变长参数必须在参数列表的最后面。
foreach循环
for(循环数据类型 循环变量名:可迭代对象){
循环体;
}
class Test03{public static void main(String[] args){multiArguments(1);multiArguments(1,2,3);multiArguments(1,2,3,4,5,6);}//传入的是不确定个数的int型参数public static void multiArguments(int ... nums){/*for(循环数据类型 循环变量名 : 可迭代对象 ){循环体;}*/for(int num:nums){System.out.print(num);}System.out.println();}/*这里的num其实表示的是nums[i] i∈[0~nums.length)只不过在foreach中屏蔽掉了i的具体行为。此外,数组是可迭代对象当中的一种,并且数组可以通过角标访问所以目前我们可以认为num等效于nums[i]。但是并不代表所有的可迭代对象都有角标支持,有些可迭代对象的元素访问顺序是比较复杂的,所以为了避免这些复杂就有了foreach循环。foreach有什么样的一个缺点呢?它仅仅只能访问元素,不能对元素进行修改。num仅仅是nums[i]的一个备份,改num不代表改nums[i]。所以说我们如果仅仅访问元素的话,用foreach循环会更简单。*/
}
如上图运行结果所示,我们使用foreach循环还是可以打印出来结果,它其实是一个简化过后的for循环。
Arrays类
Arrays类是关于数组的工具类,而我们之前学过的Math、Scanner、String,这些都不是工具类。来看一些实例。
import java.util.Arrays;
class Test04{public static void main(String[] args){int[] arr = {1,3,5,7,9,2,4,6,8};//1.static void sort(int[] a)这个方法是对指定的数组按数字升序进行排序。Arrays.sort(arr);/*2.static int binarySearch(int[] a, int key)这个方法是使用二分搜索法来搜索指定的int型数组,以获得指定的值。*/System.out.println(Arrays.binarySearch(arr,8));//7/*3.static int[] copyOf(int[] original, int newLength) 这个方法是复制指定的数组,截取或用0填充(如有必要),以使副本具有指定的长度。*/arr = Arrays.copyOf(arr,arr.length+1);//4.static String toString(int[] a)这个方法是返回指定数组内容的字符串表示形式。System.out.println(Arrays.toString(arr));//[1, 2, 3, 4, 5, 6, 7, 8, 9, 0]}
}
上面我们介绍了4种方法,具体功能都已写在代码中。
多返回值处理
Java的函数仅仅只能返回单一的值,如果需要一次性返回多个值,我们就需要将多个值封装在一个数组当中即可,后面也会学到集合/映射。
import java.util.Arrays;
class Test05{public static void main(String[] args){//传入一个坐标点,将坐标点进行移动int x = 0;int y = 0;int[] res = move(x,y,10,10);//x=10,y=10x = res[0];y = res[1];System.out.println("x=" + x);//x=10System.out.println("y=" + y);//y=10}//如果是C/C++语言的话,只需要传x和y的指针即可.//void move(int *x,int *y){ *x+=deltx; *y+=delty;}public static int[] move(int x,int y,int deltx,int delty){x+=deltx;y+=delty;return new int[]{x,y};}
}
好了,这次的额外补充知识我们就说到这里,拜拜啦!
关于前面内容的查疑补漏相关推荐
- 查缺补漏:集和与非平凡属性
查缺补漏:集和与非平凡属性 前面的习题和知识点补充 Conjunctive normal form(CNF)是布尔逻辑的一种方法,它将公式表示为带有AND或or的子句的连词.由连词or AND连接的每 ...
- 赫斌老师数据结构视频查缺补漏笔记
赫斌老师数据结构视频查缺补漏笔记 观看学习赫斌老师数据结构的视频,记录下自己之前学习这块内容时似懂非懂的知识,仅针对自己查缺补漏使用 视频链接:<郝斌老师数据结构自学视频> 1.指针的大小 ...
- 「查缺补漏」高频考点浏览器面试题
前言 想要成为一名合格的前端工程师,掌握相关浏览器的工作原理是必备的,这样子才会有一个完整知识体系,要是「能参透浏览器的工作原理,你就能解决80%的前端难题」. 这篇梳理的话,更多的是对浏览器工作原理 ...
- 2020年最新最全的Java面试经历整理(一次性查缺补漏个够)
前言 现在已经是2020年了,相信很多人都在准备面试,,如何拿到心仪的 Offer,进入梦寐以求的大厂,实现自己的职业理想,达到程序员的小康水平. 这篇文章主要介绍了刘哥一月份的几次面经,(一次性查缺 ...
- 查缺补漏系统学习 EF Core 6 - 原始 SQL 查询
推荐关注「码侠江湖」加星标,时刻不忘江湖事 这是 EF Core 系列的第五篇文章,上一篇文章盘点了 EF Core 中的几种数据查询方式. 但是有有时候,我们可能无法用标准的 LINQ 方法完成查询 ...
- 随机系统辨识数学知识大全——用于查缺补漏
随机系统辨识数学知识--用于查缺补漏 控制系统 数学 !!!!!!!!!!!!!!!!!!!!!!!! !!!!!!转载请注明作者,及本文链接!!!!! !!!!!!!!!!!!!!!!!!!!!!! ...
- JAVA核心,200例,查缺补漏
适用于想要查缺补漏的人:本已经掌握的技术,但是不知道如何表达的人:不断完善技自己,顺带梳理下答案. 主要包括以下模块:Java基础.容器.多线程.反射.对象拷贝.Java Web模块,异常.网络.设计 ...
- 查缺补漏系统学习 EF Core 6 - 批量操作
推荐关注「码侠江湖」加星标,时刻不忘江湖事 这是 EF Core 系列的第七篇文章,上一篇文章讲述了 EF Core 中的实体数据修改. 这篇文章讲一讲 EF Core 如何进行批量操作. 在众多的 ...
- 查缺补漏系统学习 EF Core 6 - 数据查询
这是 EF Core 系列的第四篇文章,上一篇文章讲述了 EF Core 中的实体迁移与数据播种. 这篇文章盘点一下 EF Core 的几种数据查询方式,内容较多分上下两篇. 点击上方或后方蓝字,阅读 ...
最新文章
- vue + axios---封装一个http请求
- 对互联网用户分类的思考
- 老李分享:https协议
- html 编辑器 es6,小技巧:一行代码让浏览器瞬间变成临时编辑器
- Linux 命令之 cut -- 分割字符串,显示或删除指定字段的内容,合并文件内容
- java 文件解析异常_java中异常的解析
- android自动化持续集成,基于持续集成的Android自动化测试.pdf
- 数据库语言 数据查询_使用这种简单的查询语言开始查询数据
- 什么是MARC数据?
- [Day30] DBUtils和连接池
- OpenStack 企业私有云的若干需求(1):Nova 虚机支持 GPU
- Mac 技巧 | CAD 汉化后无法新建模板怎么办?
- hdu3336 Count the string
- 工程图学与计算机绘图考查,工程图学与计算机绘图
- 2017-2018-1 20155314 20155323 实验二 固件程序设计
- CSS度量单位rem、em、vw、vh详解
- 安装ubuntu黑屏,修复分区表
- node处理图片和PDF文件方法
- 微信小说,微信游戏系统域名被屏蔽是怎么回事
- 安卓手机如何投屏到电视上_孩子在家上课,如何把手机投屏到电视上