JAVA习题

2025-01-18 17:15:54
推荐回答(4个)
回答1:

b
jdk自带工具箱中的javac.exe文件用于编译满足java编程规范的.java文件

c
第2题问的有问题,编译完成后生成的应该是文件,而不是程序,生成的文件名应该根据所编译的文件内的类的命名决定,因此这道题目没法回答,不过行业内的规范是一个java文件中只定义一个公共类,也就是和文件名一样的类,所以实在要选就只能选C了

b
jdk自带工具箱中的java.exe文件用于解释执行满足java编程规范的并且编译完成的.class文件

d
applet小应用程序的执行方式就是appletviewer 网页格式文件,根据题设只能选d

b
所有的java文件编译完成后将生成对应类名定义的字节码文件,该文件不依附与任何操作平台,只要java虚拟机可以运行,都可以正常的执行。

b
JDK Java开发工具包,Java Development Kit
里面有运行环境JRE和开发时所需要的Java类库,以及一些编译调试运行的程序,如java.exe,javac.exe,javaw.exe等。

回答2:

b c e d b b

给篇文章你看你就明白 第五第六题了:

Java 反编译和源代码保护

摘要 探讨了使用模糊技术和定制类装载器来保护Java源代码的方法,并给出了具体的实例加以说明。

关键词 反编译,模糊技术,类装载器,Java虚拟机

一、反编译

反编译是一个将目标代码转换成源代码的过程。目标代码是一种用机器语言表示的代码,这种语言能通过实机或虚拟机直接执行。当C编译器编译生成一个对象的目标代码时,该目标代码是为某一特定硬件平台运行而产生的,在编译过程中,编译程序通过查表将所有符号的引用转换为特定的内存偏移量。目标代码只能在特定的CPU 上运行。而Java编译器为了保证目标代码的可移植性,并不将对变量和方法的引用编译为数值引用,也不确定程序执行过程中的内存布局,而是将这些符号引用信息保留在字节码中,由Java虚拟机在运行过程中创立内存布局,然后再通过查表来确定一个方法所在的地址。由于其相对简单的Java 虚拟机(与真实的微处理器相比)和规范的字节码格式,由Java字节码(Bytecode)反编译成源代码的过程相对于C语言来说要简单许多,因此,当前反编译Java程序颇为盛行。

在介绍Java反编译器之前,要提及JDK自带的一个工具javap,它是一个Java代码反汇编器。反汇编器和反编译器是不同的,使用javap反汇编的Java类文件可得到数据区定义、方法和类的引用等信息。例如,下面是对HelloWorld.class反汇编后的部分信息:

C:\JExamples>javap -c HelloWorld

Compiled from "helloworld.java"

public class HelloWorld extends java.lang.Object{

public HelloWorld();

Code:

0: aload_0

1: invokespecial #1; //Method java/lang/Object."":()V

4: return



由此可见在Java字节码中蕴藏了大量的信息。Java反编译器就是利用类文件中的潜在信息和语言规范等猜测出源代码的。没有一个反编译器能够保证准确无误地翻译出源代码,而且每个反编译器自身也存在各种不同的漏洞。但是我们不可轻视反编译器的威力,它还是能比较准确地翻译出部分甚至全部的源代码。

回答3:

1.b
2.c
3.e
4.d
5.b
6.b

回答4:

1.B
2.C
3.E
4...不会
5.D
6.B