Hidden Features of Java  XML
Índice dos Fóruns » Assuntos gerais (Off-topic)
Autor Mensagem
Marky.Vasconcelos
Moderador
[Avatar]

Membro desde: 11/04/2007 18:18:20
Mensagens: 5932
Localização: São Paulo/SP
Offline

Depois de ler isso no StackOverflow fiquei surpreso com algumas coisas.

Mas a quem mais me surpreendeu (não li todas) foi apertar Ctrl + Shift + F1 em algum programa Swing, depois da uma olhada no Console.


Se você fizer simplesmente throw null de dentro de um código é compilado e lançado um NullPointer quando executado naquele ponto.


O seguinte código que não é bem uma hidden feature mas é bem util pra quem não sabe

O que acontece é que voce esta criando uma class que extende HashMap e criando um bloco de codigo que vai ser executado nele.


È possivel juntar tipos no Generics



Dai só vai aceitar um parametro que seja Foo e Bar ao mesmo tempo.



Tem essa classe http://www.docjar.com/html/api/ClassLib/Common/sun/misc/Unsafe.java.html com ela

You can;

* Create an object without calling a constructor.
* Throw any exception even Exception without worrying about throws clauses on methods. (There are other way to do this I know)
* Get/set randomly accessed fields in an object without using reflection.
* allocate/free/copy/resize a block of memory which can be long (64-bit) in size.
* Obtain the location of fields in an object or static fields in a class.
* independently lock and unlock an object lock. (like synchronize without a block)
* define a class from provided byte codes. Rather than the classloader determining what the byte code should be. (You can do this with reflection as well)

Mas o uso incorreto dessa classe pode matar a JVM.



Isso retorna true.


Alguém sabe mais alguma?

This message was edited 1 time. Last update was at 28/01/2011 18:29:20


Facebook @MarkyHitchhiker +Mark WP: MarkyTech's

Projects:
Android Roadmap - Aprenda Android do inicio (Java é o unico pre-requisito)
Towel ( ObjectTableModel & Swing & Utils )
Tower Defense Game - Java2D [Open-Source] [How-to-play]
EVGD: Programação de jogos (links) Ponto V! - Desenvolvimento de jogos para indies, curiosos e profissionais

DefaultTableModel?! PARE! Não faça isso! Faça melhor!

Dicas: Faça perguntas inteligentes! ; MigLayout ; GridBagLayout (Joke)

Develop games is fantastic, with words you can make worlds!!!

DON'T PANIC!
MarkyHitchhiker's Blog!
[WWW] [MSN]
davidbuzatto
Moderador
[Avatar]

Membro desde: 07/08/2004 23:47:57
Mensagens: 4013
Localização: Vargem Grande do Sul - SP
Offline

Sinceramente, não vi utilidade alguma no exemplo do mapa.
Vc gasta a mesma quantidade de linhas caso fosse fazer da forma tradicional, define mais uma classe sem haver necessidade, além de tornar o código difícil de ler.
Tah, se for usar como parâmetro para um método pode até ser útil.

Os genéricos tem muitas coisas que a gente não aprende normalmente. Dá uma olhadinha no livro "Java Generics and Collections".

Olhe um exemplo tirado do livro citado:



Tem certeza que seu exemplo de URL retorna true?
Esse exemplo aqui retorna true:


Afinal, 208.109.100.149 é o IP apontado pelo endereço www.guj.com.br.

[]'s




Seja educado. Agradeça quem te ajudou. Não custa nada.
Dúvidas de Java? Utilize o fórum! Não respondo via MP.

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
"A vida é um escândalo, e no final dá sempre errado. O que humaniza o homem é o fracasso."

http://davidbuzatto.com.br | GitHub | uHunt | CV Lattes | Last.fm
[WWW]
AbelBueno
Virtual Machine Man

Membro desde: 04/08/2010 09:37:57
Mensagens: 543
Offline

Acho que o exemplo do mapa pode ser interessante se for um mapa estático para a classe:



Para adicionar, esse link aqui tem uma série de dicas interessantes.

This message was edited 1 time. Last update was at 29/01/2011 12:47:18

Paulo Silveira
Administrador
[Avatar]

Membro desde: 07/08/2002 18:38:50
Mensagens: 4204
Localização: São Paulo
Offline

o ruim do Unsafe é ser so Sun tambem. O pessoal do XStream e do Objenesis encapsulam isso para voce poder fazer essas magicas em qualquer JVM.

O do mapa é comum encontrar em codigo por ai.

E o da URL é um classico aviso, pra gente tomar cuidado com a velocidade de URLs dentro de Sets e como chaves em Maps, ou contains em qualquer collection.

nao conhecia o truque do swing.

http://blog.caelum.com.br twitter: @paulo_caelum


[Email] [WWW]
Marky.Vasconcelos
Moderador
[Avatar]

Membro desde: 11/04/2007 18:18:20
Mensagens: 5932
Localização: São Paulo/SP
Offline

É.. pra falar a verdade esses são só exemplos incomuns.

Mas o do Swing realmente me chamou a atenção.


Alias, eu descobri algo hoje sem querer.
Pode-se adicionar qualquer modificador antes de package que funciona.

Isso compila:

This message was edited 1 time. Last update was at 31/01/2011 11:59:56


Facebook @MarkyHitchhiker +Mark WP: MarkyTech's

Projects:
Android Roadmap - Aprenda Android do inicio (Java é o unico pre-requisito)
Towel ( ObjectTableModel & Swing & Utils )
Tower Defense Game - Java2D [Open-Source] [How-to-play]
EVGD: Programação de jogos (links) Ponto V! - Desenvolvimento de jogos para indies, curiosos e profissionais

DefaultTableModel?! PARE! Não faça isso! Faça melhor!

Dicas: Faça perguntas inteligentes! ; MigLayout ; GridBagLayout (Joke)

Develop games is fantastic, with words you can make worlds!!!

DON'T PANIC!
MarkyHitchhiker's Blog!
[WWW] [MSN]
 
Índice dos Fóruns » Assuntos gerais (Off-topic)
Ir para:   
Powered by JForum 2.1.8 © JForum Team