Day21-20260117

news/2026/1/17 23:29:48/文章来源:https://www.cnblogs.com/jiaguangqing/p/19497392

命令行传参

有时候你希望运行一个程序时候在传递给他消息。这要靠传递命令行参数给main()函数实现。

public class CommandLine{public static void main(String args[](){for(int i=0;i<args.length;i++){System.out.ptintln("args["+i+"]:"+ args[i]);}}
}
进程已结束,退出代码为 0

IDEA终端:

Windows PowerShell
版权所有(C) Microsoft Corporation。保留所有权利。安装最新的 PowerShell,了解新功能和改进!https://aka.ms/PSWindowsPS D:\ruanjian\xuexiruanjian\Typora\Java\idea\idea\JavaSE\JavaSE> javac com.jiaguangqing.method.Demo03
错误: 仅当显式请求注释处理时才接受类名称 'com.jiaguangqing.method.Demo03'
1 个错误
PS D:\ruanjian\xuexiruanjian\Typora\Java\idea\idea\JavaSE\JavaSE> 

命令提示符:需回退至src目录方可执行java

Microsoft Windows [版本 10.0.26100.4351]
(c) Microsoft Corporation。保留所有权利。D:\ruanjian\xuexiruanjian\Typora\Java\idea\idea\JavaSE\JavaSE\HelloWorld\src\com\jiaguangqing\method>javac Demo03.javaD:\ruanjian\xuexiruanjian\Typora\Java\idea\idea\JavaSE\JavaSE\HelloWorld\src\com\jiaguangqing\method>java Demo03
错误: 找不到或无法加载主类 Demo03D:\ruanjian\xuexiruanjian\Typora\Java\idea\idea\JavaSE\JavaSE\HelloWorld\src\com\jiaguangqing\method>cd../D:\ruanjian\xuexiruanjian\Typora\Java\idea\idea\JavaSE\JavaSE\HelloWorld\src\com\jiaguangqing>cd../D:\ruanjian\xuexiruanjian\Typora\Java\idea\idea\JavaSE\JavaSE\HelloWorld\src\com>cd../D:\ruanjian\xuexiruanjian\Typora\Java\idea\idea\JavaSE\JavaSE\HelloWorld\src>java com.jiagunagqing.method.Demo03
错误: 找不到或无法加载主类 com.jiagunagqing.method.Demo03D:\ruanjian\xuexiruanjian\Typora\Java\idea\idea\JavaSE\JavaSE\HelloWorld\src>java com.jiaguangqing.method.Demo03D:\ruanjian\xuexiruanjian\Typora\Java\idea\idea\JavaSE\JavaSE\HelloWorld\src>java com.jiaguangqing.method.Demo03 this is jiaguangqing
args[0]:this
args[1]:is
args[2]:jiaguangqingD:\ruanjian\xuexiruanjian\Typora\Java\idea\idea\JavaSE\JavaSE\HelloWorld\src>

可变参数

JDK1.5开始,Java支持传递同类型的可变参数给一个方法。

在方法生命中,在指定参数类型后加一个省略号(...)。

一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明。

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);
}

不定向参数

package com.jiaguangqing.method;public class Demo04 {public static void main(String[] args) {Demo04 demo04 = new Demo04();demo04.test(1);}public void test(int... i){System.out.println(i[0]);}
}
1进程已结束,退出代码为 0
package com.jiaguangqing.method;public class Demo04 {public static void main(String[] args) {Demo04 demo04 = new Demo04();demo04.test(1,2,3,4,5);//必须是同一个类型//调用可变参数的方法printMax(34,3,3,2,56.5);printMax(new double[]{1,2,3});}public void test(int x,int... i){//必须是方法的最后一个参数System.out.println(i[0]);}public static void printMax(double... numbers){//printMax:打印最大值if(numbers.length == 0){//length:长度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);}
}
2
The max value is56.5
The max value is3.0进程已结束,退出代码为 0

递归

A方法调用B方法,我们很容易理解!

递归就是:A方法调用A方法!就是自己调用自己

利用递归可以用简单的程序来解决一些复杂的问题。它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。

递归结构包括两个部分:

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

以下为错误示范,不要运行,会导致栈溢出

//别运行
package com.jiaguangqing.method;public class Demo05 {public static void main(String[] args) {Demo05 test = new Demo05();test.test();}public void test(){test();}
}
//别运行

StackOverflowError:栈溢出错误

以上为错误示范,不要运行,会导致栈溢出


Main>>>f(5)>>>f(4)>>>f(3)>>>f(2)>>>f(1)>>>

边界条件:边界,最后一个数程序会执行到底

前阶段:当参数!=1时,不停调用自身

返回阶段:n*(n-1) ,当前参数==1时输出结果

栈机制,不停调用方法导致栈溢出

小计算递归,大计算最好用别的方法

作业

写一个计算器,要求实现加减乘除功能,并且能够循环接受新的数据,通过用户交互实现。

思路推荐:

  1. 写4个方法:加减乘除

  2. 利用循环+switch进行用户交互

  3. 传递需要操作的两个数

  4. 输出结果

本文介绍了Java中命令行参数传递和可变参数的使用方法,以及递归的基本概念。主要内容包括:1) 通过main函数接收命令行参数并输出;2) JDK1.5引入的可变参数特性,使用...语法实现不定参数传递;3) 递归的基本原理,包含递归头和递归体两个关键部分。文章还展示了代码示例和常见错误(如栈溢出),最后提供了一个计算器作业的实现思路。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1175105.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机Java毕设实战-基于springboot+vue的宠物医院管理系统的设计与实现【完整源码+LW+部署说明+演示视频,全bao一条龙等】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

Java毕设选题推荐:基于Java+springboot的宠物医院管理系统的设计与实现【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

开源上门预约系统源码,如何实现智能排班与时间冲突校验?

在上门服务类系统中&#xff0c;智能排班和时间冲突校验几乎决定了整个系统能否稳定运行。 一旦排班出错&#xff0c;轻则客户体验下降&#xff0c;重则直接造成投诉和订单损失。 本文将结合开源上门预约系统源码的常见设计&#xff0c;拆解排班与冲突校验的实现思路&#xff0…

开源上门预约系统源码,如何实现智能排班与时间冲突校验?

在上门服务类系统中&#xff0c;智能排班和时间冲突校验几乎决定了整个系统能否稳定运行。 一旦排班出错&#xff0c;轻则客户体验下降&#xff0c;重则直接造成投诉和订单损失。 本文将结合开源上门预约系统源码的常见设计&#xff0c;拆解排班与冲突校验的实现思路&#xff0…

深度测评!继续教育必看的9款AI论文写作软件TOP9推荐

深度测评&#xff01;继续教育必看的9款AI论文写作软件TOP9推荐 2026年继续教育AI论文写作工具测评&#xff1a;为何需要这份榜单&#xff1f; 随着人工智能技术的不断进步&#xff0c;AI论文写作工具在学术领域的应用越来越广泛。对于继续教育群体而言&#xff0c;如何高效完成…

Flutter for OpenHarmony 电子合同签署App实战 - 编辑资料实现

编辑资料功能是电子合同应用的重要组成部分。这个功能提供了完整的用户界面、数据管理和业务逻辑。通过编辑资料功能&#xff0c;用户可以更加高效地完成相关操作。在这篇文章中&#xff0c;我们将详细讲解如何实现一个功能完整、用户友好的编辑资料功能。通过学习本文&#xf…

QT跨平台一次编写,处处编译

在当今软件开发领域&#xff0c;“跨平台”已从一个技术理想转变为实际需求。当我们谈论跨平台框架时&#xff0c;QT无疑是其中最耀眼的名字之一。但QT究竟如何实现“一次编写&#xff0c;到处运行”的承诺&#xff1f;它的跨平台本质是什么&#xff1f; 抽象的艺术&#xff1a…

why Internet is bad?

if youre loser with a really short name, of course lacks a Chinese parent. the Internet will transform your loneliness as Hilter but the most shameless form.

使用WSL(Windows Subsystem for Linux) - 何苦

使用WSL(Windows Subsystem for Linux)适用场景 无需重启切换系统,直接在Windows中运行Linux命令行或图形界面,适合开发和学习。 优势 资源占用低,与Windows文件互通,支持原生Linux工具链。 操作步骤启用WSL功能…

博客与短视频谁更能成就你的个人品牌?

人物&#xff1a; 老派博客&#xff08;博哥&#xff09;——文字爱好者&#xff0c;崇尚深度与持久 新锐短视频&#xff08;抖妹&#xff09;——视觉达人&#xff0c;追求传播与互动 场景&#xff1a; 虚拟的“品牌咖啡馆”内&#xff0c;两人隔着桌子面对面坐着。空气中弥漫…

禁止windows11自动更新不反弹,win11永久关闭自动更新,win11怎么关闭系统自动更新

有信无证者&#xff0c;虽不落恶果&#xff0c;却住因住果&#xff0c;住念住心&#xff0c;如是生灭。不得涅槃。 【实测有效方法】 禁止windows11自动更新不反弹, win11永久关闭自动更新&#xff0c; win11怎么关闭系统自动更新 提供6种方法&#xff0c;需要直接简单方便…

2026 年机场广告投放公司综合实力排行榜单及选择建议指南:2026年机场广告投放公司如何选?哪家好?哪家靠谱?选哪家? - Top品牌推荐

一、机场广告投放市场概述 机场广告作为高端户外媒体的重要组成部分,凭借其覆盖高净值人群、强制性观看、品牌形象提升等优势,成为众多企业品牌推广的重要选择。机场媒体接触的旅客群体具有高收入、高学历、高消费能…

6种方法教你永久关闭win11系统自动更新【保姆级教程】,win11关闭自动更新的详细方法步骤

Win11系统自动更新怎么关闭&#xff1f;最近有不少小伙伴们想要彻底对Win11系统的自动更新进行关闭&#xff0c;但不知道应该怎么去操作。那我们在碰到这个问题要怎么办呢&#xff1f;还不清楚的小伙伴们可以不用担心&#xff0c;下边介绍几种常用的禁止win11自动更新的详细方法…

modelscope 上PaddleOCR-VL 部署(2026年1月17日亲测可用)

PaddleOCR-VL 部署创建时间: 2026-01-16 环境: ModelScope PAI-DSW 免费实例环境配置组件版本系统Ubuntu 22.04CUDA12.4.0Python3.11.11PyTorch2.9.1cuDNN1.33.0CPU8核内存32GB显存24GB剩余额度13小时30分钟 虚拟环境 wget http://qiniu.dywlkj.com/uv_for_linux_x86/install.s…

QtOpenGL多线程渲染方案深度解析

QtOpenGL多线程渲染方案深度解析1. 引言&#xff1a;为什么需要多线程渲染&#xff1f;2. QtOpenGL多线程架构设计2.1 基本线程模型2.2 关键组件3. 实现细节与性能优化3.1 线程间同步机制3.2 性能关键点4. 实战案例&#xff1a;3D场景编辑器4.1 架构设计4.2 性能对比5. 常见问题…

15.ACS725 电流检测

分享一颗电流传感器IC芯片&#xff0c;ACS725芯片&#xff0c;这颗芯片是汽车级的&#xff0c;工作温度在-40到150度&#xff0c;很多电流采集的场合可以使用。ACS725提供了一种小封装&#xff0c;低成本的表贴封装&#xff0c;而且目前在国内也有可以替换的一些IC出现&#xf…

千万会员,亿级交易:当CRM系统不堪重负,头部药企如何通过数据库升级实现“实时精准营销”?

千万会员,亿级交易:当CRM系统不堪重负,头部药企如何通过数据库升级实现“实时精准营销”?作者:张红霞,青岛雨诺网络信息股份有限公司新零售产品部总监 综述 当前,医药零售企业已不再满足于“卖药”,而是致力于…

YOLO26 改进 - 注意力机制 | IIA信息整合注意力(Information Integration Attention ):精准保留空间位置信息,平衡精度与计算成本 | TGRS2025

前言 本文提出信息整合注意力&#xff08;IIA&#xff09;机制&#xff0c;并将其集成到YOLO26中用于遥感图像语义分割。传统CNN难捕捉全局信息&#xff0c;Transformer计算复杂&#xff0c;现有基于Mamba的方法未充分考虑局部信息。IIA利用图像特征空间位置不变性&#xff0c…

Java计算机毕设之基于springboot的城市化自修室预约签到管理系统的设计与实现(完整前后端代码+说明文档+LW,调试定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

0.传感器及常用模块总结

一、基础传感器&#xff08;单一物理量检测&#xff09;磁敏传感器核心型号&#xff1a;干簧管、霍尔传感器&#xff08;49E、A3144&#xff09;、霍尔磁力模块应用&#xff1a;接近检测、转速计数、磁性开关光相关传感器光敏传感器&#xff1a;光敏电阻&#xff08;LDR&#x…