java函数前加个条件_java里为什么主函数前面要加static修饰 | 学步园

news/2024/7/3 20:01:20

先说一下static

1.static 修饰的域,我们叫静态域,它是归类所有的,被所有对象所共享,只有一个

2.static修饰的区块,域只会初始化一次

3.static修饰的域或方法,可以直接通过类的名字加上.进行调用

4.static修饰的方法内不能直接使用非静态成员

static关键字,告知编译器main函数是一个静态函数。也就是说main函数中的代码是存储在静态存储区的,静态方法在内存中的位置是固定的,即当定义了类以后这段代码就已经存在了。如果main()方法没有使用static修饰符,那么编译不会出错,但是如果你试图执行该程序将会报错,提示main()方法不存在。因为包含main()的类并没有实例化(即没有这个类的对象),所以其main()方法也不会存。而使用static修饰符则表示该方法是静态的,不需要实例化即可使用。

main方法是一个程序的入口,如果写成非静态的,那么就必须实例化一个对象再来调用它,既然是入口这样肯定是不可以的;静态方法是属于类的,直接用类名就可以调用

static方法不需要创建对象 可以直接访问 这样main方法就不需要做特殊处理

static方法在静态数据区中,这样就可以直接调用不需要每次调用都要重新生成。

静态函数在调用时不用实例化

静态,一上来就装入内存

main函数其实也是所在类的一个方法,就比如一个类是test,那么该类的main其实就是test.main(String[] args),众所周知如果一个方法不是静态的,则要先实例化该类,比如要这样 test t=new test(); 然后才能调用 test.main();

而这对于运行一个程序的主函数来说是不现实的,所以比如把main函数定义为static,使test.main()可以直接被调用。

因为main就是这个类的主函数,入口,如果每次进这个入口的时候再去实例话然后再去调用这个入口方法,就很罗嗦 。

注:以上很多事网上查来的,最精彩的解答是在csdn上,一个问题引发的深邃的回答,最后亚里士多德都出来了,有兴趣的围观吧http://bbs.csdn.net/topics/200084223。


http://www.niftyadmin.cn/n/4204515.html

相关文章

【雕爷学编程】Arduino动手做(138)---64位WS2812点阵屏模块3

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&am…

js 数组插入删除

常用的方法是遍历数组,然后使用splice()删除 这里我们使用es6 中findIndex()查找,然后删除 function deleteFromArray(arr, compare) {const index arr.findIndex(compare)if (index > -1) {arr.spli…

在vue项目中 如何定义全局变量 全局函数

这里写自定义目录标题设置一个专用的的全局变量模块文件,模块里面定义一些变量初始状态,用export default 暴露出去,需要时导入即可一、变量二、方法设置一个专用的的全局变量模块文件,模块里面定义一些变量初始状态,用…

Unity定时器

需求是在项目中,会遇到很多倒计时功能,比如在线时间奖励,pve活动间隔5分钟 总结常见解决方法有三种 1.Update()每帧检查,适合用于界面上显示具体的数值,这是了准确性。在用户体验倒计时是最好的选择。 2.this.Invoke( …

编写高性能 Web 应用程序的10个技巧

常见的 ASP.NET 性能神话 有用的 ASP.NET 性能技巧和诀窍 在 ASP.NET 中处理数据库的一些建议 缓冲以及用 ASP.NET 进行后台处理 本文使用下列技术:ASP.NET,.NET 框架,IIS   用 ASP.NET 编写 Web 应用程序其轻松程度令人难以置信。它是…

java语言编程的风格_什么是良好的编程风格(Java编程)

展开全部Java编程风格与命名规范整理基本命名规范1.包命名包名按照域名的范围从e69da5e887aa62616964757a686964616f31333431353963大到小逐步列出,恰好和Internet上的域名命名规则相反。由一组以“。”连接的标识符构成,通常第一个标识符为符合网络域名…

vue.js中实现在弹框外有鼠标点击事件时隐藏弹框

mounted() {// 监听页面的点击事件,如果鼠标在pop弹出框和按钮外点击,那么让弹出框不显示document.onclick () > {let e e || window.event;let elem e.srcElement || e.target;while (elem) {if (elem.id "headerSearch" || elem.id …

C#中的IDisposable模式用法详解

篇文章主要介绍了C#中的IDisposable模式用法,讲述了垃圾资源回收机制的实现,并对比分析了Dispose()方法、~DisposableClass()析构函数、虚方法Dispose(bool disposing)的原理,需要的朋友可以参考下本文实例讲述了C#中IDisposable模式的用法,针对垃圾资源的回收进行了…