JAVA初学者,import 的实现机制

问题描述

请问importjava.util.*这句代码的实现机制是什么?是不是JVM找到操作系统的是path环境变量,然后找到C:ProgramFilesJavajre6librt.jar然后JVMClassLoader?是这个过程吗?请高手给予解释一下,(*^__^*)嘻嘻……

解决方案

解决方案二:
编译的时候根据classpath找。
解决方案三:
import是给编译器看的,不涉及jvm
解决方案四:
引用2楼zangxt的回复:

import是给编译器看的,不涉及jvm

编译的时候是没有疑问,可是执行的时候编译器就没关系了吧,总得JVM执行吧?那应该是寻找的path环境变量吧?我看我这环境变量不少呢,什么java,oracle,python的。应该都是这么个原理吧?嘿嘿~~~
解决方案五:
关注。。
解决方案六:
编译之后的class文件里用的是类的全路径名,跟import无关了。jvm根据全路径名去寻找class文件或者jar包,至于如何寻找的,要区分不同的类加载器了。
解决方案七:
引用2楼zangxt的回复:

import是给编译器看的,不涉及jvm

就是这样引用3楼lqy19830929的回复:

编译的时候是没有疑问,可是执行的时候编译器就没关系了吧,总得JVM执行吧?那应该是寻找的path环境变量吧?我看我这环境变量不少呢,什么java,oracle,python的。应该都是这么个原理吧?嘿嘿~~~

你不import,VM照样找rt.jar.importjava.util.*的意思是如果你输入Listx,编译器会找到java.util.List.执行时就已经是全名了.
解决方案八:
path是你在命令提示符下使用时它去找你个java执行文件,classpath是编译器面对import时它并不知道你导入的类在那它就会去classpath下面寻找。
解决方案九:
引用3楼lqy19830929的回复:

编译的时候是没有疑问,可是执行的时候编译器就没关系了吧,总得JVM执行吧?那应该是寻找的path环境变量吧?我看我这环境变量不少呢,什么java,oracle,python的。应该都是这么个原理吧?嘿嘿~~~

compiler把java文件编译成字节码后,跟类有关的东西都加上了完整的路径,通过javap-c命令反汇编*.class文件,可以得知
解决方案十:
楼上说的挺详细的.
解决方案十一:
其实不需要懂只要知道用法就行了importjava.util.*;是在应用JAVA里面别人写好的util类里所有的方法就可以了!!
解决方案十二:
mark
解决方案十三:
不懂???

时间: 2024-11-05 14:50:37

JAVA初学者,import 的实现机制的相关文章

java中import和package作用与用法

有些人写了一阵子 Java,可是对於 Java 的 package 跟 import 还是不 太了解很多人以?樵?悸 .java 档案中的 import 会让编译器把所 import 的程式通通写到编译好的 .class 档案中,或是认? import 跟 C/C++ 的 include 相似,实际上,这是错误的观念. 让我们先了解一下,Java 的 package 到底有何用处.其实,package 名称就像是我们的姓,而 class 名称就像是我们的名字 .package 名称有很多 . 的

JAVA初学者如何学习

问题描述 java初学者要如何学习JAVA,本人是一点JAVA基础都没有,学习的流程是怎么样的,先要学习什么课程? 解决方案 解决方案二:找本Java基础的书,死肯上面的内容,在电脑上抄里面的程序,然后编译运行,查看结果,小小的修改程序中的内容,再编译,运行,查看结果,对比.最笨的方法,有可能就是最锋利的剑解决方案三:先学面上的,在整底层-解决方案四:<SCJP考试指南>推荐LZ看一下,基本可以速成-解决方案五:尚学堂视频 看看,电驴上有的,嘿嘿,祝楼主成功解决方案六:JavaLearning

Java初学者入门需掌握的30个基本概念

初学|概念 基本概念 1.OOP中唯一关系的是对象的接口是什么,就像计算机的销售商她不管电源内部结构是怎样的,他只关系能否给你提供电就行了,也就是只要知道can or not而不是how and why.所有的程序是由一定的属性和行为对象组成的,不同的对象的访问通过函数调用来完成,对象间所有的交流都是通过方法调用,通过对封装对象数据,很大限度上提高复用率. 2.OOP中最重要的思想是类,类是模板是蓝图,从类中构造一个对象,即创建了这个类的一个实例(instance). 3.封装:就是把数据和行为

java初学者 为什么两个格式相同的代码编译出来结果不同求大神指导

问题描述 java初学者 为什么两个格式相同的代码编译出来结果不同求大神指导 import java.util.*; public class a { public static void main(String[] args){ Scanner in=new Scanner(System .in); System.out.println("请出拳"); System.out.println("请选择: 1剪刀 2石头 3布"); int a=in.nextInt(

java初学者,求教!!!!!!!11

问题描述 java初学者,求教!!!!!!!11 题目描述 每门课的成绩分为A.B.C.D.F五个等级,为了计算平均绩点,规定A.B.C.D.F分别代表4分.3分.2分.1分.0分. 输入格式 有多组测试样例.每组输入数据占一行,由一个或多个大写字母组成,字母之间由空格分隔. 输出 每组输出结果占一行.如果输入的大写字母都在集合{A,B,C,D,F}中,则输出对应的平均绩点,结果保留两位小数.否则,输出"Unknown". 样例输入 A B C D F B F F C C A D C

java初学者求助。方法整不明白了。遇到这个瓶颈好久了,大家给指点指点。

问题描述 java初学者求助.方法整不明白了.遇到这个瓶颈好久了,大家给指点指点. 题目是:以public static void displaySortedNumbers(double num1,double num2,double num3)作为方法头,编写程序,提示用户输入三个数,然后按升序来显示出来. 新手,懂得不多,请大家指点时照顾一下,不要说太复杂或是我没学到的知识.麻烦大家了.下面是我的,代码.我的问题集中在,主方法里的调用问题.调用的方法参数里我试过输入什么数字都不影响程序的结果

从JVM的内存管理角度分析Java的GC垃圾回收机制_java

一个优秀的Java程序员必须了解GC的工作原理.如何优化GC的性能.如何与GC进行有限的交互,因为有一些应用程序对性能要求较高,例如嵌入式系统.实时系统等,只有全面提升内存的管理效率 ,才能提高整个应用程序的性能.本篇文章首先简单介绍GC的工作原理之后,然后再对GC的几个关键问题进行深入探讨,最后提出一些Java程序设计建议,从GC角度提高Java程序的性能.    GC的基本原理    Java的内存管理实际上就是对象的管理,其中包括对象的分配和释放.     对于程序员来说,分配对象使用ne

java 传参 编程-【Java初学者求助】,谢谢main方法里面传参的问题

问题描述 [Java初学者求助],谢谢main方法里面传参的问题 刚开始接触Java时间不久,谢谢各位帮忙.我想要得到的结果是:输入身高和体重,然后算出来exp是否合理,谢谢,package forth; import java.io.*; public class Person { float weight; float height; String check(){ float exp = weight/(height*height); if(exp<18) return ""

jvm系列(一):java类的加载机制

java类的加载机制   1.什么是类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构.类的加载的最终产品是位于堆区中的Class对象,Class对象封装了类在方法区内的数据结构,并且向Java程序员提供了访问方法区内的数据结构的接口. 类加载器并不需要等到某个类被"首次主动使用"时再加载它,JVM规范允许类加载器在预料某个类将要被使用时就预先加载

java初学者必看经典

配置java环境变量:          JAVA_HOME:配置JDK的目录          CLASSPATH:指定到哪里去找运行时需要用到的类代码(字节码)          PATH:指定可执行程序的位置                   LINUX系统(在" .bash_profile "下的环境变量设置)                   JAVA_HOME=/opt/jdk1.5.0_06                   CLASSPATH=.:$JAVA_HO