Pergunta sobre métodos Java Primitive Types

Estou confuso com os tipos primitivos em Java e os métodos de conversão de um tipo para outro. Se, por exemplo, eu tenho um número inteiro e quero convertê-lo em uma string, preciso usar um método estático de Integer ou String, por exemplo

String.valueOf(some_integer);

Mas se eu quiser converter um stirng em um array de caracteres, posso usar algo como,

some_string.toCharArray();

Minha pergunta é por que? Por que preciso usar um método estático para o primeiro?

questionAnswers(5)

yourAnswerToTheQuestion