java类被使用才编译吗
两个类都在同一包用*.java这么编译当然会把A也直接编译了,这么编译完两个类应该也都在当前目录里面出现,你可以找找看看,如果没有还有可能是你'A'类的文件名可能与某个别的类重了,所以B也就能继承,再看看吧
② 我在程序里导入的Java类,他会编译进去吗,或者说他会把Java自带的类库一起全部都编译了吗!
Java自带的不会,Java虚拟机里有这些预制类,运行时能自动映射到。只有外部做成的jar包类才会被编译进入。
③ Java是解释型还是编译型
它既不属于传统的编译型语言也不属于解释型语言。它是先编译成.CLASS字节码文件,然后再利用虚拟机解释执行的.可以说先编译后解释吧。
④ 请问java程序在编译和运行时有什么区别,系统分别都会做什么
Java程序的编译
使用命令: javac *.java
编译时,会将写的.java文件(高级语言),生成相应的字节码文件.class文件(二进制代码)
Java程序的执行
使用命令:java *
流程: 加载到 -- 连接 ---- 初始化 ...
运行时,首先会由将相应的.class文件,加载到内存中,并验证.class文件的有效性,将相应类的Class加载到内存中,并对类中的静态变量进行初始化操作,然后就由 主 类开始执行
具体的可以看一下 JVM 类加载过程,以及jVM的内存分配机制
⑤ java 缺少引用类能正确编译吗
不可以
比如
publicclassGotDeps{
publicstaticvoidmain(String[]args){
inti=1;
Dep.foo(i);
}
}
Dep的foo方法签名是
publicstaticvoidfoo(intn)
编译之后会产生如下命令:
publicstaticvoidmain(java.lang.String[]);
Code:
0:iconst_1
1:istore_1
2:iload_1
3:invokestatic#16;//MethodDep.foo:(I)V
6:return
如果签名是
publicstaticvoidfoo(longn)
编译之后的命令:
publicstaticvoidmain(java.lang.String[]);
Code:
0:iconst_1
1:istore_1
2:iload_1
3:i2l
4:invokestatic#16;//MethodDep.foo:(J)V
7:return
所以java编译器并不知道这些信息,你让它怎么编译?因此是不可以的
⑥ jdk中提供了什么方法对java类文件进行编译
不要着急
慢慢来
加入你编译程序的名字是hello.java
1.把它放到d盘根目录下
2.进去dos
转到d盘
3.使用javac.hello.java命令
4.这时候你可以看到在hello.java旁边多了一个hello.class文件
5.使用java.hello
就可以编译成功了
希望对你有帮助
加油
⑦ JAVA如何在运行时编译一个类
你的问题说得太不清楚了。。是不是问把修改后的java类编译好后,再发布到服务器上?
重新发布java类,服务器一般会自动重起,然后加载这个类。
⑧ Java中类加载出现在哪个阶段,编译期和运行期 类加载和类装载是一样的吗
使用的类,编译/运行时都会被加载。
加载/装载没有区别,翻译的词汇选择因人而异了
运行 javac /java 时 加上 -verbose 选项就可以看到了。
⑨ java程序编译时,方法是不是只在调用时才使用
因为在父类里面被调用了,这个方法您是重写了父类的方法