My professor recently said that although x = x + 1 and x++ will obviously give the same result
I guess your professor perhaps meant - the value of x after x = x + 1 and x++ will be same. Just to re-phrase, as it seems to be creating confusion in interpreting the question.
Well, although the value of x will be same, they are different operators, and use different JVM instructions in bytecode. x + 1 uses iadd instruction, whereas x++ uses iinc instruction. Although this is compiler dependent. A compiler is free to use a different set of instructions for a particular operation. I've checked this against javac compiler.
For eclipse compiler, from one of the comment below from @Holger:
I just tested it with my eclipse and it produced iinc for both expressions. So I found one compiler producing the same instructions
You can check the byte code using javap command. Let's consider the following class:
class Demo {
    public static void main(String[] args) {
        int x = 5;
        x = x + 1;
        System.out.println(x);
        x++;
        System.out.println(x);
    }
} 
Compile the above source file, and run the following command:
javap -c Demo
The code will be compiled to the following bytecode (just showing the main method):
 public static void main(java.lang.String[]);
   Code:
      0: iconst_5
      1: istore_1
      2: iload_1
      3: iconst_1
      4: iadd
      5: istore_1
      6: getstatic     #2                  // Field java/lang/System.out:Ljava/io/PrintStream;
      9: iload_1
     10: invokevirtual #3                  // Method java/io/PrintStream.println:(I)V
     13: iinc          1, 1
     16: getstatic     #2                  // Field java/lang/System.out:Ljava/io/PrintStream;
     19: iload_1
     20: invokevirtual #3                  // Method java/io/PrintStream.println:(I)V
     23: return