是.class文件字节代码?或.class文件是否包含字节码?

时间:2019-02-09 10:54:52

标签: java

通过使用insert into `post_users_map` (`post_id`,`user_id`,`is_owner`) select 12345, user_id, 0 from `users` where username in ('A','B','C') UNION ALL select 12345, user_id, 1 from `users` where username in ('D'); ,我得到<?php include 'include/connect.php'; if (isset($_POST['book2'])) { $id = mysqli_real_escape_string($conn, $_GET['id']); $sql = "SELECT room_price FROM room_details WHERE id='$id';"; $result = mysqli_query($conn, $sql); if (mysqli_num_rows($result) > 0) { while ($row = mysqli_fetch_assoc($result)) { $room_price = $row['room_price']; $email = $_POST['email']; $room_type = $_POST['room_type']; $checkin = $_POST['checkin']; $checkout = $_POST['checkout']; $adults = $_POST['adults']; $children = $_POST['children']; $mailTo = "booking@johndoexxx.com"; $headers = "Guest sent e-mail from: " . $email; $txt = "New booking received, room for " . $adults . " adults and " . $children . " child / children, reservation starts on " . $checkin . " up to " . $checkout . " whereby " . $room_type . " room is selected, Please respond to the sender!"; $heading = "New Booking!"; mail($mailTo, $heading, $headers, $txt); header("Location: index.php?bookingsent"); } } } else { echo "Booking failed to process!, observe your inputs carefully!"; } ?> 文件。 javac.exe文件字节代码吗?或.class文件是否包含字节码?在cmd中编译.class之后,字节码在哪里?

3 个答案:

答案 0 :(得分:2)

是的,Java类文件是包含Java字节码的文件,可以在Java虚拟机(JVM)上执行。

Java类文件通常由Java编译器从包含Java类的Java编程语言源文件(.java文件)中生成(或者,其他JVM语言也可以用于创建类文件)。如果源文件具有多个类,则每个类都将编译为单独的类文件。

您可以使用javap,jd或jd-gui等工具之一查看.class文件的字节码。

答案 1 :(得分:1)

.class文件包含字节码,而不是“成为”字节码。

情况与从生成本机代码的编译器/链接器系统生成的(例如).exe文件相同。 .exe文件包含机器指令,还包含准备执行这些指令所需的其他信息。

同样,.class文件是包含可执行字节码和其他信息的结构化对象。

Class file specification

答案 2 :(得分:0)

javap命令反汇编一个或多个.class文件。

javap -c package.MyClass

还有一些库和工具可以帮助您使用Java字节码,例如ASM和Jasmin。