main方法为什么是静态的】的更多相关文章

为什么java的main方法必须是静态的   今天看类型信息时发现一个问题,不能再main方法中打印this关键字的信息,这时想起了之前的知识,不能再静态方法中调用this.理由很简单,this表示“这个对象”,也就是声明一个类的对象,然而静态方法是不属于某一个特定对象而是属于这个类的.那么问题来了,为什么main函数必须设置成静态的呢? 首先,main函数作为java程序的入口,也可以理解为一个接口,这个接口不是提供给程序员使用的,这时提供给用户等使用的,用户等不需要知道程序内部的实现,只需要…
今天看类型信息时发现一个问题,不能再main方法中打印this关键字的信息,这时想起了之前的知识,不能再静态方法中调用this.理由很简单,this表示“这个对象”,也就是声明一个类的对象,然而静态方法是不属于某一个特定对象而是属于这个类的.那么问题来了,为什么main函数必须设置成静态的呢? 首先,main函数作为java程序的入口,也可以理解为一个接口,这个接口不是提供给程序员使用的,这时提供给用户等使用的,用户等不需要知道程序内部的实现,只需要知道接口就可以了,如果是非静态的,那么当用户开…
main函数其实也是所在类的一个方法,就比如一个类是test,那么该类的main其实就是test.main(String[] args),众所周知如果一个方法不是静态的,则要先实例化该类,比如要这样 test t=new test(); 然后才能调用 test.main(); 而这对于运行一个程序的主函数来说是不现实的,所以比如把main函数定义为static,使test.main()可以直接被调用. 因为是程序入口啊  不然你从哪里开始new对象 ? 所有static成员都是在程序装载时初始化…
main函数的详解:    public : 公共的. 权限是最大,在任何情况下都可以访问.        原因: 为了保证让jvm在任何情况下都可以访问到main方法.    static:  静态.        原因:静态可以让jvm调用main函数的时候更加的方便.不需要通过对象调用.    void:  没有返回值.         原因:返回的数据是给jvm的,而jvm使用这个数据是没有意义的.    main: 函数名.           注意: main并不是关键字,只不过是j…
是Java程序的入口方法,JVM在运行程序时,会首先查找main()方法. public是权限修饰符,表明任何类或对象都可以访问这个方法: static表明main()方法是一个静态方法,即方法中的代码时存储在静态区的,只要类被加载后,就可以使用该方法而不需要通过实例化对象来访问,可以直接通过 类名.main() 直接访问: void表明方法没有返回值: main是JVM识别的特殊分方法名,是程序的入口方法: 方法的参数为字符串数组,字符串数组参数args为开发人员在命令行状态下与程序交互提供了…
主函数 大家都会写吧. 大家一直都不知道为何这样设计,这样设计有什么好处呢? 白话解释: main函数的修饰符是public: 公共的 为何不用private 等等的修饰符 而规定只用public呢? public修饰符的权限在 其他 修饰符中 权限是最大的 用public来修饰main  是为了让java虚拟机能访问这个主函数(程序入口),是在任何状态中都能调用,所以才不用private,   你假设下   你把main函数用private修饰的话,java虚拟机能访问到这个主函数(程序入口)…
Main方法是C#控制台应用程序和Windows窗体应用程序的入口点.Main方法可以有形参,也可以没有,可以有返回值(int整型),也可以没有.如下定义: 无返回值.无形参的格式: static void Main(){ //to do sth } 无返回值.有形参的格式: static void Main(string[] args){ //to do sth } 有返回值.无形参的格式: static int Main(){ //to do sth ; } 有返回值.有形参的格式: sta…
1.不用main方法如何定义一个类? 不行,没有main方法我们不能运行Java类. 在Java 7之前,你可以通过使用静态初始化运行Java类.但是,从Java 7开始就行不通了. 2.main()方法需要的参数不是字符串数组? 不是的,main()方法的参数必须是字符串数组. 但是,在引进变参时,你可以将字符串类型的变参作为参数传递给main()方法.变参一定得是数组. package com.instanceofjava; public class MainMethod { public…
main 方法,staitc 静态关键首字母大写,区分大小写,java 是main小写,返回值 ,vodi,int参数:可选static void Main(string[] args){ }…
感觉假期过得好快,东西也丢得快. 假期吃喝玩乐之余也来温故一下Java知识,下面给大家整理了10道Java main方法的经典面试题,都来挑战一下自己的Java基础知识吧! 1.main方法是做什么用的? 2.不用main方法如何运行一个类? 3.main方法如何传递参数?传递参数的类型是什么?能不能改变该参数类型? 4.main方法为什么是静态的?能不能改为非静态? 5.main方法能被重载吗? 6.main方法能被覆盖吗? 7.main方法的返回类型是什么?能不能改变? 8.main方法的作…
1.普通代码块: 在方法或语句中出现在{}之间的类容就称为普通代码块,简称代码块.普通代码块和一般的语句执行顺序由他们在代码中出现的次序决定--“先出现先执行”,即顺序执行. /*下面第一个类时合法的,而且下面的这两个类的运行顺序是一模一样的,但一般没人这么写*/ public class Test { { System.out.println("1"); } int x=1; System.out.println("2"); { System.out.printl…
学习新建项目.此问题做为笔记. 错误 1 程序“admin.exe”不包含适合于入口点的静态“Main”方法 原因:原来创建项目的时候,用的是“空项目”,我以为这样就会生成类库,实际上,一开始准备运行的时候,就会提示以上错误. 解决办法:1.右键类库属性 2.然后将输出类型由控制台应用程序改为类库 这样就好了,重新生成吧!…
今天看了一下wpf的Application类方面的知识,一个windows应用程序由一个Application类的实例表示,该类跟踪在应用程序中打开的所有窗口,决定何时关闭应用程序(属性 ShutdownMode),并且可以执行初始化和清理操作的事件. 说说正题吧~~ 在了解了一些Application类的知识后,我打算自己动手写一个类作为程序的入口,以此来代替WPF项目为我们自己生成的App.xaml.     class Startup : Application     {        …
接口可以继承接口.抽象类可以实现(implements)接口,抽象类可以继承具体类.抽象类中可以有静态的main方法. 问:  抽象类是否可继承实体类 (concrete class) 答: 抽象类是可以继承实体类,但前提是实体类必须有明确的构造函数. 答案很明确,可以继承.其实从Object就是个实体类,Java的API文档里,每个抽象类的条目里都明确写着直接或间接继承自Object,所以这点是没有疑问的. 关键在于这答案里所说的“前提是实体类必须有明确的构造函数”一句,是什么意思. 一般学习…
this表示当前对象,用在方法内部,当某对象调用该方法时,该方法中的this就代表调用该方法的对象: static关键字: 修饰类属性后,该属性就成为该类所有实例的公共属性,修改该属性值,所有的实例的该属性的值都发生了变化: main()方法: 静态代码块: final关键字: Runtime类: public class RuntimeDemo { //java进程与子进程交互 public static void main(String[] args) { Runtime run = Run…
错误 1 程序“D:\MyTest\EBookShop\Model\obj\x86\Debug\Model.exe”不包含适合于入口点的静态“Main”方法 原因:原来创建项目的时候,用的是“空项目”,我以为这样就会生成类库,实际上,一开始准备运行的时候,就会提示以上错误. 解决办法:1.右键类库属性 2.然后将输出类型由控制台应用程序改为类库 这样就好了,重新生成吧!   总结:下次注意,直接创建类库,如下图:…
WPF编译时提示"xxx不包含适合于入口点的静态 Main方法xxx"生成的时候一直报"xxx不包含适合于入口点的静态 Main 方法xxx" 看到这个问题首先想到就是App.xaml.cs文件里面没有写Main方法.而打开前面新建的WPF项目确可以下拉看到App文件.因此猜测VS在项目文件内部对App文件作了特殊的处理.用记事本打开项目文件(*.csproj),搜索App.xaml.可以发现项目文件对于App.xaml文件的不同的定义方式.区别如下: 直接新建的W…
java静态代码块/静态属性.构造块.构造方法执行.main方法.普通代码块的顺序 这也是在笔试中的一个重要的考点,就有一个输出语句让你写出输出的结果. 理论知识: 静态代码块是:属于类的,在类加载时就自动执行.静态代码块定义时不能添加作用域符. 构造块是: 在类中定义的,且定义的位置与该类的其他的属性是相当的,就是不在该类的任何成员方法中,定义时直接用{ }包含即可,不用再添加其他任何的访问作用域符.构造块是每次创建对象都会执行一次构造块. 普通代码块:定义位置是在方法内部,在方法体内用 {…
类的加载:时间 1.创建对象实例(new 一个新对象时) 2.创建子类对象实例,父类也会被加载 3.使用类的静态成员时(静态属性,静态方法) 一.static 静态变量:类变量,静态属性(会被该类的所有对象共享) 1.静态类变量可以根据类名共享,static类变量在类加载的时候就生成了 2.类变量是该类的所有对象共享的,而实例变量是每个对象共享的. 3.加上static称为类变量或静态变量,否则称为实例变量/普通变量/非静态变量 4.类变量可以通过 类名.类变量名 或者 对象名.类变量名 来访问…
直接看代码 public class BlockAndMain { public static void main(String[] args) { System.out.println("我是main方法"); } static { System.out.println("我是静态块"); } } 我们运行看看结果 可以看到是静态块先于main方法,并且与静态块在程序中的位置(在main方法前面和后面)无关…
Java中的static关键字解析 static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知识点之一.下面就先讲述一下static关键字的用法和平常容易误解的地方,最后列举了一些面试笔试中常见的关于static的考题.以下是本文的目录大纲: 一.static关键字的用途 二.static关键字的误区 三.常见的笔试面试题 若有不正之处,希望谅解并欢迎批评指正. 请尊重作者劳动成果,转载请标明原文链接: http://www.cnb…
JVM 执行一个 Java 程序时,先从某个指定的 Java 类的 main 方法开始执行代码,同时,传一个字符串数组作为 main 方法的参数.例如在 Unix 系统上,执行下面的命令 java Test reboot Bob Dot Endzo JVM 会调用 Test 的 main 方法,同时把四个字符串 "reboot", "Bob", "Dot" "Endzo" 作为参数传给 main 方法. 那么,在执行 main…
大家都知道,main方法是Java应用程序的入口,其定义格式为: public static void main(String[] args) 可是为什么要这么定义呢?不这样定义可以么?main方法可以继承么?可以重载么?可以被其他方法调用么? 1. main方法为什么这么定义? (1) 因为main方法在启动时是通过Java的虚拟机,也就是JVM来调用的,并且没有通过对象的引用来调用,所以main方法是public和static的.而void是因为,main方法在退出时,没有给退出代码,而是在…
大家都知道,main方法是Java应用程序的入口,其定义格式为: public static void main(String[] args) 可是为什么要这么定义呢?不这样定义可以么?main方法可以继承么?可以重载么?可以被其他方法调用么? 1. main方法为什么这么定义? (1) 因为main方法在启动时是通过Java的虚拟机,也就是JVM来调用的,并且没有通过对象的引用来调用,所以main方法是public和static的.而void是因为,main方法在退出时,没有给退出代码,而是在…
jvm java 看似一种语言,实则一个巨大的体系的王国,开发这么多年了,还是没有搞懂,我以为我懂了,可是过了一段时间又忘了,所以说还是没懂 1.main方法说起 编译完我们的java文件后,需要有个一含有main方法的类,java 命令将指示操作系统启动一个jvm进程 这个jvm进程启动后,寻找那个main地方开始执行程序 java [JVM_Options] ClassName_with_main [args_separate_space] main方法的签名必须是 pubic static…
JVM看不懂的可以跳过,这里不做过多解释,(^__^) 嘻嘻-- 主函数是静态的 public static void main(String[] args){ } 主函数是什么:主函数是一个特殊的函数,作为程序的入口,可以被jvm识别. 主函数的定义: public :代表该函数的访问权限是最大的. static :代表主函数随着类的加载,就已经存在了. void: 主函数没有具体的返回值 main : 不是关键字,是一个特殊的单词可以被jvm识别. (String[] args) 函数的参数…
一. void 如下,像C, C++一样,将返回值类型改为int,再返回一个0,虽然编译通过,但是运行时会报错. 找到一种可理解的解释:方法的副作用和返回值类型.(http://www.cnblogs.com/huanmin/p/6429778.html) 一个方法的执行,如果在返回一个值之外还导致某些外部“状态”发生变化,则称该方法产生了副作用.这里所谓“状态”发生变化,可以是实例域或静态变量被修改. 没有返回值的方法必有副作用,除非它的方法体是空的或者方法没有意义.所以,没有返回值的方法.有…
Java程序的入口---main()方法的签名为:public static void main(String[] args) {...} ,其中, ♦ public修饰符:Java类由JVM调用,为了让JVM可以自由调用这个main()方法,所以使用public修饰符把这个方法暴露出来. ♦ static修饰符:JVM调用这个主方法时,不会先创建该主类的对象,然后通过对象来调用该主方法.JVM直接通过该类来调用主方法,因此使用static修饰该主方法. ♦ void返回值:因为主方法被JVM调…
Main方法是我们学习Java编程语言时知道的第一个方法,你是否曾经想过为什么main方法是public.static.void的.当然,很多人首先学的是C和C++,但是在Java中main方法与前者有些细微的不同,它不会返回任何值,为什么main方式是public.static.void,这篇文章尝试去找到一些答案. Main方法是Java程序的入口,记住,我们这里不会讨论Servlet.MIDlet和其他任何容器管理的java程序,在java核心编程中,JVM会查找类中的public sta…
我们知道,在C/C++当中,这个main方法并不是属于某一个类的,它是一个全局的方法,所以当我们执行的时候,c++编译器很容易的就能找到这个main方法,然而当我们执行一个java程序的时候,因为java都是以类作为程序的组织单元,当我们要执行的时候,我们并不知道这个main方法会放到哪个类当中,也不知道是否是要产生类的一个对象,为了解决程序的运行问题,我们将这个main方法定义为static,这样的话,当我们在执行一个java代码的时候,我们在命令提示符中写:java Point(Point为…