I posted my own answer here in case someone else has the question. Web3j provides a ECKeyPair as util to process key and address conversion. Please see codes below: 

<!-- language: lang-java -->

    String privateKey = "{your private key}";
    Credentials cs = Credentials.create(privateKey);

    String privateKey = cs.getEcKeyPair().getPrivateKey().toString(16);
    String publicKey = cs.getEcKeyPair().getPublicKey().toString(16);
    String addr = cs.getAddress();

    System.out.println("Private key: " + privateKey);
    System.out.println("Public key: " + publicKey);
    System.out.println("Address: " + addr);