java中main函数你知道多少

目录
  • 前言
  • main介绍
  • main可以被重载吗
  • main可以被继承吗
  • main可以被调用吗
  • 总结

前言

前段时间看到一道面试题:“main函数可以被重载么?”,当时就蒙圈了,怎么还会有这种面试题,现在面试官都这么变态么?虽然变态不过还是挺感兴趣的,于是就复习了一遍基础题 [此处坏笑表情]

main介绍

我们开始学习java程序的时候,最先拍得一段代码肯定是main函数,main函数的格式如下:

public static void main(String[] args){}

首先针对 main 方法的格式定义:

「public」 :main 方法是启动的时候由 JVM 进行加载的,public 的可访问权限是最高的,所以需要声明为 public;

「static」 :方法的调用要么是通过对象,要么是通过类,而 main 方法的话因为是由虚拟机调用的,所以无需生成对象,那么声明为 static 即可;

「main」 :至于为什么方法名称叫 main,我想应该是参考的是 C 语言的方法名吧,毕竟java的鼻祖原先是写C的;

「void」 :main 方法退出时,并没有需要有相关返回值需要返回,所以是 void;

「String[]」 :此字符串数组用来运行时接受用户输入的参数;

这时候大家发现了没有,main方法和其他的静态方法是一样的。

main可以被重载吗

直接上代码

运行成功,所以除了 JVM 规定的作为应用程序入口的 main 方法之外,其他的main方法都是比较普通的方法

main可以被继承吗

继续上代码,定义一个HelloMeta继承父类HelloWorld

显然子类还是运行了父类的main方法。那么我们再重写下子类的方法

还是可以运行子类中的main方法

main可以被调用吗

还是上代码吧

可以看到main方法被callVerification方法调用了,不过中间因为没有退出方法,导致死循环,程序崩了

总结

除了main方法作为JVM应用程序的入口比较特殊外,其他情况下与正常的静态方法是没什么区别的。

到此这篇关于java中main函数你知道多少的文章就介绍到这了,更多相关java main函数内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java中的main函数的详细介绍

    Java中的main函数的详细介绍 JAVA中的主函数是我们再熟悉不过的了,相信每个学习过JAVA语言的人都能够熟练地写出这个程序的入口函数,但对于主函数为什么这么写,其中的每个关键字分别是什么意思,可能就不是所有人都能轻松地答出来的了.我也是在学习中碰到了这个问题,通过在网上搜索资料,并加上自己的实践终于有了一点心得,不敢保留,写出来与大家分享. 主函数的一般写法如下: public static void main(String[] args){-} 下面分别解释这些关键字的作用: (1)p

  • Java main 方法面试题的详细整理

    Java main 方法面试题的详细整理 1.不用main方法如何定义一个类? 不行,没有main方法我们不能运行Java类. 在java 7之前,你可以通过使用静态初始化运行Java类.但是,从Java 7开始就行不通了. 2.main()方法需要的参数不是字符串数组? 不是的,main()方法的参数必须是字符串数组. 但是,在引进变参时,你可以将字符串类型的变参作为参数传递给main()方法.变参一定得是数组. package com.instanceofjava; public class

  • 全面解析Java main方法

    1.main方法的重载 package cn.nxl; public class Main_test { public static void main(String args[]) { System.out.println("应用程序入口的main方法"); main(); main(); main(, ); } public static void main(){ System.out.println("无参的main方法"); } public static

  • 深入理解Java main方法详解

    目录 1. 深入理解 main 方法 2. 在 Idea 下如何传递参数 总结 1. 深入理解 main 方法 解释main方法的形式:public static void main(String[] args){} 1..main方法是虚拟机调用的 2.java虚拟机需要调用类的main()方法,所以该方法的访问权限必须是public 3.java虚拟机在执行main()方法时不必创建对象,所以该方法必须是static 4.该方法接收String类型的数组参数,该数组中保存执行java命令时传

  • 在java中main函数如何调用外部非static方法

    使用外部方法时(不管是static还是非static),都要先new一个对象,才能使用该对象的方法. 举例如下: 测试函数(这是错误的): public class Test { public static void main(String[] args) { Employee employee = null; employee.setName("旺旺"); //有警告,况且这里也执行不下去 employee.setEmail("ww@qq.com"); emplo

  • java中main函数你知道多少

    目录 前言 main介绍 main可以被重载吗 main可以被继承吗 main可以被调用吗 总结 前言 前段时间看到一道面试题:“main函数可以被重载么?”,当时就蒙圈了,怎么还会有这种面试题,现在面试官都这么变态么?虽然变态不过还是挺感兴趣的,于是就复习了一遍基础题 [此处坏笑表情] main介绍 我们开始学习java程序的时候,最先拍得一段代码肯定是main函数,main函数的格式如下: public static void main(String[] args){} 首先针对 main

  • Java 中synchronize函数的实例详解

    Java 中synchronize函数的实例详解 java中的一个类的成员函数若用synchronized来修饰,则对应同一个对象,多个线程像调用这个对象的这个同步函数时必须等到上一个线程调用完才能由下一个线程调用. 那么如果一个类同时有两个成员函数是由synchronized修饰如代码所示,对与同一个对象,是否可以在两个线程运行时,一个调用funcA,同时另一个调用funcB? Mysyn是这样一个类,如果我有两个线程,一个在run方法中先运行funcA再运行funcB,另一个线程在run方法

  • JAVA中split函数的常见用法实例

    只写经常使用的,并不完整. 1.基本用法,将字符串按照指定字符串进行分割,例如: public class Main { public static void main(String[] args) { String ss = "abcabcdefg"; String[] split = ss.split("bc"); for(String st:split){ System.out.println(st); } System.out.println("分

  • Java中Range函数的简单介绍

    目录 前言 Range语法 IntStream范围的语法 LongStream范围的语法 Range函数在Java中是如何工作的? Java中的Range示例 前言 在Java中,Range方法在IntStream和LongStream类中都可用.在IntStream类中,它有助于返回函数参数范围内IntStream的顺序值.在该方法中,startInclusive(inclusive)和endExclusive(exclusive)是与增量步长一起使用的两个参数,如前所述,将包括起始值,并排除

  • Java中绝对值函数的介绍与其妙用

    一.绝对值函数使用说明 绝对值函数是JDK中Math.java中的实现方法,其用来得到表达式的绝对值. 其实现非常简单,源码如下: /** * Returns the absolute value of an {@code int} value. * If the argument is not negative, the argument is returned. * If the argument is negative, the negation of the argument is re

  • 浅析Java中Split函数的用法技巧

    如执行:"2|33|4".split("|")出来的结果是:""2 33 4奇怪吧,不过注意看一下API说明还是知道原因的. java.lang.string.split split 方法 将一个字符串分割为子字符串,然后将结果作为字符串数组返回. stringObj.split([separator,[limit]]) 参数 stringObj 必选项.要被分解的 String 对象或文字.该对象不会被 split 方法修改. separato

  • JAVA中字符串函数subString的用法小结

    String str;str=str.substring(int beginIndex);截取掉str从首字母起长度为beginIndex的字符串,将剩余字符串赋值给str: str=str.substring(int beginIndex,int endIndex);截取str中从beginIndex开始至endIndex结束时的字符串,并将其赋值给str; demo: 复制代码 代码如下: class Test { public static void main(String[] args)

  • 解决java main函数中的args数组传值问题

    这几天面试中有遇到关于main数组中的args数组传值的问题,一般是从命令提示符中传值,也可以直接在java代码中赋值. 而且这个数组的长度是动态的,根据传值的个数确定数组的长度. 1.从命令提示符中传值 我在桌面新建了一个文本文档重命名为TestMain.java,代码如下 public class TestMain { public static void main(String[] args) { System.out.println("hello "+args[0]); Sys

  • Java中Lambda表达式并行与组合行为

    从串行到并行 串行指一个步骤一个步骤地处理,也就是通常情况下,代码一行一行地执行. 如果将我们常用的迭代器式的循环展开的话,就是串行执行了循环体内所定义的操作: sum += arr.get(0); sum += arr.get(1); sum += arr.get(2); //... 在书的一开始,就提到Java需要支持集合的并行计算(而Lambda为这个需求提供了可能). 这些功能将全部被实现于库代码中,对于我们使用者,实现并行的复杂性被大大降低(最低程度上只需要调用相关方法). 另外,关于

随机推荐