java新手求教
java类里面的方法不是静态方法,有没有其他方法去调用它,那么他是不是不会运行,那么要是我编译时就算里面错了也没关系吗?又或者是编译的时候无论有无调用,他都全部运行一遍?...
java类里面的方法不是静态方法,有没有其他方法去调用它,那么他是不是不会运行,那么要是我编译时就算里面错了也没关系吗? 又或者是编译的时候无论有无调用,他都全部运行一遍? 求教编译过程
展开
6个回答
展开全部
楼主:
在java编译时,无论你是否调用,都会检查的,只要有一处有错,就会编译不通过。
java运行原理如下(我是引用别人的,我比较懒,哈哈):
Java应用程序的开发周期包括编译、下载、解释和执行几个部分。
Java编译程序将 Java源程序翻译为JVM可执行代码--字节码。
Java将符号引用信息保留在字节码中,由解释器在运行过程中创立内存布局,
然后再通过查 表来确定一个方法所在的地址。这样就有效的保证了Java的可移植性和安全性。
运行JVM字节码的工作是由解释器( java命令 )来完成的。
解释执行过程分三部进行:代码的装入、代码的校验和代码的执行。
装入代码的工作由"类装载器"(class loader)完成。
类装载器负责装入运行一个程序需要的所有代码,这也包括程序代码中的类所继承的类和被其调用的类。
当类装载器装入一个类时,该类被放 在自己的名字空间中。
除了通过符号引用自己名字空间以外的类,类之间没有其他办法可以影响其他类。
在本台计算机上的所有类都在同一地址空间内,而所有从外 部引进的类,都有一个自己独立的名字空间。
这使得本地类通过共享相同的名字空间获得较高的运行效率,同时又保证它们与从外部引进的类不会相互影响。
当装入 了运行程序需要的所有类后,解释器便可确定整个可执行程序的内存布局。解释器为符号引用同特定的地址空间建立对应关系及查询表。通过在这一阶段确定代码的 内存布局,Java很好地解决了由超类改变而使子类崩溃的问题,同时也防止了代码对地址的非法访问。
在java编译时,无论你是否调用,都会检查的,只要有一处有错,就会编译不通过。
java运行原理如下(我是引用别人的,我比较懒,哈哈):
Java应用程序的开发周期包括编译、下载、解释和执行几个部分。
Java编译程序将 Java源程序翻译为JVM可执行代码--字节码。
Java将符号引用信息保留在字节码中,由解释器在运行过程中创立内存布局,
然后再通过查 表来确定一个方法所在的地址。这样就有效的保证了Java的可移植性和安全性。
运行JVM字节码的工作是由解释器( java命令 )来完成的。
解释执行过程分三部进行:代码的装入、代码的校验和代码的执行。
装入代码的工作由"类装载器"(class loader)完成。
类装载器负责装入运行一个程序需要的所有代码,这也包括程序代码中的类所继承的类和被其调用的类。
当类装载器装入一个类时,该类被放 在自己的名字空间中。
除了通过符号引用自己名字空间以外的类,类之间没有其他办法可以影响其他类。
在本台计算机上的所有类都在同一地址空间内,而所有从外 部引进的类,都有一个自己独立的名字空间。
这使得本地类通过共享相同的名字空间获得较高的运行效率,同时又保证它们与从外部引进的类不会相互影响。
当装入 了运行程序需要的所有类后,解释器便可确定整个可执行程序的内存布局。解释器为符号引用同特定的地址空间建立对应关系及查询表。通过在这一阶段确定代码的 内存布局,Java很好地解决了由超类改变而使子类崩溃的问题,同时也防止了代码对地址的非法访问。
展开全部
错误有编译错误和运行错误,
你编译程序时编译器会简单地检查你程序的语法, 并不是运行你的程序, 此时查出的错误就是编译错误, 程序有编译错误的话是不能够运行的.
编译通过后,运行程序时才出现的错误是运行错误, 运行错误你不调用那个方法是发现不了了的, 你可以写一个不调用的方法, 里面有运行错误没关系, 但不能有编译错误, 有编译错误的话你这个程序是运行不了的..
你编译程序时编译器会简单地检查你程序的语法, 并不是运行你的程序, 此时查出的错误就是编译错误, 程序有编译错误的话是不能够运行的.
编译通过后,运行程序时才出现的错误是运行错误, 运行错误你不调用那个方法是发现不了了的, 你可以写一个不调用的方法, 里面有运行错误没关系, 但不能有编译错误, 有编译错误的话你这个程序是运行不了的..
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
new 包名().方法名();这样调它,一个方法存在必然有理由,如果这个方法不会被调用直接删除,项目中不需要任何冗余的代码。编译时候错误会直接报出来,错误分为一般异常和运行时异常,一般异常会直接被代码编译器监测出来,类似:int x="0";直接报错,而不会报错的都是逻辑错误或者别的错误,如:String x="";int y=Integer.parseInt(x);编译器不会报错,但是一旦运行就报错。方法写在类里面他都编译,只不过是会不会调用的问题,这个概念叫代码有效率,以后你会明白的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
java里面的 方法,你不显示的调用他,他是不会被调用的,你编译错误首先这个java就不会被执行,因为你编译过不去他不给你执行的机会,方法里不能有编译以及语法错误
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
编译的时候是会把一个文件内的全部编译,一处有错,编译就会出问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
听不懂你的意思
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询