Quando eu crio a instância dessa forma:
private BMessage msg;
Fica com pau de nullpointer. Pq eu preciso dar um new?
Quando eu crio a instância dessa forma:
private BMessage msg;
Fica com pau de nullpointer. Pq eu preciso dar um new?
Ora, se fosse um int e vc não inicializasse e tentasse ler daria null não é. É a mesma coisa…
Se usa new pq vc não esta criando uma variavel, e sim uma instancia de uma classe…
o new invoca o constructor da classe instanciada… logo sem ele, ela ñ é criada 
puts
viajei! asieuhuiase
vlw
Tentando responder a sua dúvida.
Quando você declara uma variavel de um determinado tipo de objeto você não está declarando uma instancia daquele objeto mas sim uma referencia para ele.
Se você tem algum conhecimento da linguagem C poderia fazer uma analogia com ponteiros. Em java toda variavel de objeto é como se fosse um ponteiro, não é o objeto em si.
Quando você faz Objeto a = new Objeto(); na verdade você está criando um objeto e fazendo a referencia apontar (ou referenciar) aquele objeto criado, mas a variavel não guarda o objeto em si, somente uma referencia para ele.
E como java gosta de inicializar automaticamente as variaveis não locais, quando vc declara uma variavel do tipo objeto e não a inicializa ela recebe o valor null.
edit
mensagem duplicada