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函数内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

时间: 2022-01-11

Java中的main函数的详细介绍

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

深入理解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方法

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 方法面试题的详细整理

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

10个经典的Java main方法面试题

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

Java 编程之IO流资料详细整理

java IO详解: Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作. IO流的分类 根据处理数据类型的不同分为:字符流和字节流 根据数据流向不同分为:输入流和输出流  字符流和字节流 字符流的由来: 因为数据编码的不同,而有了对字符进行高效操作的流对象.本质其实就是基于字节流读取时,去查了指定的码

java 对象的序列化和反序列化详细介绍

最近周末,对java 的基础知识做了一个整理,其中java 序列化和反序列化的资料进行了详细整理,这里做个笔记,希望也能帮助到读到此文的朋友. 一.序列化和反序列化的概念 把对象转换为字节序列的过程称为对象的序列化. 把字节序列恢复为对象的过程称为对象的反序列化. 对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中: 2) 在网络上传送对象的字节序列. 在很多应用中,需要对某些对象进行序列化,让它们离开内存空间,入住物理硬盘,以便长期保存.比如最常见的是

Java持久层面试题目及答案整理

什么是ORM? 对象关系映射(Object-Relational Mapping,简称ORM)是一种为了解决程序的面向对象模型与数据库的关系模型互不匹配问题的技术: 简单的说,ORM是通过使用描述对象和数据库之间映射的元数据(在Java中可以用XML或者是注解),将程序中的对象自动持久化到关系数据库中或者将关系数据库表中的行转换成Java对象,其本质上就是将数据从一种形式转换到另外一种形式. Hibernate中SessionFactory是线程安全的吗?Session是线程安全的吗(两个线程能

Java的特点和优点(动力节点整理)

Java的特点 Java语言是一种优秀的编程语言.它最大的优点就是与平台无关,在Windows 9x.Windows NT.Solaris.Linux.MacOS以及其它平台上,都可以使用相同的代码."一次编写,到处运行"的特点,使其在互联网上广泛采用. 由于Java语言的设计者们十分熟悉C++语言,所以在设计时很好地借鉴了C++语言.可以说,Java语言是一种比C++语言"还面向对象"的一种编程语言.Java语言的语法结构与C++语言的语法结构十分相似,这使得C+

值得收藏的2017年Java开发岗位面试题

下面是我自己收集整理的2017年Java岗位的面试题,可以用它来好好准备面试. 一.Java基础 1. String类为什么是final的. 2. HashMap的源码,实现原理,底层结构. 3. 说说你知道的几个Java集合类:list.set.queue.map实现类咯... 4. 描述一下ArrayList和LinkedList各自实现和区别 5. Java中的队列都有哪些,有什么区别. 6. 反射中,Class.forName和classloader的区别 7. Java7.Java8的

关于Java集合框架面试题(含答案)上

1.Java集合框架是什么?说出一些集合框架的优点? 每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector.Stack.HashTable和Array.随着集合的广泛使用,Java1.2提出了囊括所有集合接口.实现和算法的集合框架.在保证线程安全的情况下使用泛型和并发集合类,Java已经经历了很久.它还包括在Java并发包中,阻塞接口以及它们的实现.集合框架的部分优点如下: (1)使用核心集合类降低开发成本,而非实现我们自己的集合类. (2)随着使用经过严格测试的集合框架类,代

Maven 常用插件的详细整理

Maven 常用插件的详细整理 1.源码分析 <artifactId>maven-pmd-plugin</artifactId> 2.代码格式检查 <artifactId>maven-checkstyle-plugin</artifactId> 3.代码相似度检查 <groupId>org.codehaus.mojo</groupId> <artifactId>simian-maven-plugin</artifac

关于Java集合框架面试题(含答案)下

21.HashMap和HashTable有何不同? (1)HashMap允许key和value为null,而HashTable不允许. (2)HashTable是同步的,而HashMap不是.所以HashMap适合单线程环境,HashTable适合多线程环境. (3)在Java1.4中引入了LinkedHashMap,HashMap的一个子类,假如你想要遍历顺序,你很容易从HashMap转向LinkedHashMap,但是HashTable不是这样的,它的顺序是不可预知的. (4)HashMap