「在执行java程序时」java程序是从什么方法开始执行的
本篇文章给大家谈谈在执行java程序时,以及java程序是从什么方法开始执行的对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、在命令窗口中执行java程序时怎么找寻java文件
- 2、为什么执行JAVA程序时,会出现Exception in thread"main" java.lang.NoClassDefFoundError的错?
- 3、java程序执行时的问题
- 4、Java程序运行时,没有赋值的基本类型变量会在内存中分配空间吗?
- 5、为什么运行java程序时会出现无法读取
在命令窗口中执行java程序时怎么找寻java文件
想运行程序,总会出现”找不到或无法加载主类“的错误。/spanbr / span style="font-size:16px;" 这个时候要注意,之所以找不到,是因为helloworld在helloworld包名的下面。/spanbr / span style="font-size:16px;" 去掉 ”package helloworld;“ 重新用javac 编译helloworld.java,再运行java helloworld 就可以了。/spanbr / span style="font-size:16px;" 或者新建一个包名一样的文件夹,在本例中,为建立一个helloworld的文件夹,把java文件移到该目录下。br / 然后在helloworld文件夹的平级下,运行javac helloworld/helloworld.java编译程序,运行java helloworld.helloworld 则可以运行含有包名的java程序。/spanbr / br / span style="font-size:16px;" span style="font-size:18px;"strong原理说明:/strong/spanbr / java 程序运行class文件,对于有包名的类,java把包名当成文件夹处理,”包名+类名“ 相当于 ”文件夹目录+类名“来寻找类。/spanbr / br / br / br / /spanspan style="font-family:Consolas, monospace;font-size:12px;letter-spacing:0.100000001490116px;line-height:1.3;color:#0000CC;background-color:#FFFFFF;"br / /spanspan style="color:#333333;font-family:arial, 宋体, sans-serif, tahoma, 'Microsoft YaHei';font-size:14px;line-height:20px;white-space:normal;background-color:#FFFFFF;"br / br / br / br / /span /p
为什么执行JAVA程序时,会出现Exception in thread"main" java.lang.NoClassDefFoundError的错?
因为你的main方法没有写在公共类中
main方法是java程序的入口方法 , 必须写在公共类中 , 你的class ReadNumber不是公共类所以找不到启动方法 。
把class ReadNumber改成 public class ReadNumber并且你的文件名是ReadNumber就可以启动了。
java程序执行时的问题
1、你的文件名对吗?
JAVA要求你的文件和你的类名严格对应的。
比如 public class HelloWorld{ .....
那么文件名一定只能是HelloWorld.java,看仔细了!
2、你的程序中有main方法吗?参数什么的对吗?
main方法的声明应该是这样子的:
public static void main(String[] args)
事实上如果你用开发工具来做的话,是不会错的。如果你用UltraEdit之类的来写程序的话,就一个字不要改的照抄吧!
3、记住,javac后面跟的参数是文件名,但java 后面跟的是类名!
这是我开始学JAVA是犯的错,java HelloWorld.class,然后就报错。后来才弄明白,应该是java HelloWorld。
4、设置了classpath了吗?
不仅是在安装JDK时要设置的内容,一般来说最好还要自己设置一个目录来存放自己的类文件的。比如d:\class目录。
设置classpath=%classpath%;d:\class
那么,现在将HelloWorld.class文件COPY到d:\class目录下,再java HelloWorld应该就OK了。
5、结合第3点和第4点
如果你的类是属于某一个包的,比如这样一个类sony.test.HelloWorld,那么按照我在第4点中说的目录来说,就应该将HelloWorld.class文件存放到d:\class\sony\test\目录下。
执行的时候应该参考第3点中说的,按类名执行:java sony.test.HelloWorld。
参考
建议用一些编程工具。。。
Java程序运行时,没有赋值的基本类型变量会在内存中分配空间吗?
基本类型的变量如果是临时变量,只要定义了,就会分配内存空间,不管是否被赋值;如果是作为对象的属性出现,只要该对象不实例化,就不会分配内存空间。\x0d\x0a\x0d\x0a一个完整的Java程序运行过程会涉及以下内存区域:\x0d\x0a1、寄存器:JVM内部虚拟寄存器,存取速度非常快,程序不可控制。\x0d\x0a2、 栈:保存局部变量的值,包括:\x0d\x0a 1)用来保存基本数据类型的值;\x0d\x0a 2)保存类的实例,即堆区对象的引用(指针)\x0d\x0a 3)也可以用来保存加载方法时的帧\x0d\x0a3、堆:用来存放动态产生的数据,比如new出来的对象。注意创建出来的对象只包含属于各自的成员变量,并不包括成员方法。因为同一个类的对象拥有各自的成员变量,存储在各自的堆中,但是他们共享该类的方法,并不是每创建一个对象就把成员方法复制一次。\x0d\x0a\x0d\x0a4、常量池:JVM为每个已加载的类型维护一个常量池,常量池就是这个类型用到的常量的一个有序集合。包括直接常量(基本类型,String)和对其他类型、方法、字段的符号引用(1)。池中的数据和数组一样通过索引访问。由于常量池包含了一个类型所有的对其他类型、方法、字段的符号引用,所以常量池在Java的动态链接中起了核心作用。常量池存在于堆中。\x0d\x0a\x0d\x0a5、代码段:用来存放从硬盘上读取的源程序代码。\x0d\x0a6、数据段:用来存放static定义的静态成员。\x0d\x0a\x0d\x0a注意:\x0d\x0a 1.一个Java文件,只要有main入口方法,我们就认为这是一个Java程序,可以单独编译运行。\x0d\x0a 2.无论是普通类型的变量还是引用类型的变量(俗称实例),都可以作为局部变量,他们都可以出现在栈中。只不过普通类型的变量在栈中直接保存它所对应的值,而引用类型的变量保存的是一个指向堆区的指针,通过这个指针,就可以找到这个实例在堆区对应的对象。因此,普通类型变量只在栈区占用一块内存,而引用类型变量要在栈区和堆区各占一块内存。
为什么运行java程序时会出现无法读取
首先你自己分析:
1,可能你编译.java的路径,看看要编译java文件是不是在当前目录下。
2,java文件的类名首字母最好用大写,并保存文件名跟类名一致
3,你也可以自己
运行javac
-?
是否你确实配制对了
环境变量
!
只要学会分析才是好孩子!
不然永远只能靠别人!
关于在执行java程序时和java程序是从什么方法开始执行的的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-12-28,除非注明,否则均为
原创文章,转载请注明出处。