Java连载153-可变参数、多线程状态图

一、可变参数

  • 可变参数顾名思义就是,编写一个函数的时候,可以传入一个或者多个参数
  • 实际原理:根据传入的参数类型以及个数,创建一个数组,用于存储这些数据,在函数中调用的时候,也可以使用数组的形式调用,下面我们举个例子
<span class="hljs-keyword">package</span>&#xA0;com.newJava;<br><br><span class="hljs-keyword">public</span>&#xA0;<span class="hljs-class"><span class="hljs-keyword">class</span>&#xA0;<span class="hljs-title">D152_VariableParameters</span>&#xA0;</span>{<br>&#xA0;<span class="hljs-function"><span class="hljs-keyword">public</span>&#xA0;<span class="hljs-keyword">static</span>&#xA0;<span class="hljs-keyword">void</span>&#xA0;<span class="hljs-title">main</span><span class="hljs-params">(String[]&#xA0;args)</span>&#xA0;</span>{<br>&#xA0;&#xA0;System.out.println(<span class="hljs-string">"&#x6253;&#x5370;&#x51FA;&#x4E86;"</span>);<br>&#xA0;&#xA0;printString();<br>&#xA0;&#xA0;printString(<span class="hljs-string">"jsidofs"</span>,<span class="hljs-string">"&#xA0;josdfjs"</span>);<br>&#xA0;}<br>&#xA0;<br>&#xA0;<span class="hljs-function"><span class="hljs-keyword">public</span>&#xA0;<span class="hljs-keyword">static</span>&#xA0;<span class="hljs-keyword">void</span>&#xA0;<span class="hljs-title">printString</span><span class="hljs-params">(String...&#xA0;strings)</span>&#xA0;</span>{<br>&#xA0;&#xA0;<span class="hljs-keyword">if</span>&#xA0;(strings&#xA0;!=&#xA0;<span class="hljs-keyword">null</span>)&#xA0;{<br>&#xA0;&#xA0;&#xA0;<span class="hljs-keyword">int</span>&#xA0;size&#xA0;=&#xA0;strings.length;<br>&#xA0;&#xA0;&#xA0;<span class="hljs-keyword">for</span>&#xA0;(<span class="hljs-keyword">int</span>&#xA0;i=<span class="hljs-number">0</span>;&#xA0;i<size; i++) {<br>&#xA0;&#xA0;&#xA0;&#xA0;System.out.println(strings[i]);<br>&#xA0;&#xA0;&#xA0;}<br>&#xA0;&#xA0;}&#xA0;<span class="hljs-keyword">else</span>&#xA0;{<br>&#xA0;&#xA0;&#xA0;System.out.println(<span class="hljs-string">"&#x7A7A;&#x53C2;&#x6570;&#x4E5F;&#x662F;&#x53EF;&#x4EE5;&#x7684;"</span>);<br>&#xA0;&#xA0;}<br>&#xA0;&#xA0;System.out.println(<span class="hljs-string">"&#x7A7A;&#x6570;&#x7EC4;"</span>);<br>&#xA0;}<br>}<br><br></size; i++) {

Java连载153-可变参数、多线程状态图
  • 从上面的实验上来看,即使我们没有传入任何数据,函数依然会被调用,但是传入的是一个空的数组,但不是一个null
  • 一些规则:尽量不使用这种写法,如果要使用的话,需要把可变参数放到参数列表的最后面,不能放到中间或者前面。在进行重载函数的编写完之后,调用的时候要明确传入参数的类型,不要引起混淆,比如
<span class="hljs-keyword">package</span>&#xA0;com.newJava;<br><br><span class="hljs-keyword">public</span>&#xA0;<span class="hljs-class"><span class="hljs-keyword">class</span>&#xA0;<span class="hljs-title">D152_2_ConfuseMethodAndInvoke</span>&#xA0;</span>{<br>&#xA0;<span class="hljs-function"><span class="hljs-keyword">public</span>&#xA0;<span class="hljs-keyword">static</span>&#xA0;<span class="hljs-keyword">void</span>&#xA0;<span class="hljs-title">print</span><span class="hljs-params">(String...&#xA0;a)</span>&#xA0;</span>{<br>&#xA0;&#xA0;System.out.println(a[<span class="hljs-number">0</span>]);<br>&#xA0;}<br>&#xA0;<br>&#xA0;<span class="hljs-function"><span class="hljs-keyword">public</span>&#xA0;<span class="hljs-keyword">static</span>&#xA0;<span class="hljs-keyword">void</span>&#xA0;<span class="hljs-title">print</span><span class="hljs-params">(<span class="hljs-keyword">int</span>...&#xA0;b)</span>&#xA0;</span>{<br>&#xA0;&#xA0;System.out.println(b[<span class="hljs-number">1</span>]);<br>&#xA0;}<br>&#xA0;<br>&#xA0;<span class="hljs-function"><span class="hljs-keyword">public</span>&#xA0;<span class="hljs-keyword">static</span>&#xA0;<span class="hljs-keyword">void</span>&#xA0;<span class="hljs-title">main</span><span class="hljs-params">(String[]&#xA0;args)</span>&#xA0;</span>{<br>&#xA0;&#xA0;<span class="hljs-keyword">try</span>&#xA0;{<br>&#xA0;&#xA0;&#xA0;print(<span class="hljs-keyword">null</span>);<br>&#xA0;&#xA0;}&#xA0;<span class="hljs-keyword">catch</span>&#xA0;(Exception&#xA0;e)&#xA0;{<br>&#xA0;&#xA0;&#xA0;e.printStackTrace();<br>&#xA0;&#xA0;}&#xA0;<span class="hljs-keyword">finally</span>&#xA0;{<br>&#xA0;&#xA0;&#xA0;print(<span class="hljs-string">"jdisf"</span>,&#xA0;<span class="hljs-string">"jdisfod"</span>);<br>&#xA0;&#xA0;}<br>&#xA0;}<br>}
  • 这样重载函数会引起编译器的混乱,不知道该如何重载函数。

二、多线程状态图

Java连载153-可变参数、多线程状态图

三、源码:

Original: https://www.cnblogs.com/ruigege0000/p/15713534.html
Author: 心悦君兮君不知-睿
Title: Java连载153-可变参数、多线程状态图

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/607930/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • fastposter v2.8.4 发布 电商海报生成器

    🔥🔥🔥 fastposter海报生成器,电商海报编辑器,电商海报设计器,fast快速生成海报 海报制作 海报开发。贰维🐴海报,图片海报,分享海报贰维🐴码推广海报,支持Java Py…

    Java 2023年6月5日
    093
  • 如何保证消息的可靠性的投递

    如何保证消息的可靠性的投递 在本项目中,添加员工会发送入职邮件,利用RabbitMQ的队列发送入职邮件。这部分只是实现发送邮件的功能,RabbitMQ它有它的优点就是异步、解耦、流…

    Java 2023年6月5日
    0111
  • leetcode 114. Flatten Binary Tree to Linked List 二叉树展开为链表(简单)

    一、题目大意 给你二叉树的根结点 root ,请你将它展开为一个单链表: 展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始…

    Java 2023年6月14日
    0135
  • Map集合

    一、什么是Map: 首先map是一个集合,一种按照键存储元素的容器。在map中键可以是任意类型的对象,map中不能有重复的键,每一个键都有一个对应的值。 二、Map集合的特点: 1…

    Java 2023年6月9日
    0105
  • SpringBoot 集成CAS简单学习

    CAS服务搭建 可以直接放在Tomcat中启动,这里可以为了方便直接用IDEA搭建启动。如果直接拉取示例代码以下内容都已修改完毕。拉取代码直接使用。 # 取消票根对应的Cookie…

    Java 2023年6月9日
    0108
  • 10.Feign简介

    Feign介绍* Feign是一个非常好用的HTTP客户端* Feign很大程度上简化了HTTP调用方式* Feign很好的弥补了SpringCloud的HTTP调用缺陷(修改了调…

    Java 2023年6月8日
    078
  • Java核心技术-反射

    Day2 利用反射分析类的能力 在Java.lang.reflect包中有三个类Filed Method Constructor,分别用于描述类的字段,方法和构造器。 这三个类有一…

    Java 2023年6月5日
    0124
  • Java: native

    解释 native主要用于 方法上 1、一个native方法就是一个Java调用非Java代码的接口。一个native方法是指该方法的实现由非Java语言实现,比如用C或C++实现…

    Java 2023年6月7日
    089
  • JBoss AS7(Application Server 7)的Standalone模式和Domain模式

    JBoss AS7(Application Server 7)支持两种引导模式:standalone和domain(域)。 Standalone模式对于很多应用,并不需要domai…

    Java 2023年6月6日
    094
  • 设计模式之模板方法模式

    在我们实际开发中,如果一个方法极其复杂时,如果我们将所有的逻辑写在一个方法中,那维护起来就很困难,要替换某些步骤时都要重新写,这样代码的扩展性就很差,当遇到这种情况就要考虑今天的主…

    Java 2023年6月8日
    080
  • mybatis insert返回主键的三种方式

    1.情景展示 我们知道,表与表之间的关联关系,通常使用主键,所以在处理复杂业务时,比如:按顺序插入多张表; 我们就需要在插入B表之间拿到插入A表后的主键,如何实现? 2.具体实现 …

    Java 2023年5月30日
    083
  • JVM 配置参数 -D,-X,-XX 的区别

    转载请注明出处: 最近在安全护网行动,需要针对服务进行不断的安全加固,如 对服务的 log4j 的安全配置进行防护,对 fastjson 的漏洞进行安全加固等,最快的防护方法就是通…

    Java 2023年6月8日
    082
  • xxl-Job分布式任务调度

    1.技术对比 1.1.定时任务框架-xxljob spring传统的定时任务@Scheduled,但是这样存在这一些问题 : 做集群任务的重复执行问题 cron表达式定义在代码之中…

    Java 2023年6月9日
    097
  • 统治地球的冯·诺依曼

    以前计算机专业的同学都会学习一门叫《计算机组成原理》的课程,这门课程主要作用就是扫盲,因为在之前的那个年代,并不是很多人都买得起计算机的,这就导致很多学计算机的同学连计算机的电源开…

    Java 2023年6月7日
    090
  • [学习笔记] Java字符和字符串

    在Java中,字符和字符串是两种不同的数据类型; 字符 (char) 是一种基本数据类型,用单引号’ 括起来; 一个char类型可以保存一个标准的ASCII字符或一个U…

    Java 2023年6月5日
    084
  • 阿里面试:MySQL如何设计索引更高效?

    数据库系列更新到现在我想大家对所有的概念都已有个大概认识了,这周我在看评论的时候我发现有个网友的提问我觉得很有意思:帅丙如何设计一个索引?你们都是怎么设计索引的?怎么设计更高效? …

    Java 2023年6月9日
    075
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球