Tuesday, December 13, 2011

java Date between timer

public class Main {

public static void main(String args[]) {
boolean isOK =true;
int time = 0 ;
Calendar cal1 = new GregorianCalendar();
while(isOK){
Calendar cal2 = new GregorianCalendar();
time = (int) ((cal2.getTime().getTime() - cal1.getTime().getTime()) / 1000);

System.out.println(time);
if(time == 5){
isOK = false;
}
}
System.out.println("Days= " + time);
}
}

Saturday, October 1, 2011

Kim Tez Oturdu

public class Runing {
public static void main(String[] args) {
Scanner h=new Scanner(System.in);
int a= h.nextInt();
int massiv[]=new int [a];
int ixt= (int) ( (a-1)*Math.random()+1);
for(int i=0;i massiv[i]=i+1;
System.out.println("massivin olcusu="+a);
System.out.println("novbe="+ixt);
//Esas program
int d=0 ;int c=-1;
for (int i=0;i d=0;
while (d c++;
if (massiv[c%a]!=0) d++;
}
massiv[c%a]=0;

}
for (int i=0;i if (massiv[i]!=0) System.out.println("cavab="+(i+1));
}

}

Tuesday, May 17, 2011

Java SE Uygulamalari

package www.ethemsulan.com;
import java.util.regex.PatternSyntaxException;
import javax.swing.JOptionPane;
public class IpV4Kontrolu {
public static void main(String[] args) {
try {
String girilenIp=JOptionPane.showInputDialog("Bir IpV4 adresi girin");
if (girilenIp.matches("\\b(25[0-5]|2[0-4][0-9]" +
"|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?" +
"[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9]" +
"[0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b")){
JOptionPane.showMessageDialog(null, girilenIp+" dogru IpV4 adresi girildi");
} else {
JOptionPane.showMessageDialog(null, girilenIp+" yanlış IpV4 adresi girildi");
} 
} catch (PatternSyntaxException ex) {
ex.printStackTrace();
//127.0.0.1 dogru ipv4 localhost adresi
//299.299.299.299 yanlış 255 ten büyük olamaz.değerler her bir aralık
//255.255.255.256 yanlış max 255 olur.
//0:0:0:0:0:0:0:1 ipv6
//92.168.1.1 doğr ipv4 adresi
} }     }
Orj kod:http://www.ethemsulan.pastebin.com/yw9vp2iN
package www.ethemsulan.com;
import javax.swing.JOptionPane;
public class StringInt {
public static void main(String[] args) {
String kontrol=JOptionPane.showInputDialog("Bir sayi ya da string gir");
//girilen deger sayi yada string oldugunu bulur
if(kontrol.matches("^\\d+$")){
System.out.println("Girilen deger sayidir-->"+kontrol);
}else{
System.out.println("Girilen deger stringtir-->"+kontrol);
}  }  }
Bu örnek ile aynı işlevi gerçekleştiren başka bir kod :http://www.ethemsulan.com/2010/01/girilen-degerin-say-ya-da-string.html bakın.Yanı düzenli ifadeler bir çok farklı şekilde yazılabilir.
 
package www.ethemsulan.com;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class RakamLari {
public static void main(String[] args){
//rakamalri bulur.Bun tur orneklerin daha kisa yolu olabilir
Pattern kal2=Pattern.compile("[0-9]");
Matcher esl2=kal2.matcher("21 Subat 2010 tarihinde yazildi");
while(esl2.find()){
System.out.println("Rakamlar-->"+esl2.group());
}    }  }
Eğer [0-9]+ yazarsak o zaman 21 ve 2010 u ayrı ayrı bulur.Ama bu şekilde 2,1,2,0,1,0 şeklinde yazar.+ bir ve birden fazla demek.
package www.ethemsulan.com;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexKullanimi {
public static void main(String[] args) {
//m ile biten ve E ile baslayan kelimeleri bulur.
Pattern kalip=Pattern.compile("E.+?m");
Matcher esl=kalip.matcher("Bu cumlede Ethem tek " +
"eslesiyor.Evkarlandim bu gun salla");
while (esl.find()) {
System.out.println("Eslesen-->"+esl.group());
}    }    }
orj kod:http://www.ethemsulan.pastebin.com/f61c85875
package www.ethemsulan.com;
import java.util.regex.PatternSyntaxException;
import javax.swing.JOptionPane;
public class SayiKontrol {
public static void main(String[] args) {
try {
String girilenDeger=JOptionPane.showInputDialog(
"Tam sayi ya da string gir");
if (girilenDeger.matches("(?simx)(?")) {
int tamsayi=Integer.parseInt(girilenDeger);
System.out.println("Tam sayı girildi: "+tamsayi);
} else {
System.out.println("dize ya da char girildi:"+girilenDeger);
} 
} catch (PatternSyntaxException ex) {
ex.printStackTrace();
}  }  }
Orj kod:http://www.ethemsulan.pastebin.com/f222c383d
Eğer (?simx)(?
package www.ethemsulan.com;
import javax.swing.JOptionPane;
public class EmailKontrol {
public static void main(String[] args) {
String email=JOptionPane.showInputDialog("E-mail adresinizi girin");
//(?simx)\\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}\\b
//girilend egerin email olup olmadigini kontrol ediyor
if (email.matches("(?simx)\\b[A-Z0-9._%+-]+" +
"@[A-Z0-9.-]+\\.[A-Z]{2,4}\\b")) {
System.out.println(email+" email adresidir");
} else {
System.out.println(email+" email degil");
} 
}
}
Orj Kod:http://ethemsulan.pastebin.com/f11eb0376
package www.ethemsulan.com;
import java.util.regex.PatternSyntaxException;
import javax.swing.JOptionPane;
public class GirilenDegerSayimi {
public static void main(String[] args) {
String sayimi=JOptionPane.showInputDialog("Rakam ya da harf girin");
try {
if (sayimi.matches("(?")) {
System.out.println("Girilen "+sayimi+" bir rakam ya da sayidir");
} else {
System.out.println(sayimi+" sayi degil bir kelime ya da harftir");
} 
} catch (PatternSyntaxException ex) {
ex.printStackTrace();
}
}
}
Orj Kod:http://ethemsulan.pastebin.com/f6b3d144f
Girilen değerin sayı ya da string olduğunu bulur.Düzenli ifadeler çok kullanışlıdır.Kod yazmaktan kurtarır.
package www.ethemsulan.com;
import javax.swing.JOptionPane;
public class TarihKontrol {
public static void main(String[] args) {
//tarih formatini kontrol eden duzenli ifadedir
String dateTarih=JOptionPane.showInputDialog(
"Tarih girin format yyy-aa-gg seklinde");
if (dateTarih.matches(
"\\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])")) {
System.out.println("dogru");
} else {
System.out.println("yanlis");
} 
}
}
Orj Kod:http://ethemsulan.pastebin.com/f3f154fd9
4 rakamdan oluşan yil, iki rakamdan oluşan ay ve son ikisi de gün ve tanımlı oldukları aralığı kontrol eder.örneğin 2010-04-01 doğru. 2010-89-10 yanliş.
package www.ethemsulan.com;
import javax.swing.JOptionPane;
public class TimeSaatKontrol {
public static void main(String[] args) {
//saat ss:dd:ss veya ss:dd kontrol eder.
String dateTarih=JOptionPane.showInputDialog(
"Saat girin format ss:dd:ss ya da ss:dd seklinde");
if (dateTarih.matches(
"^(([0-1]?[0-9])|([2][0-3])):([0-5]?[0-9])" +
"(:([0-5]?[0-9]))?$"))
{
System.out.println("dgoru");
}else{
System.out.println("yanlis");
}
}
}

Tuesday, February 15, 2011

Java nasil calisir?

Bir java yazilimi su sekilde gelistirilir:

  1. Programci java kodunu yazar.
  2. Bu kod bir java derleyicisi ile derlenir. Sonucta bytekod adi verilen bir tur makine kodu ortaya cikar. Platform bagimsizligini saglayan sey bytecode'dir. Cunku bir kere bytecode olustuktan sonra yazilim tum isletim sistemlerinde calisabilir.
  3. Bu byte kod Java virtual Machine (Java Sanal Makinesi) tarafindan adim adim isletilir. Asagida java ve C++ kodunun gecirdigi asamalar gosterilmistir.

    Simdi bu adimlari iyice bir inceleyelim

    Java kodunun yazilmasi.

    java nesneye yonelik bir dil oldugundan tum yazilim siniflar ve nesneler uzerinden yurutulur. Siniflar uygulamadaki nesnelerin tanimlandigi kod parcalaridir. Java'da her bir sinif bir dosya icerisinde yer alir. Dosyalarin uzantilari .java seklindedir. Dosya adi ise icinde tanimlanan sinif ile aynidir. Ornegin, BenimSinif.java gibi.

    Derleme

    Derleyici kisaca herhangi bir editor ile yazilan java kaynak kodlarini (yani .java uzantili siniflarin yer aldigi dosyalari) java sanal makinesinin calistirabilecegi bir tur makine dili (assembler) olan Bytecode'a donusturur. Bu donusturulen bytekod ise (.class ) dosyalari icerisinde saklanir. Java kodunu derlemek icin bir java derleyicisine ve java kutuphanelerine ihtiyaciniz var. Su anda iki derleyici yaygin olarak kullanilamktadir. Bir tanesi Sun'in SDK'si ile birlikte gelen javac. digeri ise IBM'in acik kodlu derleyicisi jikes. Benim yaygin olarak kullandigim Jikes, cok hizli derlemesi ile unlu olsa da en son java yazilimlarini derlemek icin javac'ye ihtiyac duyulabilir. Ayrica linux altinda derleme yapmak icin gnu lisansi ile gelistirilen acik kodlu Gnuj kullanilabilir. Derleyici ve kutuphanelerin bulundugu (Java API) uygulamaya "J2SE SDK" adi verilmistir.

    Calistirma ve Java sanal makinesi.

    Sanal makine donanimdan bagimsiz yazilim gelistirme ihtiyacina cevap verme amaciyla gelistirilen bir teknolojidir. Java'nin temel felsefesi olan "bir kere yaz, her yerde calistir" sanal makine sayesinde varolmustur. Sanal makineyi bir yonden bir tur hayali bir mikroislemci gibi dusunebiliriz. Gercek tum mikroislemciler (Intel Pentium, AMD Athlon, Sun Sparc vs) belirli bir grup komutu islemek uzere tasarlanmistir. Bu komutlara islemcinin komut kumesi adi verilir. Ornegin x86 komut kumesi gibi. Tum yazilimlar calisabilmek icin once bu komut kumesine donusturulur, daha sonra islemci bu komutlari sira ile gercek islemci komutlarina donusturup isletir. Java Sanal makinesi de Bytekod komut kumesini tipki islemci gibi adim adim isletir. Java'nin interpreted bir dil olarak adlandirilmasinin nedeni budur. Bytekod ilkel islemlerin yaninda (ilkel islemler, mikroislemci seviyesi komutlardir, aritmetik islemler, bit islemleri, bellek ve yigin islemleri vs.) sanal makinenin uzerinde calistigi isletim sistemine yonelik islemler de barindirir. Bu sayede Java Virtual Machine yazici, seri port, grafik, dosya servisi, ag baglantisi gibi yazilim ve donanim servislerine erisim yapabilir.

    Java'nin dogrudan bytecode calistirmasi performansinin dusuk olabilecegi izlenimini verebilir. Ancak, JVM tasarimi gecen 10 yilda cok degismis ve gelistirilmistir. Su anda java'nin performansi cogu alanda C++'in performansina yakin bir seviyededir ve islemci hizi ve bellek miktarinin her gecen yil katlanarak artmasi ile performans konusu cogu uygulamada artik ikinci planda kalmistir. Asagida cesitli platformlar icin java'nin calismasi basit blok sema olarak gosterilmistir. Eger sozkonusu dil C++ olsayid uc ayri kod yada kodda uc ayri #ifdef vs tanimi, uc ayri obje dosyasi olusturulmasi gerekirdi ve cogu uygulamada C++ projesi sadece tek platforma destek verirdi (win32 gibi)
           

Bu konunun anlasilmasi icin bir uygulama yapalim

                                           public class Selam { 
                                                    public static void main(String args[]){
                                                                System.out.println("Selamlar !"); 
                                                      }
                                            }












 Bu yazi alintidir Asagidaki linkten daha detayli bilgi alabilirsiniz Hocamizin Eline saglik
http://www.uslanmam.com/java/15164-java-nedir-nasil-calisir.html 

 Bu yazidaki uygulama alintidir Asagidaki linkten daha detayli bilgi alabilirsiniz Altuğ Bilgin ALTINTAŞ  Hocamizin Eline saglik
http://www.kodcu.com/kitap/java-kitap
Java Programalama Diline Giriş.pdf

JAVA NIN TARİHÇESİ VE ÖZELLİKLERİ

Şu anda dünyadaki en popüler programlama dillerinden biri olan Java, 1990’lı yıllarda SUN bilgisayar şirketince akıllı elektronik ev araçları  projesi çerçevesinde mikrodalga fırınları, buzdolapları , televizyonlar, uzaktan kumanda gibi cihazların birbiriyle haberleşmesini sağlamayı amaçlayan bir proje içerisinde geliştirilmeye başlandı. Orijinal ilk adı Oak’dı ve bu  ad dilin yaratıcıları James Gosling, Patrick Naughton, Chis Wartdh, Ed Frank ve Mike Sheridan tarafından konulmuştu. Daha sonra bu isimde başka bir programlama dili olduğu anlaşılınca o anda bir kahvehanede kahve içen programlama gurubu tarafından kahve markasından esinlenerek Java olarak değiştirildi.
 Akıllı elektronik ev araçları pazarı SUN gurubunun tahminlerinden çok daha yavaş bir gelişme gösteriyordu. Bu yüzden Java dili projesi ticari bir geliştirme projesi olarak büyük olasılıkla iptal edilecekti. 1993 Yılında "World Wide Web" büyük bir atılım göstererek bütün dünyaya yayılmaya başladı. Javanın Dinamik Web sayfaları hazırlamadaki büyük potansiyelini gören SUN şirketi projeyi bu tarafa yönlendirdi.
Mayıs 1995 de SUN javayı büyük bir konferansta tanıttı. Program iş dünyası tarafından derhal büyük bir ilgiyle karşılandı. Java modern bilgisayar dünyasının ses, grafik işlem, haberleşme gibi ihtiyaçlarına cevap verebilen ve ticari gayeler için hazırlanan bir Programlama dili olarak daha önceki bilgisayar dillerinin hiç birinin kapsayamadığı özellikleri içermekteydi. Bunun yanı sıra dil komut yapısı olarak C++ diline çok yakın olması da öğrenilmesini kolaylaştırıyordu. SUN Javayı "World Wide Web" de kullanmak isteyen herkese ücretsiz olarak sundu. Java internette yayınlanmasının ardından çok büyük bir patlama yaşadı. 1997 ye gelindiğinde dünyadaki bütün bilgisayar okullarında temel bilgisayar dili olarak gösterilmeye başlandı. Dünyada şu anda hala en çok kullanılan bilgisayar dili olan C++ dilinin, yapılan hataları tam olarak denetlememesi programın çalışma hızını arttırma yönünden iyi bir özellik olsa da profesyonel programcılar dışında kullanılmasını sınırlandırıcı bir etki yapıyordu. Java ise bütün hataları bildiren yapısı ve modern bilgisayarın bütün fonksiyonlarına ulaşabilen kütüphaneleriyle programcıların çok daha kolaylıkla öğrenebileceği bir dildir. Burada hemen şunu da belirtelim. C dili hızlı çalışma amacı birinci planda tutularak yaratılmış bir dildir. Javada ise emniyet ilk planda yer almıştır. Hız açısından düşünüldüğünde java, C (ve C++) diliyle rekabet edemez. Zaten program derleyicisi de C++ dilinde yazılmıştır.
Javanın diğer önemli bir temel özelliği Nesne kökenli (object oriented) bir dil olmasıdır. Nesne kökenli diller, nesneleri gerçek dünyadakine daha benzer bir yapıda tanımlayarak anlaşılmalarını kolaylaştırırlar. Nesneleri gerçek dünyadaki gibi masa, sandalye, bilgisayar gibi tanımlayarak programlamak insan beyninin anlaması açısından çok daha kolaydır. Bundan önceki tam nesnel kökenli programlama dillerinden hiçbiri çok yaygınlık kazanmamıştı. Bu tür dillere Smalltalk,u örnek verebiliriz. C++ nesnel kökenli programlama yapabilen bir dildir. Fakat yapısal (structural) bir programlama dili olan C dilinin bir uzantısı olarak geliştirildiğinden tam anlamıyla nesnel kökenli bir dil olduğu söylenemez.

Java dilini geleceğin dili yapan diğer bir özelliği de çok kullanımlı (multi-tasking) ve paralel kullanımlı (multi-treading) bir dil olmasıdır. Çok kullanımlılık birden fazla işlemin aynı anda yapılabilmesinin tanımıdır. Paralel kullanımlılık ise birden fazla programın aynı anda hafızayı beraber kullanılabilmesidir. Örnek olarak Word ve Excel programlarının Windows NT ortamında aynı anda kullanılmasıdır. ADA gibi bazı eski Program dillerinde çok kullanımlılık programlanabiliyordu. Paralel kullanım olanaklarını sunan ilk bilgisayar dili ise javadır. Paralel kullanım paralel programlama kavramından ayrıdır ve karıştırılmamalıdır. Paralel programlanmada birden fazla Bilgi işlem Ünitesine (CPU ) ayrı programlar veya bir programın ayrı parçaları gönderilir. Paralel kullanımda ise bir CPU nun kullanım zamanı küçük parçalara ayrılarak değişik Program veya Program parçacıkları bu zaman paketçiklerini paylaşarak kullanırlar.
Javayı önemli bir Program dili haline getiren en önemli  özelliği ise kullanılan bilgisayardan bağımsız olmasıdır. Javada yazılan bir Program Unix, Machintosh, Windows 95 veya Windows NT veya herhangi bir 32 bit makinada hiç değiştirilmeden kullanılabilir. Java programlarının grafikleri "Wold Wide Web" sayfalarının belge işlem sistemi olan html (hypertext markup language) ile aktarılır. Bu yüzden html ve java programlarını birlikte kullanmak ve java programlarını gerçek zamanda www sayfalarında göstermek mümkündür
Javanın HTML diliyle kullanılabilmesi, bazı kişilerde htmlin bir parçası olduğu gibi bir kavram gelişmesine yol açmiştir. Programlamaya yeni başlayanlar sık sık html ile javayı birbirine karıştırırlar veya javanın HTML'nin bir uzantısı olduğunu düşünürler. Bu temelde oldukça yanlış bir varsayımdır. HTML,  internet belgelerini birbirine bağlamak amacıyla geliştirilmiş bir belge işlem sistemidir ve bir programlama dili değildir. HTML ile Java’nın tek gerçek ilgisi HTML deki applet komutudur. Bu komut yardımıyla java dilinde yazılmış programların sonuçları HTML ortamına dinamik olarak aktarılabilir. (Kaynak: Turhan Çoban)

Java NEDİR ?

Java ™ platformu bilgisayar ağının varlığı da göz önüne alınarak uygulamaların/programların farklı işletim sistemleri üzerinde çalıştırılabilmesi düşüncesiyle geliştirilmiş bir teknolojidir. Java ™ platformu hem programlama dili, hem de bir ortam olarak düşünülebilir. Programlama dili olarak, açık kodlu, nesneye yönelik (object-oriented), güvenli, sağlam, İnternet için elverişli bir teknolojidir denilebilir
Java programlama dili ve  bu dile bağlı alt teknolojiler, VB™ veya Borland Delphi™ gibi sadece belirli bir firma tarafından geliştirilmiş ürünler değillerdir. Java ve ona bağlı alt teknolojiler, Sun MicroSystems tarafından tanımlanmış belirtimlerden (specifications) oluşmaktadır. Bu belirtimlere sadık kalan her yazılım firması Java Sanal Makinası, kısaca JVM (Java Virtual Machine), veya Java programlama diline bağlı alt teknolojiler yazabilir (örneğin Application Server - Uygulama Sunucusu). Eğer bu belirtimlere sadık kalınmayıp standart dışı bir JVM veya Java programlama diline bağlı alt teknolojiler yazılmaya kalkışılırsa hukuki bir suç işlenmiş olur. 
Peki belirtim (specifications) ne demektir? Sun MicroSystems, JVM veya Java programlama diline bağlı alt teknolojiler yazmak için belirli kurallar koymuştur; bu kurallar topluluğuna “belirtimler” denir. Örneğin çöp toplama sistemi (garbage collector).

Çöp toplama sistemi daha önceden oluşturulmuş, ancak kullanılmayan ve bellekte boşu boşuna yer işgal eden nesneleri belirleyerek otomatik olarak siler. Böylece Java programcısı “acaba oluşturduğum nesneyi bellekten silmiş miydim?” sorusunu sormaktan kurtulurlar, ki bu soru C++ programlama dillinde uygulama yazan kişilerin kendilerine sıkça sorması gereken bir sorudur. Şimdi bir yazılım firması hayal edelim, adının ABC yazılım firması olduğunu varsayalım. Bu firma, eğer bir JVM yazmak istiyorsa, bu çöp toplama sistemini, oluşturdukları JVM’in içerisine yerleştirmeleri gereklidir. Çünkü Sun MicroSystems’ın belirtimlerinde, çöp toplama sistemi koşuldur! Eğer ABC firması üşenip de çöp toplama sistemini, oluşturdukları JVM’in içerisine yerleştirmezse hukuki bir suç işlemiş olur.

Şu anda en yaygın kullanılan JVM’ler, IBM ve Sun Microsystems’ın üretilmiş olan JVM’lerdir; ayrıca, HP, Apple gibi bir çok firmanın üretmiş oldukları JVM’ler de bulunmaktadır.

Java ile Neler Yapılabilir?
Java diliyle projeler diğer programlama dillerine göre daha kolay, sağlıklı ve esnek şekilde yapılması mümkün olur. Java diliyle gerçekleştirilebilecek uygulamalardan bazıları şunlardır:
·      GUI  (Grafiksel Kullanıcı Arayüzü) uygulamaları, Applet’ler
·      Veri tabanına erişimle ilgili uygulamalar
·      Web tabanlı uygulamalar
·      Dağınık bileşenler (Distributed components) (örneğin  EJB, RMI, CORBA).
·      Cep telefonları, Smart kartlar için uygulamalar.


Bu yazi alintidir Asagidaki linkten daha detayli bilgi alabilirsiniz Hocamizin Eline saglik
http://imajbilgisayar.blogcu.com/java-dersleri-1/4876866