Java.lang.StackOverflowError

Boa tarde pessoal, sou novato aqui e estava fazendo um trabalho da universidade sobre o algoritmo de ordenação QuickSort. Abaixo meu codigo:

public class QuickSort {
	int vet[];
	
	public void inicia(int v[]){
		this.vet = v;
		quickSort(vet, 0, vet.length-1);
	}
	
	public void quickSort(int[] vet, int ini, int fim) {
		int meio;

		if (ini < fim) {
			meio = partition(vet, ini, fim);
			quickSort(vet, ini, meio);
			quickSort(vet, meio + 1, fim);
		}
	}

	public int partition(int[] vet, int ini, int fim) {
		int pivo, topo, i;
		pivo = vet[ini];
		topo = ini;

		for (i = ini + 1; i <= fim; i++) {
			if (vet[i] < pivo) {
				vet[topo] = vet[i];
				vet[i] = vet[topo + 1];
				topo++;
			}
		}
		vet[topo] = pivo;
		return topo;
	}

	public int[] getVet() {
		return vet;
	}
	
}

Ele funciona bem até 7000 elementos, mas após isso ele passa a dar o seguinte erro:

[color=red]
Exception in thread “main” java.lang.StackOverflowError
at ordenacao.QuickSort.quickSort(QuickSort.java:15)
at ordenacao.QuickSort.quickSort(QuickSort.java:17)
at ordenacao.QuickSort.quickSort(QuickSort.java:17)

[/color]

Alguém poderia me explicar por q isso está acontecendo?

Coloque o static no metodo quickSort e no partition que funcionar.


public class QuickSort {  
        
        public static void main(String[] agrs){
            
            int vet[] = new int[8000];
            for (int i = 7999; i &gt; 0; i--) {
                vet[i] = i;
            }
            QuickSort qs = new QuickSort();
            qs.inicia(vet);  
            for(int it : vet){
            System.out.println(it);}
            
        }
        
        int vet[];  
          
        public void inicia(int v[]){  
            this.vet = v;  
            quickSort(vet, 0, vet.length-1);  
        }  
          
        public static void quickSort(int[] vet, int ini, int fim) {  //coloque o static
        int meio;  
  
        if (ini &lt; fim) {  
            meio = partition(vet, ini, fim);  
            quickSort(vet, ini, meio);  
            quickSort(vet, meio + 1, fim);  
        }  
    }  
  
    public static int partition(int[] vet, int ini, int fim) {   //coloque o static
        int pivo, topo, i;  
        pivo = vet[ini];  
        topo = ini;  
  
        for (i = ini + 1; i &lt;= fim; i++) {  
            if (vet[i] &lt; pivo) {  
                vet[topo] = vet[i];  
                vet[i] = vet[topo + 1];  
                topo++;  
            }  
        }  
        vet[topo] = pivo;  
        return topo;  
    }  
  
    public int[] getVet() {  
        return vet;  
    }  
    }  

[quote=jonatha java]Coloque o static no metodo quickSort e no partition que funcionar.

[code]

public class QuickSort {

    public static void main(String[] agrs){
        
        int vet[] = new int[8000];
        for (int i = 7999; i &gt; 0; i--) {
            vet[i] = i;
        }
        QuickSort qs = new QuickSort();
        qs.inicia(vet);  
        for(int it : vet){
        System.out.println(it);}
        
    }
    
    int vet[];  
      
    public void inicia(int v[]){  
        this.vet = v;  
        quickSort(vet, 0, vet.length-1);  
    }  
      
    public static void quickSort(int[] vet, int ini, int fim) {  //coloque o static
    int meio;  

    if (ini &lt; fim) {  
        meio = partition(vet, ini, fim);  
        quickSort(vet, ini, meio);  
        quickSort(vet, meio + 1, fim);  
    }  
}  

public static int partition(int[] vet, int ini, int fim) {   //coloque o static
    int pivo, topo, i;  
    pivo = vet[ini];  
    topo = ini;  

    for (i = ini + 1; i &lt;= fim; i++) {  
        if (vet[i] &lt; pivo) {  
            vet[topo] = vet[i];  
            vet[i] = vet[topo + 1];  
            topo++;  
        }  
    }  
    vet[topo] = pivo;  
    return topo;  
}  

public int[] getVet() {  
    return vet;  
}  
}  

[/code][/quote]

O jonatha já passou o x da questão.
Só para complementar seria bom
separar o método Main, dentro de uma classe Main
e o restante das coisas coloque numa classe QuickSort
pois assim irá fazer Orientado a Objeto e não precisará
usar static. Mas depende se você já começou a ver Orientação a Objeto.
Ressalto que não estou falando que a solução do jonatha está errada.
Mas tem que tomar cuidado ao usar o static para não acontecer
problemas sérios como instâncias ou variáveis e métodos globais.

Abraço.

[quote=JavaDreams][quote=jonatha java]Coloque o static no metodo quickSort e no partition que funcionar.

[code]

public class QuickSort {

    public static void main(String[] agrs){
        
        int vet[] = new int[8000];
        for (int i = 7999; i &gt; 0; i--) {
            vet[i] = i;
        }
        QuickSort qs = new QuickSort();
        qs.inicia(vet);  
        for(int it : vet){
        System.out.println(it);}
        
    }
    
    int vet[];  
      
    public void inicia(int v[]){  
        this.vet = v;  
        quickSort(vet, 0, vet.length-1);  
    }  
      
    public static void quickSort(int[] vet, int ini, int fim) {  //coloque o static
    int meio;  

    if (ini &lt; fim) {  
        meio = partition(vet, ini, fim);  
        quickSort(vet, ini, meio);  
        quickSort(vet, meio + 1, fim);  
    }  
}  

public static int partition(int[] vet, int ini, int fim) {   //coloque o static
    int pivo, topo, i;  
    pivo = vet[ini];  
    topo = ini;  

    for (i = ini + 1; i &lt;= fim; i++) {  
        if (vet[i] &lt; pivo) {  
            vet[topo] = vet[i];  
            vet[i] = vet[topo + 1];  
            topo++;  
        }  
    }  
    vet[topo] = pivo;  
    return topo;  
}  

public int[] getVet() {  
    return vet;  
}  
}  

[/code][/quote]

O jonatha já passou o x da questão.
Só para complementar seria bom
separar o método Main, dentro de uma classe Main
e o restante das coisas coloque numa classe QuickSort
pois assim irá fazer Orientado a Objeto e não precisará
usar static. Mas depende se você já começou a ver Orientação a Objeto.
Ressalto que não estou falando que a solução do jonatha está errada.
Mas tem que tomar cuidado ao usar o static para não acontecer
problemas sérios como instâncias ou variáveis e métodos globais.

Abraço.[/quote]
Se ele fizer isso, volta a ter o problema com o StackOverflowError…
O problema é que o modo de ordenação que ele está implementando, o QuickSort, acaba estourando a pilha de memória que a JVM disponibiliza para a instância de um objeto.
Conforme consta da descrição do tópico, até 7 mil, vai tranquilo, passando disso, dispara o erro.
Como o estouro de memória é um erro irrecuperável, ele não lança uma simples exceção, lança um erro, dizendo que não há nada mais a fazer a não ser “matar” a instância do objeto.
Claro que é possível executar a classe alterando os parâmetros da JVM, solicitando mais memória, mas isso pode não ser interessante.
“Ah, o que muda com a alteração para static?”. A forma de gerenciamento de memória é diferente (seria bom estudar sobre memória heap e stack do java) e, por conta disso, o problema deve ser resolvido.
Ressalto, a falha pode voltar a ocorrer se:

  • A quantidade de memória disponível na máquina for baixa e/ou ela precise ser compartilhada com vários outros programas ao mesmo tempo.
  • Haja algum erro na implementação, ocasionando consumo excessivo de recursos (memória, por exemplo).

[quote=drsmachado][quote=JavaDreams][quote=jonatha java]Coloque o static no metodo quickSort e no partition que funcionar.

[code]

public class QuickSort {

    public static void main(String[] agrs){
        
        int vet[] = new int[8000];
        for (int i = 7999; i &gt; 0; i--) {
            vet[i] = i;
        }
        QuickSort qs = new QuickSort();
        qs.inicia(vet);  
        for(int it : vet){
        System.out.println(it);}
        
    }
    
    int vet[];  
      
    public void inicia(int v[]){  
        this.vet = v;  
        quickSort(vet, 0, vet.length-1);  
    }  
      
    public static void quickSort(int[] vet, int ini, int fim) {  //coloque o static
    int meio;  

    if (ini &lt; fim) {  
        meio = partition(vet, ini, fim);  
        quickSort(vet, ini, meio);  
        quickSort(vet, meio + 1, fim);  
    }  
}  

public static int partition(int[] vet, int ini, int fim) {   //coloque o static
    int pivo, topo, i;  
    pivo = vet[ini];  
    topo = ini;  

    for (i = ini + 1; i &lt;= fim; i++) {  
        if (vet[i] &lt; pivo) {  
            vet[topo] = vet[i];  
            vet[i] = vet[topo + 1];  
            topo++;  
        }  
    }  
    vet[topo] = pivo;  
    return topo;  
}  

public int[] getVet() {  
    return vet;  
}  
}  

[/code][/quote]

O jonatha já passou o x da questão.
Só para complementar seria bom
separar o método Main, dentro de uma classe Main
e o restante das coisas coloque numa classe QuickSort
pois assim irá fazer Orientado a Objeto e não precisará
usar static. Mas depende se você já começou a ver Orientação a Objeto.
Ressalto que não estou falando que a solução do jonatha está errada.
Mas tem que tomar cuidado ao usar o static para não acontecer
problemas sérios como instâncias ou variáveis e métodos globais.

Abraço.[/quote]
Se ele fizer isso, volta a ter o problema com o StackOverflowError…
O problema é que o modo de ordenação que ele está implementando, o QuickSort, acaba estourando a pilha de memória que a JVM disponibiliza para a instância de um objeto.
Conforme consta da descrição do tópico, até 7 mil, vai tranquilo, passando disso, dispara o erro.
Como o estouro de memória é um erro irrecuperável, ele não lança uma simples exceção, lança um erro, dizendo que não há nada mais a fazer a não ser “matar” a instância do objeto.
Claro que é possível executar a classe alterando os parâmetros da JVM, solicitando mais memória, mas isso pode não ser interessante.
“Ah, o que muda com a alteração para static?”. A forma de gerenciamento de memória é diferente (seria bom estudar sobre memória heap e stack do java) e, por conta disso, o problema deve ser resolvido.
Ressalto, a falha pode voltar a ocorrer se:

  • A quantidade de memória disponível na máquina for baixa e/ou ela precise ser compartilhada com vários outros programas ao mesmo tempo.
  • Haja algum erro na implementação, ocasionando consumo excessivo de recursos (memória, por exemplo).[/quote]

Sugiro que dedique um pouco mais de tempo para ler por completo o que a gente escreve
no tópico, pois é chato ter uma pessoa distorcendo as coisas que a gente fala, querendo ganhar ibope.
Como você questionou, me vejo no direito de explicar:

Minha preocupação é que métodos estáticos podem ser acessados de qualquer parte do programa
sem que haja uma instância do objeto.
Como ocorre abaixo:

public class Classe1 {
    
    public static void imprime(){
        System.out.println("Teste");
    }
}
public class Classe2 {
    public static void main(String[] args){
        Classe1.imprime();
    }

}

drsmachado não leu tudo que foi escrito(mais uma vez para variar)
Como disse o jonatha java não estaria errado pois pode ser válido também depende do caso.
Minha intenção era de atentar para o fato de variáveis ou métodos estáticos poderem ser
chamados de qualquer lugar do programa sem ter que instanciar o objeto.
Ou seja qualquer pessoa mal intencionada poderá invocar esse método e etc.

Por favor drsmachado criticar os posts dos outros enviando em coment
para tentar mostrar que seu ponto de vista é o melhor, é uma prática
arcaica, chata e causa aborrecimento a todos no fórum. Dê sua opinião
sem atrapalhar a dos outros pois todos temos visões diferentes.

Se por um lado instanciando um objeto a memória “estoure”
por outro lado deixar métodos estáticos pode em alguns casos
ser perigoso ou algo do tipo se cair nas mãos de pessoas mal intencionadas.

Mas isso é claro no meu ponto de vista e aqui vai 4 links para ajudar a comprovar:

http://www.tiexpert.net/programacao/java/static.php
http://www.guj.com.br/java/113784-atribuicao-de-variaveis-estaticas-finais
javafree.uol.com.br/topic-881401-Atributo-global.html
http://javafree.uol.com.br/topic-6401-Acesso-as-variaveis-fora-do-escopo-Main.html

[quote=JavaDreams][quote=drsmachado][quote=JavaDreams][quote=jonatha java]Coloque o static no metodo quickSort e no partition que funcionar.

[code]

public class QuickSort {

    public static void main(String[] agrs){
        
        int vet[] = new int[8000];
        for (int i = 7999; i &gt; 0; i--) {
            vet[i] = i;
        }
        QuickSort qs = new QuickSort();
        qs.inicia(vet);  
        for(int it : vet){
        System.out.println(it);}
        
    }
    
    int vet[];  
      
    public void inicia(int v[]){  
        this.vet = v;  
        quickSort(vet, 0, vet.length-1);  
    }  
      
    public static void quickSort(int[] vet, int ini, int fim) {  //coloque o static
    int meio;  

    if (ini &lt; fim) {  
        meio = partition(vet, ini, fim);  
        quickSort(vet, ini, meio);  
        quickSort(vet, meio + 1, fim);  
    }  
}  

public static int partition(int[] vet, int ini, int fim) {   //coloque o static
    int pivo, topo, i;  
    pivo = vet[ini];  
    topo = ini;  

    for (i = ini + 1; i &lt;= fim; i++) {  
        if (vet[i] &lt; pivo) {  
            vet[topo] = vet[i];  
            vet[i] = vet[topo + 1];  
            topo++;  
        }  
    }  
    vet[topo] = pivo;  
    return topo;  
}  

public int[] getVet() {  
    return vet;  
}  
}  

[/code][/quote]

O jonatha já passou o x da questão.
Só para complementar seria bom
separar o método Main, dentro de uma classe Main
e o restante das coisas coloque numa classe QuickSort
pois assim irá fazer Orientado a Objeto e não precisará
usar static. Mas depende se você já começou a ver Orientação a Objeto.
Ressalto que não estou falando que a solução do jonatha está errada.
Mas tem que tomar cuidado ao usar o static para não acontecer
problemas sérios como instâncias ou variáveis e métodos globais.

Abraço.[/quote]
Se ele fizer isso, volta a ter o problema com o StackOverflowError…
O problema é que o modo de ordenação que ele está implementando, o QuickSort, acaba estourando a pilha de memória que a JVM disponibiliza para a instância de um objeto.
Conforme consta da descrição do tópico, até 7 mil, vai tranquilo, passando disso, dispara o erro.
Como o estouro de memória é um erro irrecuperável, ele não lança uma simples exceção, lança um erro, dizendo que não há nada mais a fazer a não ser “matar” a instância do objeto.
Claro que é possível executar a classe alterando os parâmetros da JVM, solicitando mais memória, mas isso pode não ser interessante.
“Ah, o que muda com a alteração para static?”. A forma de gerenciamento de memória é diferente (seria bom estudar sobre memória heap e stack do java) e, por conta disso, o problema deve ser resolvido.
Ressalto, a falha pode voltar a ocorrer se:

  • A quantidade de memória disponível na máquina for baixa e/ou ela precise ser compartilhada com vários outros programas ao mesmo tempo.
  • Haja algum erro na implementação, ocasionando consumo excessivo de recursos (memória, por exemplo).[/quote]

Sugiro que dedique um pouco mais de tempo para ler por completo o que a gente escreve
no tópico, pois é chato ter uma pessoa distorcendo as coisas que a gente fala, querendo ganhar ibope.
Como você questionou, me vejo no direito de explicar:

Minha preocupação é que métodos estáticos podem ser acessados de qualquer parte do programa
sem que haja uma instância do objeto.
Como ocorre abaixo:

public class Classe1 {
    
    public static void imprime(){
        System.out.println("Teste");
    }
}
public class Classe2 {
    public static void main(String[] args){
        Classe1.imprime();
    }

}

drsmachado não leu tudo que foi escrito(mais uma vez para variar)
Como disse o jonatha java não estaria errado pois pode ser válido também depende do caso.
Minha intenção era de atentar para o fato de variáveis ou métodos estáticos poderem ser
chamados de qualquer lugar do programa sem ter que instanciar o objeto.
Ou seja qualquer pessoa mal intencionada poderá invocar esse método e etc.

Por favor drsmachado criticar os posts dos outros enviando em coment
para tentar mostrar que seu ponto de vista é o melhor, é uma prática
arcaica, chata e causa aborrecimento a todos no fórum. Dê sua opinião
sem atrapalhar a dos outros pois todos temos visões diferentes.

Se por um lado instanciando um objeto a memória “estoure”
por outro lado deixar métodos estáticos pode em alguns casos
ser perigoso ou algo do tipo se cair nas mãos de pessoas mal intencionadas.

Mas isso é claro no meu ponto de vista e aqui vai 4 links para ajudar a comprovar:

http://www.tiexpert.net/programacao/java/static.php
http://www.guj.com.br/java/113784-atribuicao-de-variaveis-estaticas-finais
javafree.uol.com.br/topic-881401-Atributo-global.html
http://javafree.uol.com.br/topic-6401-Acesso-as-variaveis-fora-do-escopo-Main.html[/quote]
Simples, use o modificador de acesso private e esqueça toda essa baboseira que o JavaDreams escreveu. Não sabe para que servem o modificadores de acesso? Sugiro estudar um pouco de java básico. Aliás, para isso que serve o livro java, use a cabeça e o java: como programar, não?
Ganhar ibope? Deixa eu ver se entendi, você coloca cada novo “nível” do guj na tua assinatura, comenta tópicos já resolvidos sem acrescentar nada e eu é que quero ibope?
É, to vendo que ganhei mais um fã…

Ou seja, todo o comentário daqui para baixo será inútil.

Ou seja, o autor deste comentário não leu o que o jonatha java escreveu ou, provavelmente, não sabe o que significa.

Não está errada.

[quote=JavaDreams]
Mas tem que tomar cuidado ao usar o static para não acontecer
problemas sérios como instâncias ou variáveis e métodos globais.
Abraço.[/quote]
Para isso existem modificadores de acesso, já experimentou estudar? Pois é, faz bem.

Justamente pelo fato de existirem os modificadores de acesso mesmo drsmachado
que eu dei a dica para fazer um objeto, pois além de encapsular o objeto
quem usar o método terá que primeiro instanciar o objeto, dentre outras coisas
mais que a segurança em usar OO pode garantir.

Eu preferi não entrar em tantos detalhes pois o cara é novato e só ia complicar mais.

Tentei passar meu ponto de vista olhando para o lado essencial da coisa, pois
quando estiver desenvolvendo sistemas maiores ficará mais fácil para entender
os motivos de cada coisa.

Nota: O problema dele já foi resolvido, então que tal para de fazer flames?
Já leu as regras?

[quote=JavaDreams]Justamente pelo fato de existirem os modificadores de acesso mesmo drsmachado
que eu dei a dica para fazer um objeto, pois além de encapsular o objeto
quem usar o método terá que primeiro instanciar o objeto, dentre outras coisas
mais que a segurança em usar OO pode garantir.

Eu preferi não entrar em tantos detalhes pois o cara é novato e só ia complicar mais.

Tentei passar meu ponto de vista olhando para o lado essencial da coisa, pois
quando estiver desenvolvendo sistemas maiores ficará mais fácil para entender
os motivos de cada coisa.

Nota: O problema dele já foi resolvido, então que tal para de fazer flames?
Já leu as regras?[/quote]
Não é uma questão de detalhes, é uma questão de dar a informação completa.
Só por que o sujeito é iniciante. significa que ele é incapaz?
Você é iniciante também e por isso não sabe explicar os detalhes, não?
Li as regras e não estou criando flames, estou mostrando que 90% das coisas que você coloca nos tópicos não são aproveitáveis. Você está querendo somar respostas, apenas isso.
Vê um tópico que o pessoal respondeu, entra lá e insere um comentário “leia o livro java use a cabeça”, “assista à essa vídeo aula”, mimimi.
Respostas efetivamente sérias e que solucionem o tópico você não deu nenhuma.
“Ah, mas o fórum é colaborativo e eu colaborei”. Colaborou com o que?
“Você fica distorcendo o que eu digo”, “você fica criando flame”, “você está me perseguindo”. Cara, olha só, entenda bem, eu não preciso de você para me promover. Eu escolho quanto quero ganhar, onde quero trabalhar e o que quero fazer. Não sei tudo de java, não tenho certificação (por preguiça, pois se quisesse já teria algumas), não sei de tudo. Agora, quando eu vejo um tópico resolvido, nem me meto a entrar nele e dizer “Boa”, apenas para somar minhas mensagens e subir meu nível no java.
Quer mesmo brincar de ranking? Responde lá no guj respostas. Aí vamos ver se você vai ser bem ou mal pontuado.
Vai choramingar ou aceitar o desafio?
Nota: Foi apresentada uma solução para o problema dele e, como qualquer outro tópico em que você entra, não foi a tua resposta que solucionou. A minha também não, mas a minha explica as razões pelas quais o problema ocorre e por que a solução do jonatha java resolve o problema.

Os hanks na assinatura mostram mensagens necessárias para tal hank e em que data eu coloquei aquele rank, pois
assim o pessoal pode consultar a quantidade que falta para pegar algum hank.(Mero capricho meu, nada mais)
Tópicos resolvidos ou não eu vou continuar respondendo com minha opinião desde que eu não viole nenhuma regra, pois tenho esse direito.
Aliás ninguém da Adm ou Mod precisou me chamar atenção pelas minhas respostas.
Sobre a resposta ser certa, errada ou equivocada eu vou saber aprender mais e mais com cada uma delas.

Se vai aparecer alguém dizendo que minha resposta é errada, tudo bem não ligo
pois o importante é participar, aprender e no final é a opinião do dono do post que conta.

Essas são minhas explicações.
E ao drsmachado já enviei mp pedindo para que as brigas parem
cabe a ele entender isso, pois não estou respondendo com coment
nenhuma mensagem dele nos outros posts. Pelo contrário
é sempre ele que começa uma discussão e meus posts não me deixam mentir.

abraços.

Só uma pergunta JavaDreams:

A sua sugestão, resolve o problema do autor?

[quote=JavaDreams]Os hanks na assinatura mostram mensagens necessárias para tal hank e em que data eu coloquei aquele rank, pois
assim o pessoal pode consultar a quantidade que falta para pegar algum hank.(Mero capricho meu, nada mais)
Tópicos resolvidos ou não eu vou continuar respondendo com minha opinião desde que eu não viole nenhuma regra, pois tenho esse direito.
Aliás ninguém da Adm ou Mod precisou me chamar atenção pelas minhas respostas.
Sobre a resposta ser certa, errada ou equivocada eu vou saber aprender mais e mais com cada uma delas.

Se vai aparecer alguém dizendo que minha resposta é errada, tudo bem não ligo
pois o importante é participar, aprender e no final é a opinião do dono do post que conta.

Essas são minhas explicações.
E ao drsmachado já enviei mp pedindo para que as brigas parem
cabe a ele entender isso, pois não estou respondendo com coment
nenhuma mensagem dele nos outros posts. Pelo contrário
é sempre ele que começa uma discussão e meus posts não me deixam mentir.

abraços.[/quote]
Hank é o nome do Fera, dos X-men…
Você quis dizer ranking mesmo…
MP? Não recebi nenhuma MP tua até o momento, logo, você está passando uma informação que não é verdadeira.
Não, o importante não é participar. É fornecer a resposta mais assertiva, resolver o problema.
Se o que tem a dizer não acrescenta em nada, apenas olhe, leia, acompanhe o tópico, pesquise. Era o que eu fazia no começo.
Não venha com essa história de “importante é participar”.
Você pode responder algo incorretamente e acabar atrapalhando mais pessoas.
Quando não sei sobre algo, simplesmente não respondo. É assim, não se sabe de tudo e nem todas as nossas experiências podem servir de auxílio para outrém.

Correção…

Já recebeu MP sim.
Quando ao resto melhor ignorar.

[quote=JavaDreams]Correção…

Já recebeu MP sim.
Quando ao resto melhor ignorar.[/quote]
Veja a hora que respondi e veja a hora que você enviou a MP. Seja honesto.

[quote=Rodrigo Sasaki]Só uma pergunta JavaDreams:

A sua sugestão, resolve o problema do autor?[/quote]

Por isso que desde a primeira mensagem eu disse que era para complementar, não citei resolver pois não tinha convicção que seria a melhor solução para o problema.
Ou será que só podemos responder quando estiver 100% corretos?
Aí que entra o X da questão que tanto argumento com o drsmachado
quem garante que essa solução é melhor do que aquela, ou que aquela é melhor que esta?
E se amanhã ou depois alguém provar o contrário científicamente?

Por isso que existe Fórum para podermos discutir, opinar, acertar, errar e o mais importante: Participar

bom isso segundo o que encontrei na Wikipédia por curiosidade:

http://pt.wikipedia.org/wiki/F%C3%B3rum_de_discuss%C3%A3o

Fórum de discussão
Origem: Wikipédia, a enciclopédia livre.

Exemplo de fórum

Fórum de discussão é uma ferramenta para páginas de Internet destinada a promover debates através de mensagens publicadas abordando uma mesma questão.1 Também é chamado de “comunidade” ou “board”.


Pesquisei em várias fontes e não encontrei algo que diz que só podemos participar quando tivermos certeza de que a resposta que vamos dar
é a melhor, ou certeza de que vai atender ou resolver ou alguma coisa, mas ambas apontando para o objetivo principal
de criar um espaço para pessoas discutirem civilizadamente é claro.

Galera vou me concentrar em dar respostas corretas, mas vou participar do post
que eu achar que posso ajudar sim independentemente de qualquer coisa,
pois não viola as regras (e em momento algum eu fui avacalhar alguém com resposta maldosa)
nem o objetivo de um fórum de discussão, como disse a definição que citei na wikipédia.

[quote=drsmachado][quote=JavaDreams]Correção…

Já recebeu MP sim.
Quando ao resto melhor ignorar.[/quote]
Veja a hora que respondi e veja a hora que você enviou a MP. Seja honesto.[/quote]

Algum problema em ter recebido alguns poucos minutos depois que postei no post?

Por isso respondi dizendo que já recebeu.

Enviei depois que postei, sim claro pois fui por ordem de importância lógica.
Mas que recebeu recebeu kkk

[quote=JavaDreams][quote=drsmachado][quote=JavaDreams]Correção…

Já recebeu MP sim.
Quando ao resto melhor ignorar.[/quote]
Veja a hora que respondi e veja a hora que você enviou a MP. Seja honesto.[/quote]

Algum problema em ter recebido alguns poucos minutos depois que postei no post?

Por isso respondi dizendo que já recebeu.

Enviei depois que postei, sim claro pois fui por ordem de importância lógica.
Mas que recebeu recebeu kkk[/quote]
Então deveria ter usado o verbo conjugado no futuro e não no pretérito.

[quote=JavaDreams][quote=Rodrigo Sasaki]Só uma pergunta JavaDreams:

A sua sugestão, resolve o problema do autor?[/quote]

Por isso que desde a primeira mensagem eu disse que era para complementar, não citei resolver pois não tinha convicção que seria a melhor solução para o problema.
Ou será que só podemos responder quando estiver 100% corretos?
Aí que entra o X da questão que tanto argumento com o drsmachado
quem garante que essa solução é melhor do que aquela, ou que aquela é melhor que esta?
E se amanhã ou depois alguém provar o contrário científicamente?

Por isso que existe Fórum para podermos discutir, opinar, acertar, errar e o mais importante: Participar

bom isso segundo o que encontrei na Wikipédia por curiosidade:

http://pt.wikipedia.org/wiki/F%C3%B3rum_de_discuss%C3%A3o

Fórum de discussão
Origem: Wikipédia, a enciclopédia livre.

Exemplo de fórum

Fórum de discussão é uma ferramenta para páginas de Internet destinada a promover debates através de mensagens publicadas abordando uma mesma questão.1 Também é chamado de “comunidade” ou “board”.


Pesquisei em várias fontes e não encontrei algo que diz que só podemos participar quando tivermos certeza de que a resposta que vamos dar
é a melhor, ou certeza de que vai atender ou resolver ou alguma coisa, mas ambas apontando para o objetivo principal
de criar um espaço para pessoas discutirem civilizadamente é claro.

Galera vou me concentrar em dar respostas corretas, mas vou participar do post
que eu achar que posso ajudar sim independentemente de qualquer coisa,
pois não viola as regras (e em momento algum eu fui avacalhar alguém com resposta maldosa)
nem o objetivo de um fórum de discussão, como disse a definição que citei na wikipédia.
[/quote]
Cara, eu não tenho nada contra você, acredite. Até hoje acho que nunca nem tinha visto um post seu.

Mas pareceu para mim que você deu uma resposta exagerada para o drsmachado talvez por richas antigas. Tudo o que ele fez foi dizer que se ele seguisse a sua sugestão, o autor teria o mesmo problema que tinha originalmente. Concorda comigo?

Eu entendo seu ponto de querer modelar as classes da melhor maneira possível, e até concordo. Só que acontece que nesse tópico especificamente, a sua sugestão não ajudou, e a sua reação também não. Bastava ver que errou e admitir, como você disse na MP que é o que faz. Eu sei como é isso, já postei tanta besteira no GUJ que nem me lembro mais, lembro de um tópico sobre MVC onde eu estava categoricamente errado, mas aprendi muita coisa com meu erro.

Ninguém aqui sabe tudo, e de novo, não estou te criticando nem nada, mas vi que você é novo aqui, e que é interessado. Então se quiser continuar contribuindo, seja muito bem vindo :slight_smile: mas lembre-se que não dá pra ganhar todas :smiley:

[quote=Rodrigo Sasaki][quote=JavaDreams][quote=Rodrigo Sasaki]Só uma pergunta JavaDreams:

A sua sugestão, resolve o problema do autor?[/quote]

Por isso que desde a primeira mensagem eu disse que era para complementar, não citei resolver pois não tinha convicção que seria a melhor solução para o problema.
Ou será que só podemos responder quando estiver 100% corretos?
Aí que entra o X da questão que tanto argumento com o drsmachado
quem garante que essa solução é melhor do que aquela, ou que aquela é melhor que esta?
E se amanhã ou depois alguém provar o contrário científicamente?

Por isso que existe Fórum para podermos discutir, opinar, acertar, errar e o mais importante: Participar

bom isso segundo o que encontrei na Wikipédia por curiosidade:

http://pt.wikipedia.org/wiki/F%C3%B3rum_de_discuss%C3%A3o

Fórum de discussão
Origem: Wikipédia, a enciclopédia livre.

Exemplo de fórum

Fórum de discussão é uma ferramenta para páginas de Internet destinada a promover debates através de mensagens publicadas abordando uma mesma questão.1 Também é chamado de “comunidade” ou “board”.


Pesquisei em várias fontes e não encontrei algo que diz que só podemos participar quando tivermos certeza de que a resposta que vamos dar
é a melhor, ou certeza de que vai atender ou resolver ou alguma coisa, mas ambas apontando para o objetivo principal
de criar um espaço para pessoas discutirem civilizadamente é claro.

Galera vou me concentrar em dar respostas corretas, mas vou participar do post
que eu achar que posso ajudar sim independentemente de qualquer coisa,
pois não viola as regras (e em momento algum eu fui avacalhar alguém com resposta maldosa)
nem o objetivo de um fórum de discussão, como disse a definição que citei na wikipédia.
[/quote]
Cara, eu não tenho nada contra você, acredite. Até hoje acho que nunca nem tinha visto um post seu.

Mas pareceu para mim que você deu uma resposta exagerada para o drsmachado talvez por richas antigas. Tudo o que ele fez foi dizer que se ele seguisse a sua sugestão, o autor teria o mesmo problema que tinha originalmente. Concorda comigo?

Eu entendo seu ponto de querer modelar as classes da melhor maneira possível, e até concordo. Só que acontece que nesse tópico especificamente, a sua sugestão não ajudou, e a sua reação também não. Bastava ver que errou e admitir, como você disse na MP que é o que faz. Eu sei como é isso, já postei tanta besteira no GUJ que nem me lembro mais, lembro de um tópico sobre MVC onde eu estava categoricamente errado, mas aprendi muita coisa com meu erro.

Ninguém aqui sabe tudo, e de novo, não estou te criticando nem nada, mas vi que você é novo aqui, e que é interessado. Então se quiser continuar contribuindo, seja muito bem vindo :slight_smile: mas lembre-se que não dá pra ganhar todas :D[/quote]

Pode ter certeza que vou te ouvir sim.
Como você falou sou muito interessado em ajudar com java.
Já tentei explicar para o drsmachado que ambos erramos mas ele insiste
em me detonar. E não me dá sequer espaço de participar.

Chega ao cúmulo de dizer que estou errado se em algum post
eu acho legal colocar para o usuário ler tal livro ou ver tal vídeo.

Mas na verdade tudo começou com um post onde eu ajudei e ele insultou
o dono do post. Daí cheguei para ele questionando e desde então o mesmo
não aceita mais minha opinião no fórum.

Agora pouco me disse por MP que pouco se importa se for banido ou não.
Por isso me pergunto às vezes quem está errado? Ou melhor quem quer mais
ajudar?

Uma pessoa que sempre quer participar ou
um usuário que só sabe falar para as pessoas que elas deveriam estudar o básico
antes de vir para o GUJ, os chamando de preguiçosos e coisas do tipo
ou até mesmo mandando eles pesquisarem no google e fazer curso de java
antes de vir perguntar no GUJ.

Bom eu sou o cara legal que quer participar mas o drsmachado que
antes vivia insultando as pessoas e dizendo que deviam estudar mais
pesquisar no google, api, fazer cursos e deixar de ser preguiçosos
agora deu na telha de ficar me corrigindo ofensivamente em todos os posts
que por equívoco às vezes erro, ou então tentar mostrar que sou um vacilão
por talvez enviar um código ou passar algo mastigado?

Às vezes me pergunto as chances que um novo usuário tem de voltar a acessar
o GUJ depois de receber uma das “tamancadas” do drsmachado.

E também me pergunto as chances que um usuário seja novo ou não voltar a visitar
o GUJ depois de ver que um cara legal igual eu tentou ajudar, mesmo que não conseguiu.

Sobre as pessoas aprenderem errado com talvez um resposta errada minha
eu acho um absurdo do drsmachado dizer, afinal até eu que já tenho mais de 1 ano
em java web e desktop, tem vez que aprendo umas coisas erradas em livros, youtube, google e por aí vai.

Mas aí é igual eu sempre falo, quem garante que algo é errado hoje e não pode ser certo amanhã
ou vice versa?

Afinal vivemos no mundo de informática onde a qualquer momento podem surgir exceções.

Chato é ter que ficar calado só porque um usuário antigo se acha o bam bam bam

Sem falar que tem muitos outros usuários que tem tempo antigo de GUJ
e milhares de posts respondidos, mas em suma não se comportam como o tal drsmachado

Agora e se colocarmos isso na balança da justiça?

Eu só quero ajudar, mas ficar calado mediante um cara que é tão grosso,
isso é difícil, pois se fosse comigo um cara vir respondendo um pedido de ajuda
meu com grosseria, eu pedia os Adms para dar um jeito.

Mas como não vale a pena ficar brigando, então coloquei as referências na minha assinatura
assim quem ver poderá denunciar ao se sentir insultado.

Em que momento eu te impedi de responder? Somente disse para ser coerente. É consenso que todos devem ler os livros do Deitel e da Kathy Sierra para começar, qualquer cursinho ridículo ou faculdade meia boca vai ensinar isso. Logo, penso que seus comentários não agregam e são incoerentes. Muito mais para quem quer colecionar posições no “ranking” do guj.

O problema é que todas as vezes que vi você opinando em algo você estava apenas “somando respostas” e/ou chovendo no molhado, falando coisas que foram ditas e/ou que são óbvias demais para qualquer um precisar falar.

Eu não sou muito religioso, mas aqui cabe uma coisa bem bacana, que não fui eu que escrevi.
“Quando, pois, dás esmola, não toques a trombeta diante de ti, como fazem os hipócritas nas sinagogas e nas ruas, para serem louvados pelos homens. Em verdade eu vos digo: já receberam sua recompensa” (Bíblia católica, velho testamento, Mateus capítulo 6, versículo 2).
Eu não me importo se vier a ser banido por que não estou aqui “para aparecer”. Estou aqui por que acho interessante responder perguntas de pessoas interessadas, corrigir comentários com erros (de português também, por que não?).
Agora reflita sobre isso que coloquei.

Pergunta, você aprendeu por osmose? Ou você teve que pesquisar? Se você pode fazer algumas pesquisas, desperdiçar tempo lendo livros, vendo vídeos no youtube (ainda quero entender como alguém trabalha e consegue ver vídeos do youtube no horário de trabalho), qualquer um pode fazer. Eles são melhores que você ou eu? São menos capazes?
Quando você trata as pessoas da forma que você está tratando, acaba criando um costume ruim. Eles nunca verão a pesquisa como algo necessário. Falar “Olha, vou te ensinar”, “olhe eu pesquisei aqui” é o mesmo que pedir para ser ignorado.

Ofensivamente? Eu apenas disse que você estava errado e estruturei minha argumentação de forma adequada. Se isso é ser mal educado, sinceramente, eu preciso mudar para outro país urgentemente.

Se ele tem vontade jamais será tratado com grosseria. Se não tem, então será. Pois eu considero grosseria alguém chegar e dizer “quero código pronto” ou sequer ter feito uma pesquisa antes de perguntar. Cara, nem meu filho de oito anos pergunta alguma coisa sem ter procurado antes. E ele tem oito anos. Sabe se virar muito bem com o google, acha o que quer na internet. E aí?

Cara se você vai ensinar, comprometa-se a fazer da melhor maneira possível. Erros em livros ocorrem por várias situações, os mais comuns são erros na impressão e falta de revisão. No youtube erros são comuns, mas se ninguém avisar o autor, ele sempre continuará fazendo errado. Não concorda?
Eu leciono, antes de falar qualquer coisa para as minhas turmas eu pesquiso, verifico a fonte, verifico se funciona, testo, executo, crio tudo o que é preciso para ter certeza que não estarei ensinando errado. Por que? Por que eu não quero que aquelas pessoas sejam motivo de chacota no trabalho, na faculdade. Quero que eles saibam o que faz, Quero que tenham fundamentos, que estejam aptos a pesquisar e aprender sozinhos. É este o caminho. Se tiverem dúvidas, então saberão formular uma pergunta.
E, sinceramente, absurdo é dizer que ensina errado por que aprende errado por aí. Não justifique uma falha tua com falhas alheias.

[quote=JavaDreams]
Mas aí é igual eu sempre falo, quem garante que algo é errado hoje e não pode ser certo amanhã
ou vice versa?

Afinal vivemos no mundo de informática onde a qualquer momento podem surgir exceções.

Chato é ter que ficar calado só porque um usuário antigo se acha o bam bam bam

Sem falar que tem muitos outros usuários que tem tempo antigo de GUJ
e milhares de posts respondidos, mas em suma não se comportam como o tal drsmachado

Agora e se colocarmos isso na balança da justiça?

Eu só quero ajudar, mas ficar calado mediante um cara que é tão grosso,
isso é difícil, pois se fosse comigo um cara vir respondendo um pedido de ajuda
meu com grosseria, eu pedia os Adms para dar um jeito.

Mas como não vale a pena ficar brigando, então coloquei as referências na minha assinatura
assim quem ver poderá denunciar ao se sentir insultado.[/quote]
Todas as vezes que você errar, tenha a certeza que eu irei corrigir e expor onde e por que errou. Todas as vezes que falar bobagem, tenha certeza que eu irei estar lá para te recriminar.
Não por que você merece minha atenção, mas, simplesmente, por que eu faço isso com todos.
Volto a dizer, se for banido, paciência, a vida continua. Volto ao fórum de PHP que deixei faz tempo, para ajudar aqui. Se não for mais útil, boa sorte para quem fica. Agora, posso dizer que desde que eu entrei o nível apenas cai. Graças a pessoas como você.