conversões

se eu passo um argumento ao java do tipo
conta que eu mesmo criei ele sempre percebo que
éde linguagem sempre converter tudo em
object

Pq a jvm sempre converte qualquer argumento em objeto???
Existe alguma (des)vantagem nisso???

Vou contar um segredo - o Java não converte quase nada.
Ele converte alguns tipos de dados primitivos em outros (por exemplo: int -> long, float -> double etc.) mas não faz nenhuma outra conversão.
O que ele faz é "reinterpretação" - por exemplo, se uma classe Cachorro estende Animal, você pode se referir a um objeto da classe Cachorro como sendo um Animal ou então um Object. Mas não há uma "conversão".
(Há uma outra coisa, chamada "autoboxing", que é um recurso novo da linguagem que, em determinadas condições, passa um valor primitivo para um objeto "wrapper" e vice-versa)

tudo bem, pq sempre e feita essa “reinterpretação” pela
maquina virtual tudo que é criado é entendido como object??
Existe alguma (des)vantagem nisso???

não não existe desvantagem nisto, a unica coisa que ocorre e que a JVM pode ver um objeto de várias forma sendo que todo objeto pode ser visto como Object seria mais ou menos assim:

[Cachorro] -> [Animal] -> [Object]

Object é a classe mais primitiva do Java e todos as outros classes deve ter no minimo o que Object tem.

Animal por sua vez especializa Object para ser um Object com caracteristicas de Animal, podemos notar isto pois Object não tem um campo raça, já Animal tem, ja o Cachorro vai ter outras porpriedades que animal não tem, por exemplo um metodo latir, nem todos os animais latem, mas todos animais tem uma raça. Desta forma pode ser feito um autobox ou cast entre objetos Cachorro para o Objeto Animal, claro que de Animal para Cachorro não dá, uma vez que Cachorro tem propriedades que Animal não tem.

A máquina virtual trabalha com os seguintes tipos de dados:

  • Tipos primitivos
  • Tipos objetos
    Ela é otimizada para trabalhar com tipos objetos, portanto você não precisa se preocupar com isso.

[quote=firefox]tudo bem, pq sempre e feita essa “reinterpretação” pela
maquina virtual tudo que é criado é entendido como object??
Existe alguma (des)vantagem nisso???[/quote]

No mundo java ou é tipo primitivo ou um objeto.
Tudo que é objeto estende implicitamente a classe Object (A classe Deus supremo!!!) rs.
Se há desvantagem??? Acho que não, pois é assim desde os primórdios da humanidade. rs

Abraços
Wanderson 8)