A debugger is a computer program that assists in the detection and correction of errors in computer programs.
There are debuggers for Java and debuggers for native code.
A java debugger or disassembler will not show assembler code, only native code is converted into assembler such as c, c++, delphi, pascal, fortan, assembler, etc
You can view java source code by using the tool jd-gui which is a java decompiler.
You can view c++ code through ollydbg, which can debug native code. (assembler)
You cannot debug a batch file, batch files do not make binary files as they are scripts, you can view the source through notepad
It displays the code by viewing hexadecimal numbers and converting those into instructions.
Since java is a virtual machine, let's say 123 is add 1 to register.
So 0x123 will be : reg1 += 1 in java. (HYPOTHETICAL)
Assembler instruction NOP is 0x90, jump short is 0xEB, etc
If the debugger see's 0x90 0xE9 0x12 it will instantly know that:
0x90 = nop
0xE9 = jmp short, following byte is length
0x12 = jump 12 forward
It knows because everything is already predefined, like the gravity constant is g = 9.80 on earth (not exact to the decimal) and the constant pi is 3.14159