Re: Re: [java-list] Instâncias

2002-10-21 Por tôpico Mauro
Nada disso. Como as coisas são Objetos o == compara
se é o MESMO OBJETO, ou seja, se duas variáveis fazem
referência pra MESMA INSTÂNCIA do objeto. 

Pode ter vários objetos iguais, ou seja, com a mesma
forma e conteúdo que não são o mesmo objeto. Pra isso
tem os métodos equals(), contentEquals(), compare(). 

Achar que dois objetos da mesma classe e com o mesmo
conteúdo devem ser == é o mesmo que dizer que japônes
é tudo igual :-). 

Como a classe String é imutável, não pode ser alterada,
o compilador otimiza o uso da memória usando o mesmo
objeto pras duas strings com mesmo conteúdo. Mas não
conte com isto em todas as versões e implementações.
Pode considerar que no exemplo o x só é igual ao y
por coincidência. 


Michel writes:
Caro Luiz Barbosa, estou utilizando apenas para 
exemplificar, se, antes da comparação, voce mandar 
escrever na tela os valores de x e de y, serão ambos 
de 100, mas o 1º ele considera iguais, o 2º não.
Já que possuem valores iguais, não acha que ambos
deveria retornar o mesmo valor na comparação (x == y)???

---
Mauro Ramos Martini
[EMAIL PROTECTED]
counter.li.org#225287 

-- LISTA SOUJAVA  
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP 
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED] 
-



RES: Re: [java-list] Instâncias

2002-10-21 Por tôpico Rosfran Lins Borges

   Caros membros da lista,
   Essa questão já foi discutida há um tempo atrás, voltou novamente agora,
e ainda gera discussões. Postei uma mensagem há poucos dias, explicando a
diferença entre literais String e objetos String. Talvez tenha ficado
meio confuso o texto, mais aí vai novamente. A diferença está apenas na
forma de declaração e inicialização das variáveis String. Ao contrário do
que ocorre com qualquer outra classe, na classe String existem 2 formas de
declaração de variáveis. A primeira é a forma normal, com a clara indicação
de alocação de novo espaço de memória através do operador new:
 String str = new String(texto);
   E a outra forma de declaração de String, por meio do uso de literais. Um
literal é a parte à direita da declaração abaixo. Observem que não há uso do
operador new:
 String str = texto;
   Essa última forma de declaração de objetos é uma exceção à regra da
declaração e inicialização de objetos em Java: não é criado um novo objeto,
e sim reaproveitado um novo espaço, caso haja um espaço de memória ocupado
por uma String de mesmo conteúdo. Portanto, SEMPRE a comparação abaixo vai
ser TRUE:
 String str1 = teste;
 String str2 = teste;
 System.out.println( str1 == str2 = +(str1==str2));
   Isso SÓ vale para String's. Tudo isso aqui está muito bem documentado,
faz parte da especificação de JAVA, e pra quem quiser comprovar, é só dar
uma lida no The Java Language Specification, do James Gosling (et al.)
Está disponível on-line. O endereço:
 http://java.sun.com/docs/books/jls/second_edition/html/j.title.doc.html
   Boa leitura!!!


Rosfran Lins Borges
Analista de Sistemas - NSV
[EMAIL PROTECTED]
Fóton® Informática e Serviços
Fone: (61) 3031 5060 R.: 5037
 

-Mensagem original-
De: Mauro [mailto:martini;floripa.com.br] 
Enviada em: quarta-feira, 16 de outubro de 2002 12:29
Para: [EMAIL PROTECTED]
Assunto: Re: Re: [java-list] Instâncias

Nada disso. Como as coisas são Objetos o == compara
se é o MESMO OBJETO, ou seja, se duas variáveis fazem
referência pra MESMA INSTÂNCIA do objeto. 

Pode ter vários objetos iguais, ou seja, com a mesma
forma e conteúdo que não são o mesmo objeto. Pra isso
tem os métodos equals(), contentEquals(), compare(). 

Achar que dois objetos da mesma classe e com o mesmo
conteúdo devem ser == é o mesmo que dizer que japônes
é tudo igual :-). 

Como a classe String é imutável, não pode ser alterada,
o compilador otimiza o uso da memória usando o mesmo
objeto pras duas strings com mesmo conteúdo. Mas não
conte com isto em todas as versões e implementações.
Pode considerar que no exemplo o x só é igual ao y
por coincidência. 


Michel writes:
 Caro Luiz Barbosa, estou utilizando apenas para 
 exemplificar, se, antes da comparação, voce mandar 
 escrever na tela os valores de x e de y, serão ambos 
 de 100, mas o 1º ele considera iguais, o 2º não.
 Já que possuem valores iguais, não acha que ambos
 deveria retornar o mesmo valor na comparação (x == y)???

 ---
Mauro Ramos Martini
[EMAIL PROTECTED]
counter.li.org#225287 

-- LISTA SOUJAVA  
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP 
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED] 
-

-- LISTA SOUJAVA 
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED]
-




Fw: [java-list] Instâncias

2002-10-18 Por tôpico Caetano



Correto Rafael Vilardo e o JSams tb deu uma 
explicação muito boa.

Para fechar:

 String x = 
"100"; String y = new String("100");
 if(x == 
y) System.out.println("IGUAL!!!"); 
// não entra aqui.

Qualquer outro tipo de inicialização de y (que não 
seja o uso de literais, mesmo concatenadas, por exemplo), inclusive a partir da 
chamada a NEW vai quebrar a comparação do if acima, a não ser que utilizemos o 
método equals...porque os referências dos objetos em memória serão 
diferentes!!

[]'s
Caetano


- Original Message - 
From: [EMAIL PROTECTED] 

To: [EMAIL PROTECTED] 
Sent: Wednesday, October 16, 2002 12:04 PM
Subject: RES: [java-list] Instâncias

Vamos 
lá... no primeiro exemplo, como vc está usando uma string literal para 
inicializar as duas variáveis, na verdade o que acontece é uma otimização na 
hora da compilação, criando uma constante para representar a string literal. 
Sendo assim, as duas variáveis "apontam" para o mesmo objeto. Já quando vc usa o 
Integer.toString(100), um outro objeto é criado, por isso a comparação == não 
funciona. Qualquer dúvida, dá ma lida no www.precisejava.com, que têm uma sessão 
sobre otimização no uso de strings, entre outros ( ejb, servlets, loops, etc 
).

Abs,
Rafael 
Vilardo.
-Mensagem 
original-De: Michel [mailto:[EMAIL PROTECTED]]Enviada 
em: terça-feira, 15 de outubro de 2002 11:36Para: 
[EMAIL PROTECTED]Assunto: [java-list] 
Instâncias

  Olá galera!
   Para exemplificar minha 
  dúvida, mostrarei dois exemplos:
  -EXEMPLO 1--
  public static void main(String 
  args[])
  {
   String x = "100";
   String y = "100";
   if(x == y)

  System.out.println("IGUAL!!!")
  }
  EXEMPLO 2--
  public static void main(String 
  args[])
  {
   String x = "100";
   String y = 
  Integer.toString(100);
   if(x == y)

  System.out.println("IGUAL!!!");
  }
  
  No exemplo 1, aparece na tela "IGUAL!!!", no 
  exemplo 2 não aparece nada! 
  Sei que para comparar duas Strings tenho o mótodo 
  equals(String s), mas para fins de conhecimento, gostaria de saber por quê o 
  1º exemplo funciona e o 2º não.
  
  Obrigado.


RE: [java-list] Instâncias

2002-10-18 Por tôpico SILVA Rafael P CONFAB
Michel,

Vc tem toda razão. Não fui muito claro em minha explicação.
Onde já se viu mera coinscidência em programação?!?
Ou é TRUE ou é FALSE, depende de como os objetos serão instanciados.

Para obter TRUE:
String x = 100;
String y = 100;


Para obter FALSE:
String x = new String(100);
String y = new String(100);

Minhas desculpas...
[]'s

Rafael Pioli


-Original Message-
From: Michel [mailto:hewlet;ieg.com.br]
Sent: quarta-feira, 16 de outubro de 2002 12:17
To: [EMAIL PROTECTED]
Subject: Re: [java-list] Instâncias


Caro SILVA Rafael P CONFAB: O fato do 1º exemplo ter dado TRUE
definitivamente não é mera coincidência! Caiu no exame de programador o que
seria impresso, se fosse apenas coincidência, não poderíamos dar uma
resposta precisa!

- Original Message -
From: SILVA Rafael P CONFAB [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Tuesday, October 15, 2002 5:04 PM
Subject: RE: [java-list] Instâncias


Pessoal,

Tem muito mais coisas envolvidas nisso...
O fato da primeira comparação ter dado TRUE é pura coinscidência, tanto
poderia como não poderia ter dado TRUE.
A questão é como o Java aloca os objetos na memória e acaba reutilizando
objetos iguais com endereços diferentes.
Vale a pena dar uma olhada no tema HEAP, procurem na WEB.
Para quem tem o Core Java vol. 1 lá tb tem boas explicações.


-Original Message-
From: Giovani Salvador [mailto:giovani-salvador;procergs.rs.gov.br]
Sent: terça-feira, 15 de outubro de 2002 13:07
To: [EMAIL PROTECTED]
Subject: Re: [java-list] Instâncias


Legal a questão.
Depurei o código dentro do JBuilder e dei uma olhada nas propriedades dos
objetos.
No primeiro exemplo, tudo igual, no segundo, as propriedades Offset e
Value estavam diferentes.
Em Value foram considerados os zero à esquerda em 9 posições, por isso deu
diferente.

Abaixo, o código do método toString da classe Integer. Neste código é que
deu a diferença.

/**
 * Returns a codeString/code object representing the
 * specified integer. The argument is converted to signed decimal
 * representation and returned as a string, exactly as if the
 * argument and radix 10 were given as arguments to the {@link
mailto:{;link
 * #toString(int, int)} method.
 *
 * @param   i   an integer to be converted.
 * @return  a string representation of the argument in basenbsp;10.
 */

public static String toString(int i) {
 int q, r, charPos  ;
 charPos = 12 ;
 char buf [] = new char [charPos] ;
 char sign = 0 ;

   if (i == Integer.MIN_VALUE) {
return -2147483648;
}

 if (i  0) {
  sign = '-' ;
  i = -i ;
 }

 // Generate two digits per iteration
 while ( i = 65536 ) {
  q = i / 100 ;
  // really: r = i - (q * 100) ;
  r = i - ((q  6) + (q  5) + (q  2)) ;
  i = q ;
  buf [--charPos] = DigitOnes [r] ;
  buf [--charPos] = DigitTens [r] ;
 }

 // Fall thru to fast mode for smaller numbers
 // assert(i = 65536, i);
 for (;;) {
  q = (i * 52429)  (16+3) ;
  r = i - ((q  3) + (q  1)) ;  // r = i-(q*10) ...
  buf [--charPos] = digits [r] ;
  i = q ;
  if (i == 0) break ;
 }
 if (sign != 0) {
  buf [--charPos] = sign ;
 }


**
Giovani Salvador
Site pessoal - http://pagina.de/siglas http://pagina.de/siglas
(Siglas de informática)
PROCERGS - Cia. de Processamento de Dados do
Estado do Rio Grande do Sul - BRASIL
Setor TSI - Tecnologia para Sistemas de Informação
ICQ #44904309
**


- Original Message -
From: Michel mailto:hewlet;ieg.com.br
To: [EMAIL PROTECTED] mailto:java-list;soujava.org.br
Sent: Tuesday, October 15, 2002 11:36 AM
Subject: [java-list] Instâncias


Olá galera!
Para exemplificar minha dúvida, mostrarei dois exemplos:
-EXEMPLO 1--
public static void main(String args[])
{
String x = 100;
String y = 100;
if(x == y)
System.out.println(IGUAL!!!)
}
EXEMPLO 2--
public static void main(String args[])
{
String x = 100;
String y = Integer.toString(100);
if(x == y)
System.out.println(IGUAL!!!);
}

No exemplo 1, aparece na tela IGUAL!!!, no exemplo 2 não aparece nada!
Sei que para comparar duas Strings tenho o mótodo equals(String s), mas para
fins de conhecimento, gostaria de saber por quê o 1º exemplo funciona e o 2º
não.

Obrigado.


-- LISTA SOUJAVA 
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED]
-



-- LISTA SOUJAVA  
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP 
dúvidas mais comuns: http

Re: [java-list] Instâncias

2002-10-16 Por tôpico JSams



no primeiro, o compilador detecta q os valores das 
duas strings são iguais e por isso só cria uma referência na memória q 
aponta para o mesmo valor. Funciona pq o compilador detecta esse 
detalhe.

no segundo, vc volta uma referencia diferente para 
a variavel 'y' pq vc usa um método da classe Integer q retorna um objeto String, 
daí o pq de nao funcionar.

belê?

falowww

  - Original Message - 
  From: 
  Michel 
  To: [EMAIL PROTECTED] 
  Sent: Tuesday, October 15, 2002 11:36 
  AM
  Subject: [java-list] Instâncias
  
  Olá galera!
   Para exemplificar minha 
  dúvida, mostrarei dois exemplos:
  -EXEMPLO 1--
  public static void main(String 
  args[])
  {
   String x = "100";
   String y = "100";
   if(x == y)

  System.out.println("IGUAL!!!")
  }
  EXEMPLO 2--
  public static void main(String 
  args[])
  {
   String x = "100";
   String y = 
  Integer.toString(100);
   if(x == y)

  System.out.println("IGUAL!!!");
  }
  
  No exemplo 1, aparece na tela "IGUAL!!!", no 
  exemplo 2 não aparece nada! 
  Sei que para comparar duas Strings tenho o mótodo 
  equals(String s), mas para fins de conhecimento, gostaria de saber por quê o 
  1º exemplo funciona e o 2º não.
  
  Obrigado.


RE: [java-list] Instâncias

2002-10-16 Por tôpico SILVA Rafael P CONFAB

Pessoal,
 
Tem muito mais coisas envolvidas nisso...
O fato da primeira comparação ter dado TRUE é pura coinscidência, tanto
poderia como não poderia ter dado TRUE.
A questão é como o Java aloca os objetos na memória e acaba reutilizando
objetos iguais com endereços diferentes.
Vale a pena dar uma olhada no tema HEAP, procurem na WEB.
Para quem tem o Core Java vol. 1 lá tb tem boas explicações.
 

-Original Message-
From: Giovani Salvador [mailto:[EMAIL PROTECTED]]
Sent: terça-feira, 15 de outubro de 2002 13:07
To: [EMAIL PROTECTED]
Subject: Re: [java-list] Instâncias


Legal a questão.
Depurei o código dentro do JBuilder e dei uma olhada nas propriedades dos
objetos.
No primeiro exemplo, tudo igual, no segundo, as propriedades Offset e
Value estavam diferentes.
Em Value foram considerados os zero à esquerda em 9 posições, por isso deu
diferente.
 
Abaixo, o código do método toString da classe Integer. Neste código é que
deu a diferença.
 
/**
 * Returns a codeString/code object representing the
 * specified integer. The argument is converted to signed decimal
 * representation and returned as a string, exactly as if the
 * argument and radix 10 were given as arguments to the {@link
mailto:{@link 
 * #toString(int, int)} method.
 *
 * @param   i   an integer to be converted.
 * @return  a string representation of the argument in basenbsp;10.
 */
 
public static String toString(int i) {
 int q, r, charPos  ; 
 charPos = 12 ; 
 char buf [] = new char [charPos] ; 
 char sign = 0 ; 
 
   if (i == Integer.MIN_VALUE) {
return -2147483648;
}
 
 if (i  0) { 
  sign = '-' ; 
  i = -i ; 
 }
 
 // Generate two digits per iteration
 while ( i = 65536 ) { 
  q = i / 100 ; 
  // really: r = i - (q * 100) ; 
  r = i - ((q  6) + (q  5) + (q  2)) ; 
  i = q ; 
  buf [--charPos] = DigitOnes [r] ; 
  buf [--charPos] = DigitTens [r] ; 
 }
 
 // Fall thru to fast mode for smaller numbers
 // assert(i = 65536, i);
 for (;;) { 
  q = (i * 52429)  (16+3) ; 
  r = i - ((q  3) + (q  1)) ;  // r = i-(q*10) ...
  buf [--charPos] = digits [r] ; 
  i = q ; 
  if (i == 0) break ; 
 }
 if (sign != 0) {
  buf [--charPos] = sign ; 
 }

 
**
Giovani Salvador
Site pessoal - http://pagina.de/siglas http://pagina.de/siglas 
(Siglas de informática)
PROCERGS - Cia. de Processamento de Dados do 
Estado do Rio Grande do Sul - BRASIL
Setor TSI - Tecnologia para Sistemas de Informação
ICQ #44904309
**
 

- Original Message - 
From: Michel mailto:[EMAIL PROTECTED]  
To: [EMAIL PROTECTED] mailto:[EMAIL PROTECTED]  
Sent: Tuesday, October 15, 2002 11:36 AM
Subject: [java-list] Instâncias


Olá galera!
Para exemplificar minha dúvida, mostrarei dois exemplos:
-EXEMPLO 1--
public static void main(String args[])
{
String x = 100;
String y = 100;
if(x == y)
System.out.println(IGUAL!!!)
}
EXEMPLO 2--
public static void main(String args[])
{
String x = 100;
String y = Integer.toString(100);
if(x == y)
System.out.println(IGUAL!!!);
}
 
No exemplo 1, aparece na tela IGUAL!!!, no exemplo 2 não aparece nada! 
Sei que para comparar duas Strings tenho o mótodo equals(String s), mas para
fins de conhecimento, gostaria de saber por quê o 1º exemplo funciona e o 2º
não.
 
Obrigado.


-- LISTA SOUJAVA 
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED]
-




RE: [java-list] Instâncias

2002-10-16 Por tôpico Rafael Siqueira
Title: Message











Caro
Michel,

No
Exemplo1, para salvar espaço e reduzir a complexidade, até mesmo duas strings
são inicializadas, o compilador Java cria somente um espaço na memória para
armazenar 100 quando o main é executado. O espaço da memória é
compartilhado pelos dois objetos Strings na hora da compilação, e as variáveis
x e y são simplismente ponteiro para o mesmo espaço de memória. Por isto,
que você ve plotar IGUAL quando utiliza ==, os dois são o mesmo espaço de
memória.

No
Exemplo 2,quando o código Java é executado, o conteúdo das Strings x, y
será omesmo: a string 100. Entretanto, eles não irão
apontar para o mesmo local de memória, então ele não plotará IGUAL neste caso.
O objeto String x é alocado e recebe o valor 100 na hora da
compilação. Jáo objeto String y é alocado e recebe o valor
100 na hora que o programa roda, portanto ele aloca outro espaço de
memória diferente.

Espero
ter ajudado.



Rafael Siqueira

Webraska do Brasil (Mobiminds)

Director of Development -
Automotive Division

Tel.: +55-11-3518-9080
r.208

[EMAIL PROTECTED]







Perdido?Visite 









-Original
Message-
From: Michel
[mailto:[EMAIL PROTECTED]] 
Sent: terça-feira, 15 de outubro
de 2002 11:36
To: [EMAIL PROTECTED]
Subject: [java-list] Instâncias



Olá galera!





 Para
exemplificar minha dúvida, mostrarei dois exemplos:





-EXEMPLO 1--





public static void
main(String args[])





{





 String x = 100;





 String y = 100;





 if(x == y)





  System.out.println(IGUAL!!!)





}





EXEMPLO
2--





public static void
main(String args[])





{





 String x = 100;





 String y = Integer.toString(100);





 if(x == y)





  System.out.println(IGUAL!!!);





}











No exemplo 1, aparece na tela
IGUAL!!!, no exemplo 2 não aparece nada! 





Sei que para comparar duas
Strings tenho o mótodo equals(String s), mas para fins de conhecimento,
gostaria de saber por quê o 1º exemplo funciona e o 2º não.











Obrigado.












Re: [java-list] Instâncias

2002-10-16 Por tôpico Michel

Caro SILVA Rafael P CONFAB: O fato do 1º exemplo ter dado TRUE
definitivamente não é mera coincidência! Caiu no exame de programador o que
seria impresso, se fosse apenas coincidência, não poderíamos dar uma
resposta precisa!

- Original Message -
From: SILVA Rafael P CONFAB [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Tuesday, October 15, 2002 5:04 PM
Subject: RE: [java-list] Instâncias


Pessoal,

Tem muito mais coisas envolvidas nisso...
O fato da primeira comparação ter dado TRUE é pura coinscidência, tanto
poderia como não poderia ter dado TRUE.
A questão é como o Java aloca os objetos na memória e acaba reutilizando
objetos iguais com endereços diferentes.
Vale a pena dar uma olhada no tema HEAP, procurem na WEB.
Para quem tem o Core Java vol. 1 lá tb tem boas explicações.


-Original Message-
From: Giovani Salvador [mailto:[EMAIL PROTECTED]]
Sent: terça-feira, 15 de outubro de 2002 13:07
To: [EMAIL PROTECTED]
Subject: Re: [java-list] Instâncias


Legal a questão.
Depurei o código dentro do JBuilder e dei uma olhada nas propriedades dos
objetos.
No primeiro exemplo, tudo igual, no segundo, as propriedades Offset e
Value estavam diferentes.
Em Value foram considerados os zero à esquerda em 9 posições, por isso deu
diferente.

Abaixo, o código do método toString da classe Integer. Neste código é que
deu a diferença.

/**
 * Returns a codeString/code object representing the
 * specified integer. The argument is converted to signed decimal
 * representation and returned as a string, exactly as if the
 * argument and radix 10 were given as arguments to the {@link
mailto:{@link
 * #toString(int, int)} method.
 *
 * @param   i   an integer to be converted.
 * @return  a string representation of the argument in basenbsp;10.
 */

public static String toString(int i) {
 int q, r, charPos  ;
 charPos = 12 ;
 char buf [] = new char [charPos] ;
 char sign = 0 ;

   if (i == Integer.MIN_VALUE) {
return -2147483648;
}

 if (i  0) {
  sign = '-' ;
  i = -i ;
 }

 // Generate two digits per iteration
 while ( i = 65536 ) {
  q = i / 100 ;
  // really: r = i - (q * 100) ;
  r = i - ((q  6) + (q  5) + (q  2)) ;
  i = q ;
  buf [--charPos] = DigitOnes [r] ;
  buf [--charPos] = DigitTens [r] ;
 }

 // Fall thru to fast mode for smaller numbers
 // assert(i = 65536, i);
 for (;;) {
  q = (i * 52429)  (16+3) ;
  r = i - ((q  3) + (q  1)) ;  // r = i-(q*10) ...
  buf [--charPos] = digits [r] ;
  i = q ;
  if (i == 0) break ;
 }
 if (sign != 0) {
  buf [--charPos] = sign ;
 }


**
Giovani Salvador
Site pessoal - http://pagina.de/siglas http://pagina.de/siglas
(Siglas de informática)
PROCERGS - Cia. de Processamento de Dados do
Estado do Rio Grande do Sul - BRASIL
Setor TSI - Tecnologia para Sistemas de Informação
ICQ #44904309
**


- Original Message -
From: Michel mailto:[EMAIL PROTECTED]
To: [EMAIL PROTECTED] mailto:[EMAIL PROTECTED]
Sent: Tuesday, October 15, 2002 11:36 AM
Subject: [java-list] Instâncias


Olá galera!
Para exemplificar minha dúvida, mostrarei dois exemplos:
-EXEMPLO 1--
public static void main(String args[])
{
String x = 100;
String y = 100;
if(x == y)
System.out.println(IGUAL!!!)
}
EXEMPLO 2--
public static void main(String args[])
{
String x = 100;
String y = Integer.toString(100);
if(x == y)
System.out.println(IGUAL!!!);
}

No exemplo 1, aparece na tela IGUAL!!!, no exemplo 2 não aparece nada!
Sei que para comparar duas Strings tenho o mótodo equals(String s), mas para
fins de conhecimento, gostaria de saber por quê o 1º exemplo funciona e o 2º
não.

Obrigado.


-- LISTA SOUJAVA 
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED]
-



-- LISTA SOUJAVA  
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP 
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED] 
-




RES: [java-list] Instâncias

2002-10-16 Por tôpico RVilardo



Vamos 
lá... no primeiro exemplo, como vc está usando uma string literal para 
inicializar as duas variáveis, na verdade o que acontece é uma otimização na 
hora da compilação, criando uma constante para representar a string literal. 
Sendo assim, as duas variáveis "apontam" para o mesmo objeto. Já quando vc usa o 
Integer.toString(100), um outro objeto é criado, por isso a comparação == não 
funciona. Qualquer dúvida, dá ma lida no www.precisejava.com, que têm uma sessão 
sobre otimização no uso de strings, entre outros ( ejb, servlets, loops, etc 
).

Abs,
Rafael 
Vilardo.
-Mensagem 
original-De: Michel [mailto:[EMAIL PROTECTED]]Enviada 
em: terça-feira, 15 de outubro de 2002 11:36Para: 
[EMAIL PROTECTED]Assunto: [java-list] 
Instâncias

  Olá galera!
   Para exemplificar minha 
  dúvida, mostrarei dois exemplos:
  -EXEMPLO 1--
  public static void main(String 
  args[])
  {
   String x = "100";
   String y = "100";
   if(x == y)

  System.out.println("IGUAL!!!")
  }
  EXEMPLO 2--
  public static void main(String 
  args[])
  {
   String x = "100";
   String y = 
  Integer.toString(100);
   if(x == y)

  System.out.println("IGUAL!!!");
  }
  
  No exemplo 1, aparece na tela "IGUAL!!!", no 
  exemplo 2 não aparece nada! 
  Sei que para comparar duas Strings tenho o mótodo 
  equals(String s), mas para fins de conhecimento, gostaria de saber por quê o 
  1º exemplo funciona e o 2º não.
  
  Obrigado.


[java-list] Instâncias

2002-10-15 Por tôpico Michel



Olá galera!
 Para exemplificar minha dúvida, 
mostrarei dois exemplos:
-EXEMPLO 1--
public static void main(String args[])
{
 String x = "100";
 String y = "100";
 if(x == y)
  
System.out.println("IGUAL!!!")
}
EXEMPLO 2--
public static void main(String args[])
{
 String x = "100";
 String y = 
Integer.toString(100);
 if(x == y)
  
System.out.println("IGUAL!!!");
}

No exemplo 1, aparece na tela "IGUAL!!!", no 
exemplo 2 não aparece nada! 
Sei que para comparar duas Strings tenho o mótodo 
equals(String s), mas para fins de conhecimento, gostaria de saber por quê o 1º 
exemplo funciona e o 2º não.

Obrigado.


Re: [java-list] Instâncias

2002-10-15 Por tôpico Dalton




Michael,
Voc est tentando comparar dois valores de tipos primrios distintos.
Para que o exemplo 2 seja verdadeiro, como voc mesmo disse, voc teria que
utilizar o .equals ou o parseInt.

 if(Integer.parseInt(x) == Integer.parseInt(y))
   System.out.println("IGUAL!!!");

Bem, espero ter ajudado.

[]'s
Dalton
___
www.portaljava.com

O seu portal sobre java em portugus!



Michel wrote:

  
  
  Ol galera!
   Para exemplificar minha dvida,  mostrarei
dois exemplos:
  -EXEMPLO 1--
  public static void main(String args[])
  {
   String x = "100";
   String y = "100";
   if(x == y)
 System.out.println("IGUAL!!!")
  }
  EXEMPLO 2--
  public static void main(String args[])
  {
   String x = "100";
   String y =  Integer.toString(100);
   if(x == y)
 System.out.println("IGUAL!!!");
  }
  
  No exemplo 1, aparece na tela "IGUAL!!!",
no  exemplo 2 no aparece nada! 
  Sei que para comparar duas Strings tenho
o mtodo  equals(String s), mas para fins de conhecimento, gostaria de saber
por qu o 1  exemplo funciona e o 2 no.
  
  Obrigado.







-- LISTA SOUJAVA  
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP 
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED] 
-



Re: [java-list] Instâncias

2002-10-15 Por tôpico luizbarbosa



Por que no segundo exemplo vc esta usando integer 
que é numérico!!

  - Original Message - 
  From: 
  Michel 
  To: [EMAIL PROTECTED] 
  Sent: Tuesday, October 15, 2002 11:36 
  AM
  Subject: [java-list] Instâncias
  
  Olá galera!
   Para exemplificar minha 
  dúvida, mostrarei dois exemplos:
  -EXEMPLO 1--
  public static void main(String 
  args[])
  {
   String x = "100";
   String y = "100";
   if(x == y)

  System.out.println("IGUAL!!!")
  }
  EXEMPLO 2--
  public static void main(String 
  args[])
  {
   String x = "100";
   String y = 
  Integer.toString(100);
   if(x == y)

  System.out.println("IGUAL!!!");
  }
  
  No exemplo 1, aparece na tela "IGUAL!!!", no 
  exemplo 2 não aparece nada! 
  Sei que para comparar duas Strings tenho o mótodo 
  equals(String s), mas para fins de conhecimento, gostaria de saber por quê o 
  1º exemplo funciona e o 2º não.
  
  Obrigado.


Re: [java-list] Instâncias

2002-10-15 Por tôpico Giovani Salvador



Legal a questão.
Depurei o código dentro do JBuilder e dei uma 
olhada nas propriedades dos objetos.
No primeiro exemplo, tudo igual, no segundo, as 
propriedades "Offset" e "Value" estavam diferentes.
Em "Value" foram considerados os zero à esquerda em 
9 posições, por isso deu diferente.

Abaixo, o código do método toString da classe 
Integer. Neste código é que deu a diferença.

 /** 
* Returns a codeString/code object representing 
the * specified integer. The argument is converted 
to signed decimal * representation and returned as a 
string, exactly as if the * argument and radix 10 
were given as arguments to the {@link * #toString(int, 
int)} method. * * 
@param i an integer to be 
converted. * @return a string representation 
of the argument in basenbsp;10. */

public static String toString(int i) {int 
q, r, charPos ; charPos = 12 ; char buf [] = new char 
[charPos] ; char sign = 0 ; 

 if (i == Integer.MIN_VALUE) 
{ return 
"-2147483648"; }

if (i  0) { sign = '-' ; 
i = -i ; }

// Generate two digits per 
iterationwhile ( i = 65536 ) { q = i / 100 ; 
// really: r = i - (q * 100) ; r = i - ((q 
 6) + (q  5) + (q  2)) ; i = q ; 
buf [--charPos] = DigitOnes [r] ; buf 
[--charPos] = DigitTens [r] ; }

// Fall thru to fast mode for smaller 
numbers// assert(i = 65536, i);for (;;) { 
q = (i * 52429)  (16+3) ; r = i - 
((q  3) + (q  1)) ;// r = i-(q*10) 
...buf [--charPos] = digits [r] ; i = q ; 
if (i == 0) break ; }if (sign != 0) 
{buf [--charPos] = sign ; }

**Giovani 
SalvadorSite pessoal - http://pagina.de/siglas(Siglas de 
informática)PROCERGS - Cia. de Processamento de Dados do Estado do Rio 
Grande do Sul - BRASILSetor TSI - Tecnologia para Sistemas de 
InformaçãoICQ 
#44904309**


  - Original Message - 
  From: 
  Michel 
  To: [EMAIL PROTECTED] 
  Sent: Tuesday, October 15, 2002 11:36 
  AM
  Subject: [java-list] Instâncias
  
  Olá galera!
   Para exemplificar minha 
  dúvida, mostrarei dois exemplos:
  -EXEMPLO 1--
  public static void main(String 
  args[])
  {
   String x = "100";
   String y = "100";
   if(x == y)

  System.out.println("IGUAL!!!")
  }
  EXEMPLO 2--
  public static void main(String 
  args[])
  {
   String x = "100";
   String y = 
  Integer.toString(100);
   if(x == y)

  System.out.println("IGUAL!!!");
  }
  
  No exemplo 1, aparece na tela "IGUAL!!!", no 
  exemplo 2 não aparece nada! 
  Sei que para comparar duas Strings tenho o mótodo 
  equals(String s), mas para fins de conhecimento, gostaria de saber por quê o 
  1º exemplo funciona e o 2º não.
  
  Obrigado.


[java-list] Re:[java-list] Instâncias

2002-10-15 Por tôpico azampella

Porque no segundo exemplo ele não faz a comparação da
String e sim da String com os bytes referentes a String
que gerou na instancia criada no metodo acima...
Porem desaconselho a comparação entre Stringfs com o
operador de comparação, tente sempre usar o equals.


__
Encontre sempre uma linha desocupada com o Discador BOL!
http://www.bol.com.br/discador
Ainda não tem AcessoBOL? Assine já! http://www.bol.com.br/acessobol



-- LISTA SOUJAVA 
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED]
-




Re: [java-list] Instâncias

2002-10-15 Por tôpico Itamar Almeida de Carvalho

Vc deve sempre se lembrar que strings em Java são instâncias da classe
String, logo são objetos como quaisquer outros.

x e y, no seu exemplo, são referências para objetos String.  Quando vc
cria constantes String, a maioria dos compiladores Java compartilha
constantes string no mesmo endereço, logo as referências ficam iguais.

Nos seu primeiro exemplo, as duas constantes são compartilhadas na mesma
posição de memória, pois se tratam da mesma constantes string, logo x e
y são iguais.

No segundo exemplo, como vc usa Integer.toString(100), o compilador não
tenta compartilhar o endereço, e armazena a string em uma posição de
memória diferente, logo x e y têm valores diferentes.

Por isso que só funciona bem a comparação de strings usando
x.equals(y), porque o operador == compara não o conteúdo das
strings, mas o valor de suas referências.

Em Ter, 2002-10-15 às 11:36, Michel escreveu:
 Olá galera!
 Para exemplificar minha dúvida, mostrarei dois exemplos:
 -EXEMPLO 1--
 public static void main(String args[])
 {
 String x = 100;
 String y = 100;
 if(x == y)
 System.out.println(IGUAL!!!)
 }
 EXEMPLO 2--
 public static void main(String args[])
 {
 String x = 100;
 String y = Integer.toString(100);
 if(x == y)
 System.out.println(IGUAL!!!);
 }
 
 No exemplo 1, aparece na tela IGUAL!!!, no exemplo 2 não aparece nada! 
 Sei que para comparar duas Strings tenho o mótodo equals(String s), mas para fins de 
conhecimento, gostaria de saber por quê o 1º exemplo funciona e o 2º não.
 
 Obrigado.

Atenciosamente,
-- 
Itamar Almeida de Carvalho
Desenvolvimento de Sistemas
[EMAIL PROTECTED] - (+85) 281-2223
Oktiva Telecomunicações e Informática Ltda
http://www.oktiva.com.br



signature.asc
Description: PGP signature


RE: [java-list] Instâncias

2002-10-15 Por tôpico Vieira, Pablo O.
Title: Message



Michel,
Vc, 
provavelmente, sabe que "String" não é um tipo primitivo e por isso quando vc 
compara dois tipos não-primitivos com " == " vc está na realidade está 
comparando as instãncias (referências) e não o seu conteúdo(como vc escreveu: 
"...tenho o mótodo equals(String s)" ).Por 
exemplo: 


String 
a1 = new String("A");
Stringa2 = new String("A");

a1 == a2 é false 

agora 
quando vc cria uma string assim:

String 
a1 = "A";
String 
a2 = "A";

a1==a2 é true

Isso 
acontece por que, ao cirar uma String assim (String a1 = "A";), a string é armazenada em um 
buffer de strings para que o seu uso seja mais ágil (particularidade da classe 
String...) e quando elas são comparadascom "==" o 
conteúdo é comparado caracter a caracter, e não suas 
instâncias.

espero 
ter ajudado,


Michel 
wrote:

  



Olá galera!
 Para exemplificar minha 
dúvida, mostrarei dois exemplos:
-EXEMPLO 
1--
public static void main(String 
args[])
{
 String x = 
"100";
 String y = 
"100";
 if(x == y)
  
System.out.println("IGUAL!!!")
}
EXEMPLO 2--
public static void main(String 
args[])
{
 String x = 
"100";
 String y = 
Integer.toString(100);
 if(x == y)
  
System.out.println("IGUAL!!!");
}

No exemplo 1, aparece na tela "IGUAL!!!", no 
exemplo 2 não aparece nada! 
Sei que para comparar duas Strings tenho o 
mótodo equals(String s), mas para fins de conhecimento, gostaria de saber 
por quê o 1º exemplo funciona e o 2º não.

Obrigado.-- 
  LISTA SOUJAVA  http://www.soujava.org.br - 
  Sociedade de Usuários Java da Sucesu-SP dúvidas mais comuns: 
  http://www.soujava.org.br/faq.htm regras da lista: 
  http://www.soujava.org.br/regras.htm historico: 
  http://www.mail-archive.com/java-list%40soujava.org.br para sair da lista: 
  envie email para [EMAIL PROTECTED] 
  - 



Re: [java-list] Instâncias

2002-10-15 Por tôpico Roberto Hideki



No exemplo 1, x e y referenciam o mesmo objeto 
('100") dentro do programa. Como é uma constanteqq. linguagem não definirá 
internamente dois "100", mas somente um "100". Assim a referencia para os dois 
String é a mesma.

No exemplo 2, o resultado de "String x = 
Integer.toString(100)" é um outro objeto totalmente diferente de "100", apesar 
do conteúdo ser o mesmo. A saida desse metodo é sempre um NOVO objeto String, 
assim as referencia são diferentes.

Se voce mudar o exemplo 1 para "String x = new 
String("100)" e "Stringy = new String("100)" a condição não será mais 
igual, pois se trata de dois objetos DISTINTOS, com conteudos 
iguais.

Roberto Tatemoto



  Subject: [java-list] Instâncias
  
  Olá galera!
   Para exemplificar minha 
  dúvida, mostrarei dois exemplos:
  -EXEMPLO 1--
  public static void main(String 
  args[])
  {
   String x = "100";
   String y = "100";
   if(x == y)

  System.out.println("IGUAL!!!")
  }
  EXEMPLO 2--
  public static void main(String 
  args[])
  {
   String x = "100";
   String y = 
  Integer.toString(100);
   if(x == y)

  System.out.println("IGUAL!!!");
  }
  
  No exemplo 1, aparece na tela "IGUAL!!!", no 
  exemplo 2 não aparece nada! 
  Sei que para comparar duas Strings tenho o mótodo 
  equals(String s), mas para fins de conhecimento, gostaria de saber por quê o 
  1º exemplo funciona e o 2º não.
  
  Obrigado.


Re: [java-list] Instâncias

2002-10-15 Por tôpico Giovani Salvador



Só para complementar o que falei, ainda no fim do 
método toString, existe o retorno de uma nova instância de String. O == compara 
referências e no caso não seriam as mesmas pois são duas instâncias 
diferentes.

  - Original Message - 
  From: 
  Giovani Salvador 
  To: [EMAIL PROTECTED] 
  Sent: Tuesday, October 15, 2002 1:06 
  PM
  Subject: Re: [java-list] Instâncias
  
  Legal a questão.
  Depurei o código dentro do JBuilder e dei uma 
  olhada nas propriedades dos objetos.
  No primeiro exemplo, tudo igual, no segundo, as 
  propriedades "Offset" e "Value" estavam diferentes.
  Em "Value" foram considerados os zero à esquerda 
  em 9 posições, por isso deu diferente.
  
  Abaixo, o código do método toString da classe 
  Integer. Neste código é que deu a diferença.
  
   
  /** * Returns a codeString/code 
  object representing the * specified integer. The 
  argument is converted to signed decimal * 
  representation and returned as a string, exactly as if 
  the * argument and radix 10 were given as 
  arguments to the {@link * #toString(int, 
  int)} method. * * 
  @param i an integer to be 
  converted. * @return a string representation 
  of the argument in basenbsp;10. 
  */
  
  public static String toString(int i) 
  {int q, r, charPos ; charPos = 12 ; char 
  buf [] = new char [charPos] ; char sign = 0 ; 
  
   if (i == Integer.MIN_VALUE) 
  { return 
  "-2147483648"; }
  
  if (i  0) { sign = '-' 
  ; i = -i ; }
  
  // Generate two digits per 
  iterationwhile ( i = 65536 ) { q = i / 100 ; 
  // really: r = i - (q * 100) ; r = i - ((q 
   6) + (q  5) + (q  2)) ; i = q ; 
  buf [--charPos] = DigitOnes [r] ; buf 
  [--charPos] = DigitTens [r] ; }
  
  // Fall thru to fast mode for smaller 
  numbers// assert(i = 65536, i);for (;;) { 
  q = (i * 52429)  (16+3) ; r = i - 
  ((q  3) + (q  1)) ;// r = i-(q*10) 
  ...buf [--charPos] = digits [r] ; i = q ; 
  if (i == 0) break ; }if (sign != 0) 
  {buf [--charPos] = sign ; }
  
  **Giovani 
  SalvadorSite pessoal - http://pagina.de/siglas(Siglas de 
  informática)PROCERGS - Cia. de Processamento de Dados do Estado do Rio 
  Grande do Sul - BRASILSetor TSI - Tecnologia para Sistemas de 
  InformaçãoICQ 
  #44904309**
  
  
- Original Message - 
From: 
Michel 
To: [EMAIL PROTECTED] 
Sent: Tuesday, October 15, 2002 11:36 
    AM
Subject: [java-list] Instâncias

Olá galera!
 Para exemplificar minha 
dúvida, mostrarei dois exemplos:
-EXEMPLO 
1--
public static void main(String 
args[])
{
 String x = 
"100";
 String y = 
"100";
 if(x == y)
  
System.out.println("IGUAL!!!")
}
EXEMPLO 2--
public static void main(String 
args[])
{
 String x = 
"100";
 String y = 
Integer.toString(100);
 if(x == y)
  
System.out.println("IGUAL!!!");
}

No exemplo 1, aparece na tela "IGUAL!!!", no 
exemplo 2 não aparece nada! 
Sei que para comparar duas Strings tenho o 
mótodo equals(String s), mas para fins de conhecimento, gostaria de saber 
por quê o 1º exemplo funciona e o 2º não.

Obrigado.


RES: [java-list] Instâncias

2002-10-15 Por tôpico Rosfran Lins Borges












A diferença é que no primeiro exemplo, a declaração das duas variáveis
String (x e y) são uma forma especial de inicialização em Java, porque os
valores à direita do operador de atribuição são literais, e não objetos String.
Os literais tem todos os atributos e procedimentos da classe String, mas são
alocados, em tempo de compilação, numa estrutura chamada "pool de Strings".
Ao serem alocados, relaciona-se um valor canônico a cada uma dessas literais,
que visa identificar unicamente String's de valores iguais. Esse valor que
se relaciona a cada String é obtido através do método "intern()",
da classe String. Quando esse método é explicitamente chamado, seja numa variável
String do tipo literal ou objeto, caso essa String já se encontre no pool de
String's, o valor do pool é obtido. Caso contrário, se a String em questão
não estiver no pool, o método intern() coloca ela no pool, e retorna a referência
atual do objeto String. Simplificando: 

     para quaisquer objetos s e t, da classe String,
s.intern() == t.intern(), se e somente se s.equals(t) retorna true... 

    Nas
variáveis String do tipo literal, o método intern() é "implicitamente"
chamado, sempre que necessário, em operações de comparação, por exemplo.
Valores retornados por métodos, como o toString() da classe Integer, não
retorna valores literais, e sim uma referência para o objeto String de retorno
do método, que varia de acordo com posição alocada por esse valor na área de
heap da memória do programa, definida e estruturada dinamicamente em tempo de execução.





Rosfran Lins Borges

Analista de Sistemas - NDS

[EMAIL PROTECTED]

Fóton® Informática e Serviços

Fone: (61) 328 5060 R.: 272





-Mensagem original-
De: Michel
[mailto:[EMAIL PROTECTED]] 
Enviada em: terça-feira, 15 de
outubro de 2002 11:36
Para: [EMAIL PROTECTED]
Assunto: [java-list] Instâncias





Olá galera!





 Para exemplificar
minha dúvida, mostrarei dois exemplos:





-EXEMPLO 1--





public static void main(String
args[])





{





 String x =
100;





 String y =
100;





 if(x == y)






 System.out.println(IGUAL!!!)





}





EXEMPLO 2--





public static void main(String
args[])





{





 String x =
100;





 String y =
Integer.toString(100);





 if(x == y)






 System.out.println(IGUAL!!!);





}











No exemplo 1, aparece na tela
IGUAL!!!, no exemplo 2 não aparece nada! 





Sei que para comparar duas Strings
tenho o mótodo equals(String s), mas para fins de conhecimento, gostaria de
saber por quê o 1º exemplo funciona e o 2º não.











Obrigado.










Re: [java-list] Instâncias

2002-10-15 Por tôpico Michel



 Caro Luiz Barbosa, estou 
utilizando apenas para exemplificar, se, antes da comparação, voce mandar 
escrever na tela os valores de x e de y, serão ambos de "100", mas o 1º ele 
considera iguais, o 2º não. Já que possuem valores iguais, não acha que ambos 
deveria retornar o mesmo valor na comparação (x == y)???

  - Original Message - 
  From: 
  luizbarbosa 
  To: [EMAIL PROTECTED] 
  Sent: Tuesday, October 15, 2002 12:48 
  PM
  Subject: Re: [java-list] Instâncias
  
  Por que no segundo exemplo vc esta usando integer 
  que é numérico!!
  
- Original Message - 
From: 
Michel 
To: [EMAIL PROTECTED] 
Sent: Tuesday, October 15, 2002 11:36 
AM
Subject: [java-list] Instâncias

Olá galera!
 Para exemplificar minha 
dúvida, mostrarei dois exemplos:
-EXEMPLO 
1--
public static void main(String 
args[])
{
 String x = 
"100";
 String y = 
"100";
 if(x == y)
  
System.out.println("IGUAL!!!")
}
EXEMPLO 2--
public static void main(String 
args[])
{
 String x = 
"100";
 String y = 
Integer.toString(100);
 if(x == y)
  
System.out.println("IGUAL!!!");
}

No exemplo 1, aparece na tela "IGUAL!!!", no 
exemplo 2 não aparece nada! 
Sei que para comparar duas Strings tenho o 
mótodo equals(String s), mas para fins de conhecimento, gostaria de saber 
por quê o 1º exemplo funciona e o 2º não.

Obrigado.


[java-list] Instâncias no Microsoft SQL Server e Tabelas Temporárias

2002-03-01 Por tôpico Alex Takayama



Olá pessoal da lista!!

Estou criando uma aplicação para rodar em WebSphere 
com o banco de dados Microsoft SQL Server. Para fazer a conexão estou utilizando 
o Driver FreeTDS que é um driver free que vc pode baixar no http://www.freetds.org, entretanto ele não 
suporta conexão com uma instância do SQL Server que se encontre debaixa da 
instância principal. Exemplo:

DOTCOM\CLIENTES

Recentemente baixei o driver para SQL Server 2000 
no site da Microsoft e também não rola.
Além disso estou tendo problemas ao trabalhar com 
Stored Procedures que executem operações e retornem registros de tabelas 
temporárias.

Alguém já passou por uma situação parecida ou 
conheça algum driver que possa recomendar.

Valleww, galera!!

Alex