JMS and AMQP are both messaging standards but AMQP defines a binary protocol while JMS only defines a Java API. AMQP supports multiple languages and platforms and defines exchange types like direct, fanout and topic for routing messages. It uses bindings between exchanges and queues with routing keys. JMS only supports Java and uses queues with message selectors for routing. AMQP messages have headers and properties sections while JMS divides messages into headers, properties and body.