Binary Classification of a ship Dataset
None of the methods you described may classify a dataset alone whereas both can be used to transform your data into another domain in an unsupervised fashion. 

PCA projects your data onto n-orthogonal components. A trained encoder (first component of the autoencoder) can project your data onto a latent space.

Both of those representations can be used in conjuction with a classifier, such as a decision tree, to form a classification pipeline. 

There is no globally best solution, try them both for your specific problem. PCA is, in my opinion, way faster to try out using sklearn instead of building your own autoencoder using PyTorch or Keras. Give PCA a first go and if the results are poor, try using an autoencoder.