77问答网
所有问题
java新手求教
java类里面的方法不是静态方法,有没有其他方法去调用它,那么他是不是不会运行,那么要是我编译时就算里面错了也没关系吗? 又或者是编译的时候无论有无调用,他都全部运行一遍? 求教编译过程
举报该问题
推荐答案 2012-07-20
楼主:
在java编译时,无论你是否调用,都会检查的,只要有一处有错,就会编译不通过。
java运行原理如下(我是引用别人的,我比较懒,哈哈):
Java应用程序的开发周期包括编译、下载、解释和执行几个部分。
Java编译程序将 Java源程序翻译为JVM可执行代码--字节码。
Java将符号引用信息保留在字节码中,由解释器在运行过程中创立内存布局,
然后再通过查 表来确定一个方法所在的地址。这样就有效的保证了Java的可移植性和安全性。
运行JVM字节码的工作是由解释器( java命令 )来完成的。
解释执行过程分三部进行:代码的装入、代码的校验和代码的执行。
装入代码的工作由"类装载器"(class loader)完成。
类装载器负责装入运行一个程序需要的所有代码,这也包括程序代码中的类所继承的类和被其调用的类。
当类装载器装入一个类时,该类被放 在自己的名字空间中。
除了通过符号引用自己名字空间以外的类,类之间没有其他办法可以影响其他类。
在本台计算机上的所有类都在同一地址空间内,而所有从外 部引进的类,都有一个自己独立的名字空间。
这使得本地类通过共享相同的名字空间获得较高的运行效率,同时又保证它们与从外部引进的类不会相互影响。
当装入 了运行程序需要的所有类后,解释器便可确定整个可执行程序的内存布局。解释器为符号引用同特定的地址空间建立对应关系及查询表。通过在这一阶段确定代码的 内存布局,Java很好地解决了由超类改变而使子类崩溃的问题,同时也防止了代码对地址的非法访问。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://77.wendadaohang.com/zd/WI8WGpIvv.html
其他回答
第1个回答 2012-07-20
错误有编译错误和运行错误,
你编译程序时编译器会简单地检查你程序的语法, 并不是运行你的程序, 此时查出的错误就是编译错误, 程序有编译错误的话是不能够运行的.
编译通过后,运行程序时才出现的错误是运行错误, 运行错误你不调用那个方法是发现不了了的, 你可以写一个不调用的方法, 里面有运行错误没关系, 但不能有编译错误, 有编译错误的话你这个程序是运行不了的..
第2个回答 2012-07-20
new 包名().方法名();这样调它,一个方法存在必然有理由,如果这个方法不会被调用直接删除,项目中不需要任何冗余的代码。编译时候错误会直接报出来,错误分为一般异常和运行时异常,一般异常会直接被代码编译器监测出来,类似:int x="0";直接报错,而不会报错的都是逻辑错误或者别的错误,如:String x="";int y=Integer.parseInt(x);编译器不会报错,但是一旦运行就报错。方法写在类里面他都编译,只不过是会不会调用的问题,这个概念叫代码有效率,以后你会明白的。
第3个回答 2012-07-20
java里面的 方法,你不显示的调用他,他是不会被调用的,你编译错误首先这个java就不会被执行,因为你编译过不去他不给你执行的机会,方法里不能有编译以及语法错误
第4个回答 2012-07-20
编译的时候是会把一个文件内的全部编译,一处有错,编译就会出问题
第5个回答 2012-07-20
听不懂你的意思
相似回答
java新手求教
答:
Java编译程序将 Java源程序翻译为JVM可执行代码--字节码。Java将符号引用信息保留在字节码中,由解释器在运行过程中创立内存布局,然后再通过查 表来确定一个方法所在的地址。这样就有效的保证了
Java的
可移植性和安全性。运行JVM字节码的工作是由解释器(
java
命令 )来完成的。解释执行过程分三部进行:代...
java
学习路线是什么?
求教
大神!
答:
1找一本好的书本教材,辅助看教学视频 好的教材,可以让你更快更好的进入
Java的
世界。在校学生的话,你们的教材通常都是不错的。如果是自学,推荐使用 << Java程序设计>>或<< Java语言程序设计.基础篇>>(原书第8版)( Java语言的经典教材)或者《 Java编程思想》等都是可以的。看视频是学习比较...
java
后台问题,
新手求教
答:
简单点基础性的可以理解为一个表对应一个service,一个service对应一个DAO,一个DAO对应一个DAOImp。不过server属于业务逻辑层~根据业务的不同所调用的DAO也会不一样~比如一个学生的service,可以只对应一个学生的DAO,也有可能会用到班级的DAO,学校的DAO等~...
初级
JAVA
程序
求教
(关于包的问题)
答:
方法1、你的编译1的时候指定目录:进入文件1所在的目录,运行:
java
c -d . 第一个文件名.java 注意 -d . 一定要有,这样你文件2用import tom.jiafei.*; 就可以了 方法2、把文件1编译好的.class文件拷到指定目录:在你那个放这两个文件的文件夹里新建一个目录,名为tom,然后在目录tom里面新建...
java
菜鸟
求教
答:
答案如下:public class OutstandingStudent extends Student { protected String award;public OutstandingStudent (String name, int student_id, int year, String award) { super(name,student_id,year)this.award = award;} public String toString() { return "Name: " + name + ", Student Id...
小小菜鸟继续
求教JAVA的
问题
答:
你的HelloWorld.
java
文件估计保存为HelloWorld.java.txt了
小白
求教Java
问题
答:
首先,
Java中
日期的Date类存在两个, 一个是在 sql包下, 一个是在util包下。 道友用的SimpleDateFormate去讲一个字符串的时间转化成Date 。 其实返回的是Util包下的Date类型。其次 ,也就是说的第二幅图, 在Java中引用类型,其实也就是对象,是存在于堆中的,并将其地址存放于栈中,这中...
大家正在搜
javajava基础教程
java和javascript
新手学c还是java
java新手代码大全
java教程
java的教程
java详细教程
java入门教育
java应用基础教程