java新手求教

java运行原理如下(我是引用别人的,我比较懒,哈哈):Java应用程序的开发周期包括编译、下载、解释和执行几个部分。Java编译程序将 Java源程序翻译为JVM可执行代码--字节码。Java将符号引用信息保留在字节码中,由解释器在运行过程中创立内存布局,然后再通过查 表来确定一个方法所在的地址。这样就有效的...
java新手求教
楼主:
在java编译时,无论你是否调用,都会检查的,只要有一处有错,就会编译不通过。
java运行原理如下(我是引用别人的,我比较懒,哈哈):

Java应用程序的开发周期包括编译、下载、解释和执行几个部分。
Java编译程序将 Java源程序翻译为JVM可执行代码--字节码。
Java将符号引用信息保留在字节码中,由解释器在运行过程中创立内存布局,
然后再通过查 表来确定一个方法所在的地址。这样就有效的保证了Java的可移植性和安全性。

运行JVM字节码的工作是由解释器( java命令 )来完成的。
解释执行过程分三部进行:代码的装入、代码的校验和代码的执行。
装入代码的工作由"类装载器"(class loader)完成。
类装载器负责装入运行一个程序需要的所有代码,这也包括程序代码中的类所继承的类和被其调用的类。
当类装载器装入一个类时,该类被放 在自己的名字空间中。
除了通过符号引用自己名字空间以外的类,类之间没有其他办法可以影响其他类。
在本台计算机上的所有类都在同一地址空间内,而所有从外 部引进的类,都有一个自己独立的名字空间。
这使得本地类通过共享相同的名字空间获得较高的运行效率,同时又保证它们与从外部引进的类不会相互影响。
当装入 了运行程序需要的所有类后,解释器便可确定整个可执行程序的内存布局。解释器为符号引用同特定的地址空间建立对应关系及查询表。通过在这一阶段确定代码的 内存布局,Java很好地解决了由超类改变而使子类崩溃的问题,同时也防止了代码对地址的非法访问。2012-07-20
错误有编译错误和运行错误,
你编译程序时编译器会简单地检查你程序的语法, 并不是运行你的程序, 此时查出的错误就是编译错误, 程序有编译错误的话是不能够运行的.

编译通过后,运行程序时才出现的错误是运行错误, 运行错误你不调用那个方法是发现不了了的, 你可以写一个不调用的方法, 里面有运行错误没关系, 但不能有编译错误, 有编译错误的话你这个程序是运行不了的..2012-07-20
new 包名().方法名();这样调它,一个方法存在必然有理由,如果这个方法不会被调用直接删除,项目中不需要任何冗余的代码。编译时候错误会直接报出来,错误分为一般异常和运行时异常,一般异常会直接被代码编译器监测出来,类似:int x="0";直接报错,而不会报错的都是逻辑错误或者别的错误,如:String x="";int y=Integer.parseInt(x);编译器不会报错,但是一旦运行就报错。方法写在类里面他都编译,只不过是会不会调用的问题,这个概念叫代码有效率,以后你会明白的。2012-07-20
java里面的 方法,你不显示的调用他,他是不会被调用的,你编译错误首先这个java就不会被执行,因为你编译过不去他不给你执行的机会,方法里不能有编译以及语法错误2012-07-20
编译的时候是会把一个文件内的全部编译,一处有错,编译就会出问题2012-07-20
听不懂你的意思2012-07-20
mengvlog 阅读 10 次 更新于 2025-07-19 20:35:10 我来答关注问题0
  •  海南加宸 JAVA 中 byte赋值的问题.新手求教

    在Java中,当你将两个byte类型的变量相加时,结果会被自动转换为int类型。因此,如果你直接尝试将这个int类型的值赋给byte类型的变量,会因为类型不匹配而出错。这时你需要显式地进行类型转换,使用强制类型转换将int值转换回byte类型。例如:byte b = (byte)(b1 + b2);需要注意的是,强制类型转换可...

  • Java编译程序将 Java源程序翻译为JVM可执行代码--字节码。Java将符号引用信息保留在字节码中,由解释器在运行过程中创立内存布局,然后再通过查 表来确定一个方法所在的地址。这样就有效的保证了Java的可移植性和安全性。运行JVM字节码的工作是由解释器( java命令 )来完成的。解释执行过程分三部进行:代...

  •  旺仔小蛮头_ JAVA新人,hello world程序一直显示在类中找不到main方法,求教

    1、先保存一下代码,然后再运行(不过每次都要这样做,麻烦)2、设置一下eclipse(eclipse ->window->preference->run and debug->Lunching )可以参考这个网址:网页链接 package com.pm.test;public class HelloWorld {public static void main(String[] args) {System.out.println("hello world");}...

  • for (int i = 101; i

  •  覃寞 java 新人求教! 假设 一个人能活到一百岁,买生日蜡烛,每24个一盒,打印每个年龄需要多少盒蜡烛。

    1岁1根 两岁2根 3岁3根 这就是一个等差数列 总根数:((1+n)*n)/2 n为年龄 所以100岁一共需要5050根,一盒24根,所以 5050/24=210 5050%240=10 取模不为0,所以还需要10根,所以还需要1盒,剩14根,总的数量没有问题 对于每一岁需要买的数量,买一盒之后用完了或者不够用了在买...

檬味博客在线解答立即免费咨询

Java相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部