segunda-feira, 14 de dezembro de 2009
Voltando a Trabalhar!
Depois de algum tempo sem postar nada no blog.
Estamos voltando para contribuir com novidades.
Ficamos parados por um tempo por motivos pessoas. Para quem faz faculdade saber o quanto é chato a etapa de tcc, e é ainda mais chato quando voce esta tentando mestrado.
Para volta compartilhar informações, vou postar duas novidades relacionado com esse blog.
Primeiro:
Java EE 6 oficialmente lançado
Segundo:
NetBeans IDE 6.8: Get Tomorrow Today!
Espero que gostem e até a proxima!
abraaaaaaaaaaaaaaço
segunda-feira, 9 de novembro de 2009
Promoção da SUN
Acesse http://www.sun.com.br/edu, no tópico "Procurar por tipo de Produto" clique em "Certificações";
Chegou a sua hora!
Boa Sorte!
quinta-feira, 29 de outubro de 2009
II Jornada Acadêmica de informátiva
quinta-feira, 22 de outubro de 2009
Semiário do NetBeans Online
Hoje venho informar sobre o Grupo do ALJUG no OSUM - Open Source University Meetup, onde nos vemos mais perto da SUN, para isso precisamos da sua ajuda tanto na OSUM quanto no www.java.net que basta cadastrar-se e juntar-se a nós. No OSUM basta Clicar aqui e irá diretamente ao grupo Aljug. Outra questão que quero informar a vocês, e é o tema deste post, é que irá ter uma palestra online sobre o NetBeans 6.7 com o pessoal da SUN, totalmente em português, no dia 27 de outubro as 15h da tarde, clicando aqui você terá todas as informações sobre o evento.
È uma boa oportunidade para quem mexe com essa IDE. E é isso pessoal, vou ficando por aqui, caso apareça mais eventos vou informando e não esqueça de juntar-se ao ALJUG no OSUM e NO JAVA.NET.
Até mais!
sexta-feira, 16 de outubro de 2009
Questão Java em concurso
Esse post vou falar sobre uma questão sobre a linguagem Java que estava na prova do TRT do céara. Vamos lá.
Fazendo a prova do concurso do TRT de céara, aonde pensei que cairia mais sobre programação do que redes e hardware, vi um questão que fiquei em dúvida.
Vejam:
Em Java, main é um método:
(A) abstrato associado à classe e que retorna um valor não vazio.
(B) público associado ao objeto e que retorna um valor não vazio.
(C) estático associado ao objeto e que retorna um valor vazio.
(D) abstrato associado ao objeto e que retorna um valor não vazio.
(E) estático associado à classe e que retorna um valor vazio.
O que vocês acham?
A minha resposta foi a letra E, igual ao do gabarito.
Mas penso que essa questão possa ser anulada. O tipo de retorno VOID retorna algum valor?
Espero vê os comentarios de vocês aqui!
Até a próxima.
terça-feira, 29 de setembro de 2009
Palestra - Cerifcicação Java
Aconteceu dia 23 de setembro na faculdade de alagoas, uma palestra sobre certificação java, ministrada pelo nosso amigo e colaborador do ALJUG, Alan Mateus.
Nesta palestra teve as explicações sobre cada uma certificação existente nos dias atuais.
Além de dicas,livros,simulados, sites e assuntos relacionados a certificação.
Achei uma boa palestra e uma oportunidade para quem está pensando fazer a prova da certificação.
Fotos da palestra
terça-feira, 8 de setembro de 2009
Novidades no Java 7
Como estou sem muito tempo para escrever, motivo = TCC é o bixo, com isso só irei postar um link que falar de algumas novidades que já estão confirmadas para o Java 7.
Esse link, eu tirei do guj e acho que algumas pessoas já viram, mas o que vale são as novidades.
Link: ttp://guj.com.br/posts/list/136626.java
Vou tentar escrever mais no próximo post.
Se alguem quiser ajudar alguma coisa interessante, é só entrar em contado.
abraaaaaço!!
Até mais galera.
segunda-feira, 24 de agosto de 2009
Eventos OnLine No OSUM
Essa semana acontece eventos online no http://osum.sun.com palestra e "mini-cursos" promovidos por comunidades voltado a linguagem java e software livre.
Calendário de eventos
Dia 24 de agosto. Hoje.
Acontece:
Interfaces graficas en java con netbeans
- das 17:00 a 19:00 – Por definir Interfaces graficas en java con netbeans Organizado por Santiago . É em espanhol.
-
Das 17:00 a 19:00 – Assembly hall This would be the first event for our OSUM community. this will also serve as membership drive for our community. Organizado por Karthik Arvind |
Das 18:00 a 19:00 – Octagon Annexe - First Floor Inductions 2009 - Online exam for selecting open source enthisiasts as members of Sun Club Organizado por Karthik Sankar
25 agosto terça-feira
Software Freedom Day webinar Training
Das 8:00 a 11:00 – Buenos Aires Software Freedom Day (SFD) is a global celebration of Free and Open Source Software (FOSS) scheduled for Sept 19, 2009. Next Tuesday 25, 8 AM Buenos Aires, I will be sharing some slides and advice... Organizado por Eze Singer | Tipo: sfd2009training, webinar . Em Espanhol
-
Software Freedom Day webinar Training
Das 8:00 a 10:00 – Buenos Aires Software Freedom Day (SFD) is a global celebration of Free and Open Source Software (FOSS) scheduled for Sept 19, 2009. Next Monday 24, 10 PM Buenos Aires, I will be sharing some slides and advice... Organizado por Eze Singer | Tipo: sfd2009training, webinar
-
Seminario Plataformas de Servicio & Software Libre
Das de 9:00 a 14:00 – Santo Tomas Concepcion Seminario Plataformas de Servicio & Software Libre Expositores: Italo Foppiano Felipe Cerda (Introducción a OpenSolaris) Francisco Chamorro Giordan Marchant. Organizado por Felipe Cerda |
Sun Vision Duoc Sede Alonso Ovalle
Das 10:00 a 21:00 – sede alonso ovalle Sun Vision, en este día se realizaran diferentes Charlas desde las 10:00 a las 14:00 hrs. y de 19:00 a 21:00: 1 - Sun Academic Initiative 2 - Introducción a OpenSolaris 3 - Uso de perfiles de Open... Organizado por Patricia Albornoz |Seminar on Open Source and the Corporate World
Das 11:30 a 13:00 – Thanjavur,SASTRA We have a Open Solaris Marketing engineer who will address on the OPen Source Technologies and how do corporate world use FOSS. Organizado por Dwarakanath Jagadeesan(Chela)Seminar on OpenSolaris
25 agosto 2009 de 16:30 a 18:00 – A13 Hall Tech-Talk on OpenSolaris by Mr. Kumar Abhishek, Staff of Solaris Outbound Product Marketing at Sun Microsystems Organizado por Karthik Sankar | Tipo: sfd2009 Você não respondeu.
26 agosto
Sun Vision
26 agosto 2009 de 10:00 a 19:00 – Duoc Valparaiso 1 - Sun Academic Initiative 2 - Introducción a OpenSolaris 3 - Uso de perfiles de OpenSolaris DTrace en aplicaciónes NetBeans - Visual Web & AJAX Organizado por Jorge Araneda Flores |Palestra "Aumentando a Empregabilidade - Iniciativas Acadêmicas da Sun"
26 agosto 2009 de 11:00 a 13:00 – Instituto de Computação da UFF, sala 209 Esta palestra é de cunho introdutório e tem como objetivo apresentar aos estudantes maneiras de avançarem em suas carreiras através das iniciativas acadêmicas da Sun Microsystems. Após a apresentaç... Organizado por Leonardo Freitas |Por enquanto é só, até mais.
sexta-feira, 21 de agosto de 2009
Freeson - Comentários - | Agora Vem o COALTI |
Um dia depois após o termino do evento vou deixar meus comentários sobre o mesmo.
* Desenvolvimento;
* Segurança;
* Engenharia Social;
* Crimes Digitais;
* Certificação;
* Criptografia.
Mais informação click aqui , e até lá.
segunda-feira, 17 de agosto de 2009
Eventos em Alagoas |FreeSon e Debian Festival IV|
Pela manhã começa o IV Debian Festival, com a metodologia de grupo sendo você o participante e palestrante, a troca de conhecimento que é o mais importante. O evento tem inicio no dia 17 de agosto as 8h e 30min da manhã com os minucurso até as 11h e 30 min, pela tarde começa as palestra e vai até o dia 19, clicando aqui você fica por dentro de toda a programação.
Já pela noite dá o inicio no mesmo dia ao evento Freeson, um seminário que faz a ênfase o Software livre. Contando com minicurso e palestra e o install night para quem quiser aderir ao software livre, clicando aqui você terá mais informações.
Para você ter mais uma visão do software livre ta ai dois eventos para adicionar mais conhecimento para você.
domingo, 9 de agosto de 2009
Como fazer um executável com um projeto web.
Vá no botão Export, quando apertar vai aparecer um nova janela como essa abaixo:
Agora seleciona a pasta Web depois o WAR file e aperte em Next. Irá aparecer outra janela e essa você irá colocar o nome do projeto, normalmente já vem com o nome da pasta, a pasta de destino e você pode selecionar se quer que exporte só o projeto ou o projeto e o código e ainda poderá escolhe o RunTime neste caso estou usando o Apache a janela é essa abaixo:
depois deste processo aperte em finish.
Pronto agora vá na pasta onde você salvou, pegue o projeto e copie para pasta, neste caso, do apache depois na pasta webapp e starte o serviço, logo após o service conlcuído vai aparecer uma pasta com o mesmo nome do projeto, pronto o seu projeto agora é quase um executável. Após esse trâmite vá no browser e coloque http://localhost:8080/NomeDoProjeto/pagina.jsf ou .jsp ou .faces.
Eu aconselho a fazer um atalho como o caminho se torna mais fácil. Com isso se estiver tudo certinho o seu programa irá rodar tranquilo.
Até a próxima pessoal.
sábado, 1 de agosto de 2009
SCJP... pass!!!
Salve a todos... gostaria de informar a todos que acompanham o blog do aljug, que eu passei na prova de programador Java!!!!!
Depois de tanto tempo estudando era a hora de fazer a prova. E o esforço foi compensado. Vou contar como foi o meu dia de sexta-feira(31/07), aonde tiver uma felicidade muito grande.
Como todos sabem o local para fazer a prova mais próximo é em recife. Sair de casa 6:30, com o livro da katty no braço e um resumo que fiz de estudo dentro do livro. Fui lendo os pontos que poderiam me atrapalhar(thread e conjuntos) quase a viagem toda. Como não saiba que horas iria chegar, marquei a prova para o horário mais tarde possível, que no caso é de 14:00.
Para minha surpresa, a pessoa com quem eu fui, dirige muito bem e muito rápido. Cheguei em recife em torno de 10:30. Como a pessoa tinha que deixar algumas pessoas em alguns lugares pensei que ira dar tempo para almoçar, descansar e ir fazer a prova. Estava errado. As 11:20 eu já estava no local aonde fiz a prova (ITECI), local muito bom e fui muito bem recepcionado.
Cheguei falando quem eu era e o que tinha ido fazer lá, para a minha surpresa a recepcionista fala: “Quer fazer agora??”, pronto ai o coração bateu forte. Pensei bem e disse que SIM, pois estava lá para fazer isso. Não adiantava mais lê nada, só queria fazer essa prova logo.
A recepcionista chamou a pessoa responsável para aplicar a toda. Essa pessoa pegou os meus dados e depois de assinar um ata, ele me levou para uma sala com três computadores. Depois dele fazer o login e digita os meus dados em um sistema, virou para mim e disse, boa sorte. Tinha chegado a hora.
Respirei fundo, tomei o um pouco de água e fui começando. Uma coisa que me deixou um pouco mais calmo foi as primeiras questões que aparecem, são da SUN, acho que entorno de 15 questões, sobre produtos, a maneia de como estudei e coisas do gênero.
Depois de responder todas essas questões tinha chegado a hora. E logo de cara uma questão de Thread( um assunto bastante interessante mas que não gosto muito). Tinha a estrategia de marcar as questões de thread para fazer no final da prova, mas dando uma olhada rápida vi qual era o erro e pronto, marquei a resposta certa e partir para as outras.
As questões foram muito diversificadas, acho que o único assunto que não caiu foi em relação a classpach e arquivos jar.
Como muitas pessoa falam no GUJ, muitas questões que estão no testkiller( um simulado que se encontra na internet) aparecem na prova e isso acontece mesmo. Acho que 20 questões que estavam na prova, eu já tinha feito antes no testkiller.
Quando acabei de passar pelas 72 questões. Comecei a voltar e ir fazendo as questões que tinha marcadas para revisão, acho que eram 14 questões que tinha marcado para fazer. A maioria era de drag-drop.
As questões do tipo de drag-drop, foram entorno de 20 mas todas relativamente simples, abro um parentese em relação a um questão sobre diretório e arquivos, que eu não soube fazer.
Depois de 1 hora e 35 minutos de prova e 72 questões feitas e revisadas, achava que estava na hora de clicar para saber o resultado. Depois desse clique fui logo levantando e indo para a recepção aonde sai o relatório da prova. Perguntei para a mulher que estava lá, se já tinha saído o resultado e ela falou que estava saindo. Foram 30 segundos que demoram muito mesmo. Ela pegou o resultado olhou e passou para mim, dizendo: “Parabens”.
Estava lá. PASS!!!!
Acertei 87% da prova, não pensei que seria tanto assim mas fiquei muito contente. Muito bom você conquista uma coisa que estava batalhando para isso. É ótima a sensação.
Peguei as minhas coisas e fui para a rodoviária trocar a minha passagem que era para as 19:00 horas. Conseguir pegar o ônibus de 13:30. Com essa correria esqueci de comer :). Voltei no ônibus comendo besteiras que estavam na minha bolsa.
Esse foi a minha sexta-feira(31/07). Não ser difícil para esquecer esse dia.
Tenho que agradeço a todas as pessoas que estiveram comigo esse tempo que estudava e que fui com anti-social. Muitas pessoas tiveram muita paciência comigo e me apoiaram muito. Valeu!
Agradeço a todos vocês que estiveram comigo essa batalha. Valeu!
Vou ficando por aqui e até a próxima.
Qualquer coisa que possa ajudar sobre a prova de certificação programador Java, estou aqui para isso. Até mais!!!
segunda-feira, 27 de julho de 2009
Collection
É fundamental saber que a API de conjuntos é formada por Interfaces(List,Set e etc) e Classes(ArrayList, TreeSet e etc).
Principais INTERFACES que é preciso saber para a prova( e para a vida real): Collection, List, Set, Map, Queue, SortedMap e SortedSet. Classes concretas que é preciso saber: HashMap, Hashtable, TreeMap, LinkedHashMap, HashSet, LinkedHashSet, TreeSet, ArrayList, Vector, LinkedList, PriorityQueue, Collections e Arrays.
Os conjuntos são divididos em quatro tipos: Listas, Conjuntos, Mapas e Filas. E ainda tem mais quatro características: Classificada, não Classificada, Ordenada e não Ordenada. Obs: um conjunto pode ser não-classificado e não-ordenado, ordenado e não-classificado ou ordenado e classificado, mas nunca pode ser classificado e não-ordenado( porque classificação é um tipo de ordenação).
Abordando as Interfaces
LIST: é o conjunto que o índice tem relevância, é o único que tem o método indexOf(). Classes Concretas:
- ArrayList: é como uma array que pode crescer.
- Vector: é semelhante ao arraylist, a diferença é que tem os seus métodos sincronizados em relação a thread.
- LinkedList: tem os seus elementos duplamente encadeados entre si. Essa classe também implementa a interface Queue, entao também tem os métodos: peek, poll e offer.
SET:da relevância a exclusividade, assim não permite elementos duplicados. O método equals() determinará se os elementos são iguais.
- HashSet: usa o código hashing do objeto para fazer a inserção.
- LinkedHashSet: é uma versão ordenada de HashSet, mandando uma lista de encadeamento duplo para os elementos.
- TreeSet: garante que os elementos fiquem em sequencia ascendente.
MAP: identificadores exclusivos é que são relevantes. Uma classes exclusiva (o identificador) é mapeada para um valor.
- HashMap: é um conjunto não-classificado e não-ordenado; e a ordem de iteração não é relevante.
- Hashtable: é similar ao HashMap, a diferença é que os métodos são sincronizados em relação a thread.
- LinkedHashMap: esse conjunto mantém a ordem de inserção.
- TreeMap: é classificado e é possível especificar como os elementos devem ser comparados entre si quando forem ordenados.
QUEUE: armazena uma lista de “coisas a fazer”, é um tipo de FIFO(primeiro que entrar, primeiro a sair)
- PriorityQueue: esse conjunto criar uma fila com ordenação, assim os elementos são ordenados.
Observação: ao utilizar conjuntos que usem o método Object.hashcode(), por exemplo: HashSet ou LinkedHashSet, iteração ou adição sobre o conjunto. É fundamental que seja feito a sobreescrita correta do hashcode para não permite elementos duplicados.
Classificando Conjuntos
Os conjuntos podem ser classificados de diversas maneiras, por exemplo, um ArrayList de String é classificado alfabeticamente. Para fazer isso é utilizado o método “sort” da classe concreta Collections. Exemplo:
List
O método add() da interface Set retorna um boolean(true se o elemento foi inserido ou false se o elemento não foi inserido);
Não existe o método add() em Map, para adicionar elementos em Map é utilizado put();
Os métodos peek(),poll() e offer() só são encontrado na interface Queue;
Para fazer interação em um conjunto, é preciso que os elementos sejam compatíveis, caso isso não aconteça vai ser lançada uma exceção.
ArrayList o método size() para retornar a quantidade de elementos.
segunda-feira, 20 de julho de 2009
53 palavras
Continuando a escrever sobre tópicos da prova de certificação Java programador (SCJP) SUN. Hoje pretendo escrever algo “leve” sobre Java, algo que mesmo quem não esta estudando para certificação deve saber ou pelo menos ter uma ideia. E o assunto do post é: Palavras Reservadas.
O que seriam palavras reservadas? São palavras que não podem ser usadas como identificadores( nome de classes, métodos ou variáveis).
Alguem tem alguma idéia de quantas palavras existem em Java que são reversadas e qual a funcionalidades que elas tem?! Atualmente em Java(1.6) existem 53 palavras que são reversadas. No Java 1.4 eram 52 palavras e no Java 1.3 eram 51.
Alguns podem pensar que 53 palavras é muita coisa para saber, mas se for analisado bem é muito provável que um programador, mesmo que seja iniciante, já sabe mais de 60% das palavras reservadas.
As primeiras 26 palavras:
public, private, protected;
byte, short, int, long, float, double, boolean, char;
if, while, for, do, switch, case, default, break, continue,else;
try, catch, finally, throw, throws.
Facilmente, é possível contar 26 palavras reservadas. Só utilizando palavras que são utilizadas para uso de visualização de métodos, tipos de variáveis primitivas, controle de fluxo e exceções e possível contar quase a metade das palavras.
Continuando, mais 15:
package, import, extends, implements, class;
new, false, true, final, interface;
return, static, this, super, instanceof.
Estamos quase acabando, agora já temos 41 palavras reservadas.
Agora vai acabar.
abstract, assert, null;
enum,void,synchronized;
volatile, strictfp,trasient,native;
goto, const.
Pronto, já escreve todas as 53 palavras reservadas que existem em Java. Fácil, não?
Para acabar esse post, vou escrever para que serve algumas palavras que alguns nunca sabiam que existiam, como por exemplo: strictfp.
strictfp – é usado em métodos e classes para forçar os pontos flutuantes a aderirem ao padrão IEEE754.
native – é usado em método que serão implementado pelo sistema operacional. Um método que usa native em sua descrição não tem corpo e com isso, termina com “;”.
synchronized – é utilizado em métodos que só pode ser acessado por um thread de cada vez.
goto e const – são utilizadas para NADA. É isso mesmo, essa palavras não tem funcionalidades, os arquitetos de Java pensarão que essas palavras serviram utilizadas em algum momento, então tonaram essas palavras reservadas.
volatile – particularmente eu não usei essa palavra e para o exame SCJP, a pessoa só precisa saber que essa palavra é só utilizada em variável de instância.
transient – é utilizado em variáveis de instância para avisar a JVM que essa variável não vai ser serializada.
Era só isso vim escrever para vocês. Espero que ter ajudado e contribuído o crescimento do conhecimento. Desculpa se escreve alguma coisa errada e qualquer coisa estamos ai.
Abraaaaço e até a próxima.
Fonte: livro da Kathy Sierra, Certificação Sun para programador Java 5, guia de estudo.
domingo, 12 de julho de 2009
O simples/chato Array
Arrays são objetos que armazenam diversas variáveis do mesmo tipo, podendo armazenar variáveis de referência, primitivos ou objetos. É bom lembrar mesmo se for criado um array de tipo primitivo, na compilação os primitivos são convertidos para as suas respectivas classes Wrappers. Exemplo. int -> Integer.
Declaração de Array:
Int [] X ou int X[] // declaração do tipo de armazenamento, int é o tipo e X é o nome do array.
Thread[] t ou Thread t[] // declaração de um array que vai armazenar objetos de Threads.
Lembrando que nunca é válido incluir o tamanho do array da declaração. Exemplo: Int [3] X;
Construção do Array:
Construir o array significa a criação do objeto na memória, através da palavra-chave new ou com o uso de uma sintaxe abreviada. Para ser criado o array é necessário informar a quantidade de elementos do array ou informar diretamente os elementos. Exemplos:
Int [] X= new int[5]; // criando um objeto array com cinco espaços para armazenamento de tipos int.
Int [] X = {2,3,4,5}; // criando um objeto array já informando quais os elementos que ficaram no objeto, sintaxe abreviada.
Pontos importantes, parte 1:
-Não informar a quantidade de elementos na construção de um array, vai gerar um erro de compilação. Exemplo: Int [] X= new int[];
-Na criação de um array que armazena referencia de objetos, exemplo: Thread[] t = new Thread[5], não esta sendo criado nenhum objeto do tipo Thread. O único objeto que foi criado, foi o t, que é o array.
Array multidimensionais
A definição de arrays multidimensionais é bem simples, são arrays com outros arrays armazenados. Exemplo: String [] [] nomes.
Inicializando um array
Inicializar um array significa armazenar os itens nele. Os itens do array são os elementos que ficaram alocados nele dependendo da declaração do tipo do array. Os itens são organizados pelo índice, sempre começando do zero. É possível acessar diretamente um elemento informando índice dele. Exemplos:
Animal [] animais = new Animal[3]; // só existe um objeto agora, que é o animais, é um array que armazenará elementos do tipo de Animal;
Animais[0] = new Animal(); // esta sendo criado um objeto do tipo de Animal e alocando ele no array animais no índice zero
Animais[1] = new Animal(); // esta sendo criado um objeto do tipo de Animal e alocando ele no array animais no índice um
Animais[2] = new Animal(); // esta sendo criado um objeto do tipo de Animal e alocando ele no array animais no índice dois
Agora esse código contém 4 objetos, um do tipo array e três do tipo de Animal.
É importante qual é o ultimo índice de um array. Tentar acessar um índice que não existe gerar um exceção do tipo ArrayIndexOutBoundsException. Exemplo:
Animal [] animais = new Animal[3];
Animais[2] = new Animal(); // o índice 2, é o ultimo índice acessível do array pois a quantidade de elementos que o array comporta no máximo 3 e lembrando que os índices começam no zero.
Animais[3] = new Animal(); // não é possível fazer isso, pois o índice de numero 3 não existe no array.
Lembrando também que os índices não podem ser numero negativos. Exemplo:
Int []teste= new int[5];
Int y = -2;
teste[y] = 3; // não é valido, porque y é o numero negativo;
Pontos importantes, parte 2:
- é possível inicializar dinamicamente os valores de um array, através de loop for e utilizando o atributo length de array. Exemplo:
Animal [] animais = new Animal[50];
for(int i = 0; i
animais[i] = new Animal(); // atribui o novo elemento Animal na posição do índice i;
-array tem o atributo length e String tem o método length(). Existe questões da prova que abordam isso.
Array de referencia a objetos
Se o tipo declarado de um array for uma classe, esse array armazenar qualquer objeto subclasse do tipo declarado. Exemplo:
class Car{}
class Gol extends Car{}
class Ferrari extends Car{}
class Aviao{}
utilizando o array: Car[]carros = new Car[4];
carros[0] = new Car();
carros[1] = new Gol();
carros[2] = new Ferrari();
Todas as declarações são verdadeiras, pois esta sendo adicionados ao array objetos que são subclasse de Car. Utilizando o código: carros[3] = new Aviao(); não é possível já que não é uma subclasse de Car.
Depois de muito escrever vou ficando por aqui. Espero ter ajudado. Lembrando que existem algumas coisas que não abortei nesse post (como procura de dados através o método binarySearch). Lembrando também que é sempre bom estudar mais um pouco sobre array antes de fazer a prova de certificação e para o dia-a-dia também.
Qualquer coisa estamos ai.
Ate à próxima.
domingo, 5 de julho de 2009
Post extends Exception
No desenvolvimento de software qualquer desenvolvedor deve ter em mente que em algum momento vai escrever algum que código que terá chance de provocar algum tipo de erro, erros também podem acontecer por causa do hardware. Para que exista uma manipulação eficiente desses erros, a linguagem Java fornece a manipulação de exceções.
Com essa manipulação os desenvolvedores poderão detectar erros e ainda fornece a possibilidade de lida com exceções de diferentes tipos. Mas o que seria uma exceção? É uma ocorrência que altera o fluxo normal do programa.
Existem 3 palavras que estão diretamente relacionada com o tratamento de exceções: TRY, CATCH e FINALLY. Vamos falar dos dois primeiros.
TRY é usado para indicar um bloco de código que poderá gerar alguma exceção, esse bloco é chamado de região protegida. Uma ou mais cláusulas de CATCH (manipuladores de exceção) poderão ser relacionadas para exceções especificas. Exemplo:
try{
//linha 1
//linha 2
}catch(exception1){
// linha 3
} catch(exception2){
// linha 4
}
//linha 5
Nesse pseudocódigo a linha 1 e 2 constituem a região protegida. A linha 3 esta no bloco de catch do tipo exception1, significando que se acontecer alguma exceção na linha 1 ou 2 e a exceção por desse tipo, o código da linha 3 executará. A área que a linha 4 esta é o bloco do catch relativo ao tipo de exception2, então se alguma exceção acontecer no bloco do try (linha 1 e 2) e for do tipo exception2, a linha 4 ira ser executada. Caso alguma exception ocorra no bloco try, a execução vai pular o código restante do bloco e vai começar a executar o bloco catch do tipo da exception e depois passará para a linha 5 e continuar a executar.
Falando agora da terceira palavra relacionada com exceções. FINALLY é um bloco de código que sempre será executado depois do bloco TRY, mesmo se uma exceção for lançada ou não. Caso uma exceção ocorra no bloco try, a execução passar para o bloco catch relacionada a essa exception e depois executará o bloco finally.
try{
// linha 1
// linha 2
}catch(exception1){
//linha 3
}finally{
//linha4
}
Explicando o código. Como antes a execução começar na linha1 do bloco try, caso uma exception ocorra e essa do tipo exception1 então a execução passara para o bloco do catch e depois ira executar o bloco do finally. Caso nenhuma exception ocorra no bloco try, a execução ira direto para o bloco try. Lembrando, finally sempre será executado (existem poucos casos aonde ele não será executado).
Demonstrarei alguns códigos validos e não-validos em relação a try, catch e finally.
try{
}finally{
}
O código acima é valido, um bloco try tem que ter um bloco finally ou pelo menos um bloco catch.
try{
}
System.out.print(“alguma coisa”);
Não é valido, pois não existe nem bloco try e nem catch.
try{
}
System.out.print(“alguma coisa”); // erro aqui
catch{
}
Não pode existe código entre os blocos try e catch.
Irei falar agora da Hierarquia de Exceções.
Toda as classes de exceções são subtipos da classe Exception. Essa classe é subtipo da classe Throwable que é subtipo de Object.
Throwable tem duas classes que são subtipos dela: Exception e Error. As classes que são subtipos de Error, são situações incomuns como memória cheia, por isso é inviável fazer o tratamento essas erros.
Para ter mais informações sobre a exception gerada, existe um método em Throwable que é o printStackTrace que fornece mais informações sobre a exceção que foi lançada. Exemplo:
try{
}catch(Exception e){
e.printStackTrace;
}
Falando agora de blocos de catch. Um bloco catch que tenha referencia a uma exception não pode vim depois um catch que seja maior que essa exception. Exemplo.
try{
}catch(IOException e){
}catch(FileNotFoundException e){
}
Esse código não compila pois a exception FileNotFoundException é um tipo de IOException então não pode vim depois.
Existem dois tipos de exceções, checadas e não-chegadas. Toda exceção que esteja abaixo de Exception é checada, mas RuntimeException não é chegada e é subtipo de Exception. Qualquer evento que esteja abaixo de Error é não checada. E qualquer exceção que seja criada, utilizando extends Exception é checadas.
Métodos que lancem exception do tipo checadas tem que existe em sua discrição uma informação sobre essas exceções, isso é feito através da palavra: THROWS. Exemplo:
public void myFunction() throws IOException, MyExpection{
}
Escrevendo código, é possível lançar exception utilizando a palavra reservada THROW. Exemplo:
public void myFunction2(){
throw new IOException;
}
Um método que esteja chamando outro método que lance exceções checadas deve tratar essa exception (utilizando try e catch) ou relançar essa exception utilizando THROWS. Exemplo:
void doStuff(){ // esse método deve utilizar try e catch ou utilizar throws
doMore();
}
void doMore(){
throw new IOException;
}
Estou acabando esse post (que foi enorme). Exceções é um assunto aparece por toda a prova e é sempre bom estudar um pouco mais. Espero que tenha ajudado com alguma coisa e desculpa de escrevi alguma coisa errada.
Fonte: Livro da Kathy Sierra, Certificação Sun para programador Java 5, guia de estudo.
terça-feira, 30 de junho de 2009
ALJUG 1 ano de batalha
segunda-feira, 29 de junho de 2009
Sobrecarga e Sobrescrita
Voltando a falar de certificação, como no final do mês estarei indo a Recife fazer a prova, vou tentar escrever esse mês alguns post´s sobre alguns temas que são abortados e criam dúvidas para quem esta estudando para a certificação SCJP ou para quem estuda Java diariamente.
Nesse post vou escrever sobre sobrescrita e sobrecarga de métodos. Espero ajudar alguns e desculpe-me se escrever algo errado. Vamos lá.
Sobrescrita
Sempre que uma classe que herde os métodos da sua superclasse, poderá sobrescrever esse método, lembrando que métodos marcados como final não são herdados.
Exemplo:
public class Animal {
public void andar(){
System.out.println(“pessoa andando”);
}
}
public class Cavalo extends Animal{
public void andar(){
System.out.println(“Cavalo andando”);
}
}
utilizando o código abaixo:
Animal a = new Animal(); aparecerá: pessoa andando
Animal b = new Cavalo(); aparecerá: Cavalo andando
O benefício da sobrescrita é a definição de métodos específicos para as classes mais especificas. Continuando. É possível um método sobrescrito chamar o método da sua superclasse, através da palavra reservada: super. Utilizando o exemplo passado, temos:
public class Cavalo extends Animal{
public void andar(){
super.andar();
System.out.println(“Cavalo andando”);
}
}
Algumas observações sobre a sobrescrita, utilizando o método andar de Animal.
* Na sobrescrita, não é possível tonar o modificador mais restrito. Ex: private void andar(){}
* Na sobrescrita, não é possível lançar novas exceções checadas: Ex: public void andar() throws IOException{}
* Quando existir uma alteração de argumentos, não é uma sobrescrita e sim uma sobrecarga. Ex: private void andar(String comida){}
* Na sobrescrita, não é possível fazer uma alteração no tipo de retorno. Ex: public String andar(){}
Sobrecarga
Com a utilização da sobrecarga é possível fazer uso do mesmo nome de um método outras vezes, mas com a alteração dos argumentos. Exemplo:
public class Test {
public static void calcular(int x, int y){
System.out.println(“dois numeros: ” + (x+ y));
}
public static void calcular(int x, int y, int z){
System.out.println(“tres numeros: ” + (x+ y+ z));
}
public static void main(String [] args){
int a = 10;
int b = 20;
int c = 30;
calcular(b,c); // mostra: dois numeros: 50
calcular(b,c,a); // mostra: tres numeros: 60
}
}
Algumas observações sobrecarga, utilizando o método calcular citado acima.
* Métodos sobrecarregados DEVEM alterar a lista de argumentos: Ex: public static void calcular(int x, int y, int z, int a){}
* Métodos sobrecarregados PODEM alterar o tipo de retorno: public static int calcular(int x, int y){}
* Métodos sobrecarregados PODEM alterar o modificador de acesso: private static int calcular(int x, int y){}
* Métodos sobrecarregados PODEM lançar novas exceções verificadas ou mais abrangentes : public static int calcular(int x, int y) throws IOException{}
Vou postar uma tabela que tem no livro da Kathy, essa tabela é bastante interessante.
Métodos sobrecarregados Métodos sobrescritos
Lista de argumentos Deve ser alterada Não deve ser alterada
Tipo de retorno Pode ser alterado Não deve ser alterado
Exceções Podem ser alteradas Podem ser reduzidas ou eliminadas
Acesso Pode ser alterado Não deve se tornar mais restritivo
Chamadas O tipo de referência O tipo do objeto
Bom, é isso. Espero ter ajuda e qualquer dúvida, sugestão ou criticas são bem vindas.
obs. Minha fonte de referencia foi o livro da Kathy Sierra, que é um ÓTIMO livro para preparatório para a certificação.
Até a próxima.
terça-feira, 23 de junho de 2009
Vai mudar
Essa noticia vai trazer algumas mudanças para quem vai fazer as provas de certificações da SUN.
No blog do Felipe Gaucho:
http://weblogs.java.net/blog/felipegaucho/archive/2009/06/sun_certificati.html
Ele fala que aconteceram mudanças no final do ano e no começo de 2010 nas provas de certificação SUN.
As provas passaram a abordar mais a prática dos programadores e não o "decoreba" que acontece nas provas de hoje.
Penso que com essa mudança vai gerar mais valor aos programadores. Mas espero que não reflita nos programadores que estão tirando as suas certificações agora (como Eu) e que não traga consequências para quem já tem suas certificações.
Vou ficando por aqui e estou vê as suas opiniões.
Abraaaço
quarta-feira, 3 de junho de 2009
Promoção Retake Sun
Estou passando para deixar uma notícia para quem esta interessado em tirar a certificação Java. Esta aberta a promoção Retake da Sun. Com essa promoção você pode fazer a prova duas vezes. Caso não passe na primeira tentativa, você pode tentar novamente. Promoção válida para compra de vouchers até o dia 10 de junho.
Eu já solicitei o voucher da minha prova e o colega Tiago também já esta providenciando o voucher dele. E o meu amigo Fernando Kenji já esta o voucher dele em mãos para fazer a prova.
Para mais informações:
https://www.suntrainingcatalogue.com/eduserv/client/viewPromo.do?pr_id=5590
Quero parabenizar aos colegas Jairo e Felipe Prata, que a alguns dias atrás foram a recife fazer a prova SCJP 6 e conseguiram ter sucessos em suas jornadas.
O depoimento do Prata a respeito da prova esta acessível no link: http://guj.com.br/posts/list/127653.java
Espero que outras pessoas se interessem por tirar uma certificação Java. Tenho a opinião que através dos estudos para a certificação a pessoa conhece o que a linguagem Java oferece para quem a usa.
Se alguém esta pensando em fazer a prova ou começar a estudar para ela. Fale conosco para podemos discutir.
Estamos aqui para ajudar e aprender.
Abraaaaaaço a todos.
segunda-feira, 18 de maio de 2009
Mais um Capítulo da Venda da Sun
Depois de mais ou menos um mês depois da data da compra Sun, quando se esperava que estava tudo caminhando para a calmaria. Mais um capítulo foi escrito. Acionistas abriram três processos com o objetivo de bloquear a venda para empresa.
Essa informação foi passada pela própria Sun através de um formulário reportado à SEC (Securities and Exchange Commission), órgão regulador financeiro americano. Os acionistas alegam que a empresa não manteve suas responsabilidades fiduciárias ao aceitar a oferta da Oracle. Os acionistas ainda falam que a oferta é “injusta e inadequada”. A Sun, nessa semana, ainda revelou que pode ter violado uma lei americana que proíbe empresas de subornar autoridades internacionais.
Alguem sabe quando essa novela vai acabar?!?! é muito difícil de manter alguma ideia de quando isso vai acabar, mas vejo a compra a Sun pela Oracle como sendo proveitoso para a comunidade Java, não sei se estou errado nisso(Espero que não). Espero que a Oracle ajude com a comunidade Java em peso. Só o tempo dirá se a compra foi bom ou ruim para a Sun e os seus produtos.
Qual a sua opinião sobre isso? Opinem.
sábado, 9 de maio de 2009
Fazendo Uma SImulação da "MegaSena" Em Java
x = new Random().nextInt(5);
if (x == 0){
x = 1;
}
e assim sucessivamente para as outras letras.
no modo web você define cada letra a um label por exemplo:
h:outputText id="terceiro" value="#{bolao.z}">
Você pode implementar o ajax usando o a4j:support e no commandbutton rededenrizar.
"h:commandButton value="Gerar Numeros" action="#{bolao.GerarNumeros}">
a4j:support event="onsubmit" reRender="segundo, terceiro, quarto, quinto, sexto">/a4j:support>
/h:commandButton>"
Pronto com isso é só escolher os números e torcer para sair na telinha do computador, Boa diversão e até a próxima.
sábado, 18 de abril de 2009
Alagoas Digital
Estamos voltando depois de um tempo parado. O nosso amigo miguel deu uma colaboração no post anterior mostrando um exemplo sobre lógica de programação com relação a parcelamento de contas. Espero que tenham gostado e o espaço esta aberto para quem quiser post algo interessante sobre Java ou algum tema relacionado.
No post de hoje não pretendo falar sobre nenhum tipo de framework, algum algoritmo ou técnica de programação. Pretendo falar a respeito de como foi o evento que ocorreu na semana passada aqui em maceió: o ALAGOAS DIGITAL.
O evento que estava sendo falado a muito tempo por pessoas do meio informática do estado, ocorreu no dias 6,7 e 8 desse més. Conseguindo abrangi um grande leque de opções relacionada as áreas da tecnologia, o evento foi muito bem aceito por todo que compareceram ao local. Palestras e mini-cursos abordaram diversos assuntos.
Posso citar o mini-curso de zope/plone, aonde foi ministrado por Jean e Alexandre. Os instrutores conseguiram passar para quem estava lá, as premissa básicas para quem quer começar a desenvolver com essas ferramentas. Demonstrando a parte teórica e depois partindo para a prática, o curso foi extremamente proveitoso. Pretendo continuar os meus estudos com essas ferramentas.
Não posso deixar de falar do grande momento do Alagoas Digital, a palestra de abertura. Uma palestra apresentada por ninguém menos que Sílvio Meira, com certeza vai ser uma palestra muito interessante. Infelizmente não pode ir( provas de faculdade são lascas), mas pelo o que todo mundo falou a respeito, fica claro que o cientista-chefe do C.E.S.A.R não tem o seu nome divulgado no meio da área tecnologia a toa. O cara é fera mesmo.
ps. é possível baixar o áudio da palestra no esse link:
http://www.megaupload.com/?d=Y0WIBHLR
Seria muito bom para a comunidade de T.I. do estado que houvesse mais eventos, proporcionando uma maior integração da comunidade no estado. É através desses eventos que é possível construir comunidades, trocar experiências e saber o que tem pensado as pessoas que estão relacionadas a área de tecnologia do estado. E para lembrar a todos: vai ocorrer no dia 25 de abril o evento FLISOL em arapiraca, mais detalhes no site: http://flisol.softwarelivre-al.org
Estou acabando esse post dando um sugestão. Não deixem de escutar a áudio da palestra do Silvio Meira, é muito proveitoso para quem trabalha na área de T.I. E lembrando que o espaço para quem quiser escrever algo no ALJUG esta aberto, é só entrar em contato.
Estamos ficando por aqui!!
sexta-feira, 27 de março de 2009
Lógica de Parcela
Olá pessoal, estou aqui para apresentar uma lógica de parcelas, depois de procurar muito por uma luz na internet e não encontrar, e ter algumas dificuldades em fazer, coloco aqui a lógica para compartilhar. Primeiro quando você pensar em fazer compras, você pensa logo se pode comprar à vista, se não puder comprar à vista procurar as melhores facilidades para efetuar a mesma.
E quando você controla suas finanças com um software para sempre ter em mente o que comprou, o que precisa pagar e quanto foi o preço, melhor ainda com isso você tem mais controle. Para iniciar a lógica pensamos logo que o ano é constituído de 12 meses, logo mês tem que ser >(maior) que 0 e <=(menor) a 12, começamos o primeiro passo. Segundo passo e qual ferramenta de loop eu fiz do seguinte modo:
1. Temos que saber quantas parcelas foi dividida a compra;
2. Temos que saber dia, mês e ano.
Com isso vamos a lógica, Se parcela for maior igual a 1 então vamos fazer outro loop. Antes você pode está se perguntando por que maior IGUAL a 1, às vezes tem aquela compra que você paga uma parte à vista e outra deixa para o mês seguinte, por isso essa lógica. Vamos continuar agora você pode usar um se, mas mas aconselho agora a usar um “para”, caso numero de parcela é maior igual a 1, colocamos o i=1; i < numero de parcela; i++, ou seja, por exemplo temos uma compra de R$ 500,00 reias, eu quero dividir em 5 parcelas,na data 15/03/08, então com esse “para” vai acontecer o seguinte.
Agora sim a lógica completa.
if(NParcela >= 1)
{
for(int i =1; i < NParcela; i++)
{
Mes += 1;
if(Mes == 13 )
{
Mes = 1;
Ano += 1;
}
}
}
I = 1 = 15/03/08 Parcela = 100, quando passa de novo no loop ele vai ficar:
I = 2 = 15/04/08 Parcela = 100;
I = 3 = 15/05/08 Parcela = 100;
I = 4 = 15/06/08 Parcela = 100;e
I = 5 = 15/07/08 Parcela = 100.
Total = 500.
Ok?
Sugestões deixa um cometário, é sempre bem vindo.
PDF disponível em https://aljug.dev.java.net/servlets/ProjectDocumentList?folderID=9973&expandFolder=9973&folderID=0
quinta-feira, 19 de fevereiro de 2009
Certo, eu sei Java... e esta estudando o que mais?
Sempre fui uma pessoa que passava o dia programando em Java, pois no meu antigo emprego estava sempre desenvolvendo com java para web com o framework, JSF( que por sinal, acho sensacional).
Quando apareceu uma oportunidade de ir trabalhar no ITEC(Instituto Tecnologia da Informação e Comunicação). Procurei logo descobrir quais linguagens seriam usadas; fiquei sabendo que poderiam ser três linguagens: PHP, JAVA ou PYTHON.
Bom, Java não preciso falar muito, é o meu ponto mais forte( não estou falando que “sou o tal em java”, sou um mero estudante de Java que pretende fazer a prova de certificação de programador Java esse ano); falando de PHP, fiz um curso há um ano e oito meses de programação com Php e Mysql, penso que a curva de aprendizagem seria curta; MAS e python?!
Sempre escutei algumas coisas a respeito da linguagem, falaram que era uma linguagem fácil de aprender, tinha uma curva de aprendizagem fácil, tinha funcionalidades que muitas linguagens grande tinham( como: herança múltipla), característica de ser orientada a objetos e etc. Mesmo não sabendo de quase nada da linguagem python, decide que seria melhor para a minha carreira profissional pegar essa chance de trabalhar no ITEC.
Ainda tinha uma chance! No primeiro dia de trabalho, fiquei logo sabendo que haveria uma divisão das pessoas pessoas que foram chamadas( 4 pessoas ao total), 2 iriam trabalhar no Java para web utilizando JSF e as outras duas iriam trabalho com python e o framework Django. Mas estava sem sorte... Fui convocado para trabalhar com python!
Bom... estou encarando isso como um desafio, não é só porque tenho mais afinidade com Java que não vou estudar outra linguagem; logo fui pesquisar mais sobre python e descobri que esta sendo usada muito bem, google e Nasa usam python.
Logo após a primeira semana de trabalho já vi que python não é difícil, tem funcionalidades incríveis e há um grupo enorme de pessoas adortando python.
Para concluir, o que vocês estão estudando sem ser Java? Uma nova linguagem? Um novo padrão de projeto? Uma nova técnica de gerenciamento de software? Alguma nova distribuição no Linux? Algo que não tem nada haver com informática? Queria pedi a vocês que colaborassem com esse blog, é sempre bom propor novos conhecimentos.
ps. Estudem outras linguagens que estão crescendo no mercado.
Vou ficando por aqui e espero com a colaboração de vocês!
Bom carnaval a todos!
terça-feira, 27 de janeiro de 2009
QUEM É VOCE?!
Salve salve pessoal...
Como segundo postagem aqui. Gostaria de propor uma maior identificação de quem esta querendo participar essa comunidade que esta nascendo.
Estou seguindo a idéia do nosso amigo Fabiano Amorim; ele deu a idéia de cada um falar um pouco das experiências profissionais, das opiniões de cada um tem sobre a tecnologia Java, falar aonde trabalhar/estudar.
Querendo fazer com que a comunidade Java do estado tenha idéia de como anda o mercado local, fazer com que cada um saiba quem são as pessoas que tem usado Java e tentar trocar informações a respeito de alguma dúvida a respeito de algo relevante para qualquer membro da comunidade Java.
Estamos propondo isso porque já vimos que a comunidade Java do Estado tem crescido e existe muita pessoa boa atuando na área. Será que a duvida que você tem não poderia ser respondida com alguém por aqui do Estado. Um fato interessante aconteceu comigo há algumas semanas passadas, estava procurando alguma coisa a respeito de JSF, encontrei no GUJ a resposta da minha duvida; nada demais até aqui(quem nunca já procurou alguma coisa no GUJ?!?); o interessante era que a resposta tinha sido dado por uma amigo meu daqui do estado e o cara estuda comigo também.
Será que a sua dúvida sobre algum framework, API, programação e etc., será que não poderia ser respondida por algum conhecido?!?!
Pedimos que cada um, se se identifique; fale um pouco das suas experiências, aonde estudar, trabalhar em qual área, qual projeto esta engajado atualmente, ahhh qual o seu nome?!?!
Queremos a ajuda de todos! Vamos fazer essa comunidade crescer!
Abraaaço a todos e até a próxima!
quarta-feira, 14 de janeiro de 2009
Chegou a nossa hora!
Queremos fazer com que as pessoas se unam para trocar informações, conhecimentos, experiências e fazer com que cada um ganhe e ache algo importante para a construção do seu conhecimento sobre Java.
É preciso um local para unir as pessoas que usam o Java no seu dia a dia. Vimos a necessidade de criar um local a todos os usuários Java do Estado, objetivando um maior entendimento da linguagem Java e como anda o Estado em relação a linguagem Java.
Esse blog tem a função de proporcionar uma visão das novidades relacionados a Java, um entendimento melhor sobre as funcionalidades de alguma API especifica, propor uma ajuda múltipla sobre qualquer framework que esteja em ascensão ou até mesmo qualquer framework que seja interessante conhecer para esta bem colocado no mercado de trabalho, qualquer assunto que esteja relacionado com alguma experiência com Java vivida por algum colaborador.
Gostaríamos que esse blog crescesse com a ajuda de qualquer pessoa que tenha interesse em proporcionar uma união de todos que vêem a linguagem Java como forma de aprendizado, e uma linguagem que a cada dia não para de crescer e cada vez mais surge algo novo para que ser estudado.
Estamos aqui para fazer com que estudantes e profissionais da área de programação tenham um conhecimento médio de como anda o Estado em relação a programação.
Não estamos fazendo esse blog com o intuito de falar unicamente sobre JAVA. Queremos falar de todos os temas que são atualmente importantes e geram um enorme debate, exemplos: padrões de projetos, metodologias ágeis, metodologias tradicionais, software livre e etc.
Esperamos com a colaboração de todos para fazer esse blog muito bem conceituado e tenha muita coisa interessante para abordar aqui. Queremos deixar espaço disponível para qualquer um que tenha interesse em publicar algo, é só entrar em contato.
Write once, run anywhere