Home Java javaTutorial How to view java .class files?

How to view java .class files?

May 22, 2019 pm 02:16 PM
class java

Sometimes in order to study the principles of Javac, we need to see how the contents of the class file are organized. At this time, it is necessary to check the class file.

How to view java .class files?

#How to view java class files?

There are many ways to view class files. It is recommended to use the javap tool that comes with the JDK.

First create the following source code:

public class HelloWorld{
    public static void main(String[] args){
        System.out.println("hello world!");
    }
}

Use the javac compiler to compile the source file, and then use the javap tool to view the class file. The command is as follows

javap -verbose HelloWorld

This is the DOS window The running results are copied as shown below:

F:\>javac HelloWorld.java
F:\>javap -verbose HelloWorld
Classfile /F:/HelloWorld.class
  Last modified 2017-12-24; size 426 bytes
  MD5 checksum 4efac412ef483c8a3fe7489c87d15c8c
  Compiled from "HelloWorld.java"
public class HelloWorld
  minor version: 0
  major version: 52
  flags: ACC_PUBLIC, ACC_SUPER
Constant pool:
   #1 = Methodref          #6.#15         // java/lang/Object."<init>":()V
   #2 = Fieldref           #16.#17        // java/lang/System.out:Ljava/io/Print
Stream;
   #3 = String             #18            // hello world!
   #4 = Methodref          #19.#20        // java/io/PrintStream.println:(Ljava/
lang/String;)V
   #5 = Class              #21            // HelloWorld
   #6 = Class              #22            // java/lang/Object
   #7 = Utf8               <init>
   #8 = Utf8               ()V
   #9 = Utf8               Code
  #10 = Utf8               LineNumberTable
  #11 = Utf8               main
  #12 = Utf8               ([Ljava/lang/String;)V
  #13 = Utf8               SourceFile
  #14 = Utf8               HelloWorld.java
  #15 = NameAndType        #7:#8          // "<init>":()V
  #16 = Class              #23            // java/lang/System
  #17 = NameAndType        #24:#25        // out:Ljava/io/PrintStream;
  #18 = Utf8               hello world!
  #19 = Class              #26            // java/io/PrintStream
  #20 = NameAndType        #27:#28        // println:(Ljava/lang/String;)V
  #21 = Utf8               HelloWorld
  #22 = Utf8               java/lang/Object
  #23 = Utf8               java/lang/System
  #24 = Utf8               out
  #25 = Utf8               Ljava/io/PrintStream;
  #26 = Utf8               java/io/PrintStream
  #27 = Utf8               println
  #28 = Utf8               (Ljava/lang/String;)V
{
  public HelloWorld();
    descriptor: ()V
    flags: ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
         0: aload_0
         1: invokespecial #1                  // Method java/lang/Object."<init>
":()V
         4: return
      LineNumberTable:
        line 1: 0
  public static void main(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
         0: getstatic     #2                  // Field java/lang/System.out:Ljav
a/io/PrintStream;
         3: ldc           #3                  // String hello world!
         5: invokevirtual #4                  // Method java/io/PrintStream.prin
tln:(Ljava/lang/String;)V
         8: return
      LineNumberTable:
        line 3: 0
        line 4: 8
}
SourceFile: "HelloWorld.java"
F:\>

Related learning recommendations: java basic tutorial

The above is the detailed content of How to view java .class files?. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undress AI Tool

Undress AI Tool

Undress images for free

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

PHP Tutorial
1512
276
python argparse required argument example python argparse required argument example Aug 11, 2025 pm 09:42 PM

When using the argparse module, the parameters that must be provided can be achieved by setting required=True. 1. Use required=True to set optional parameters (such as --input) to be required. If not provided when running the script, an error will be reported; 2. Position parameters are required by default, and there is no need to set required=True; 3. It is recommended to use position parameters for necessary parameters. Occasionally, the optional parameters of required=True are used to maintain flexibility; 4. required=True is the most direct way to control parameters. After use, the user must provide corresponding parameters when calling the script, otherwise the program will prompt an error and exit.

What are comments in Java? What are comments in Java? Aug 12, 2025 am 08:20 AM

CommentsinJavaareignoredbythecompilerandusedforexplanation,notes,ordisablingcode.Therearethreetypes:1)Single-linecommentsstartwith//andlastuntiltheendoftheline;2)Multi-linecommentsbeginwith/andendwith/andcanspanmultiplelines;3)Documentationcommentsst

The Best IDEs for Java Development: A Comparative Review The Best IDEs for Java Development: A Comparative Review Aug 12, 2025 pm 02:55 PM

ThebestJavaIDEin2024dependsonyourneeds:1.ChooseIntelliJIDEAforprofessional,enterprise,orfull-stackdevelopmentduetoitssuperiorcodeintelligence,frameworkintegration,andtooling.2.UseEclipseforhighextensibility,legacyprojects,orwhenopen-sourcecustomizati

How to use the HttpClient API in Java How to use the HttpClient API in Java Aug 12, 2025 pm 02:27 PM

The core of using the JavaHttpClientAPI is to create an HttpClient, build an HttpRequest, and process HttpResponse. 1. Use HttpClient.newHttpClient() or HttpClient.newBuilder() to configure timeouts, proxy, etc. to create clients; 2. Use HttpRequest.newBuilder() to set URI, method, header and body to build requests; 3. Send synchronous requests through client.send() or send asynchronous requests through client.sendAsync(); 4. Use BodyHandlers.ofStr

Fix: Ethernet 'Unidentified Network' Fix: Ethernet 'Unidentified Network' Aug 12, 2025 pm 01:53 PM

Restartyourrouterandcomputertoresolvetemporaryglitches.2.RuntheNetworkTroubleshooterviathesystemtraytoautomaticallyfixcommonissues.3.RenewtheIPaddressusingCommandPromptasadministratorbyrunningipconfig/release,ipconfig/renew,netshwinsockreset,andnetsh

How to compare Strings in Java How to compare Strings in Java Aug 12, 2025 am 10:00 AM

Use .equals() to compare string content, because == only compare object references rather than actual characters; 2. Use .equalsIgnoreCase() when comparing ignoring case; 3. Use .compareTo() when sorting alphabetically, and .compareToIgnoreCase() when ignoring case; 4. Avoid calling strings that may be null. Equals() should be used to use "literal".equals(variable) or Objects.equals(str1,str2) to safely handle null values; in short, always pay attention to content comparison rather than reference,

What is a LinkedList in Java? What is a LinkedList in Java? Aug 12, 2025 pm 12:14 PM

LinkedList is a bidirectional linked list in Java, implementing List and Deque interfaces. It is suitable for scenarios where elements are frequently inserted and deleted. Especially when operating on both ends of the list, it has high efficiency, but the random access performance is poor and the time complexity is O(n). Insertion and delete can reach O(1) at known locations. Therefore, it is suitable for implementing stacks, queues, or situations where structures need to be dynamically modified, and is not suitable for read-intensive operations that frequently access by index. The final conclusion is that LinkedList is better than ArrayList when it is frequently modified but has fewer accesses.

Excel find and replace not working Excel find and replace not working Aug 13, 2025 pm 04:49 PM

Checksearchsettingslike"Matchentirecellcontents"and"Matchcase"byexpandingOptionsinFindandReplace,ensuring"Lookin"issettoValuesand"Within"tocorrectscope;2.Lookforhiddencharactersorformattingbycopyingtextdirectly

See all articles