29 Ekim 2016 Cumartesi

Swing JList Sınıfı

Giriş
Şu satırı dahil ederiz.
import javax.swing.JList;
Liste şeklindeki ekran bileşenidir. Ekranda göstermek için şöyle yaparız.
JList list = ...;
JScrollPane scroll = new JScrollPane (list);
constructor - default
Şöyle yaparız.
JList<String> list = new JList<String>();  
constructor - DefaultListModel
Şöyle yaparız.
DefaultListModel model = new DefaultListModel<String>();
JListString> list = new JList<String>(model);
addListSelectionListener metodu
Şu satırları dahil ederiz.
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
Şöyle yaparız.
list.addListSelectionListener (new ListSelectionListener() {
  public void valueChanged(ListSelectionEvent arg0) { 
    System.out.println("You selected " + list.getSelectedValue());
  }
});
setModel metodu
Şöyle yaparız.
DefaultListModel model = ...;
list.setModel(model);
setPreferredSize metodu
Şöyle yaparız.
list.setPreferredSize (null);



27 Ekim 2016 Perşembe

Condition Sınıfı

Giriş
Şu satırı dahil ederiz.
import java.util.concurrent.locks.Condition;
constructor
Şöyle yaparız.
Lock lock = new ReentrantLock();
Condition condition  = lock.newCondition();
await metodu
Şöyle yaparız.
condition.await();
signal metodu
Açıklaması şöyle. Niçin may kelimesi kullanılmış bilmiyorum.
An implementation may (and typically does) require that the current thread hold the lock associated with this Condition when this method is called.
Bekleyen tek bir thread'i uyandırır. Şöyle yaparız.
condition.signal();
signalAll metodu
Bekleyen tüm thread'leri uyandırır.
condition.signalAll();
Consumer
Örnek ver.

Producer
Klasik kullanımı şöyledir.
1. Lock kilitlenir
2. Condition sinyallenir
3. Lock bırakılır
@Override
public void foo (){

  lock.lock();
  try{
    ...
    condition.signalAll();
  } finally{
    lock.unlock();
  }
}


26 Ekim 2016 Çarşamba

Jsoup Sınıfı

text metodu
Html tag'lerini ayıklar. Şöyle yaparız.
String htmlString = "<div class=\"WordSection1\"> <p class=\"MsoNormal\">Hi<br> 
<br> <br> <br> Data is written in this mail.<br> <br> <br> 
<br> <o:p></o:p></p> </div>";

System.out.println(Jsoup.parse(htmlString).text());
Çıktı olarak şunu alırız
Hi Data is written in this mail.

JavaFX FileDialog Sınıfı

Giriş
Swing'teki karşılığı JFileChooser sınıfı.

constructor
Şöyle yaparız.
FileDialog dialog = new FileDialog ((Frame)null, "Select File to Open");
getFile metodu
Şöyle yaparız.
String file = dialog.getFile();
setMode metodu
Şöyle yaparız.
dialog.setMode (FileDialog.LOAD);
setVisible metodu
Şöyle yaparız.
dialog.setVisible(true);




23 Ekim 2016 Pazar

RSAPublicKeySpec Sınıfı

Giriş
Bu sınıf şöyle kullanılır.
RSAPublicKeySpec keySpec = ...;

KeyFactory keyFactory = KeyFactory.getInstance("RSA");
PublicKey pubKey = keyFactory.generatePublic(keySpec);
constructor
Şöyle yaparız.
byte[] publicBytes = ...;

BigInteger modulus = new BigInteger(1, publicBytes);
BigInteger publicExponent = BigInteger.valueOf(65537L);

RSAPublicKeySpec keySpec = new RSAPublicKeySpec(modulus, publicExponent);


HttpTimeoutException Sınıfı

Giriş
Hiyerarşisi şöyle
java.lang.Object
 java.lang.Throwable
  java.lang.Exception
   java.io.IOException
    java.net.http.HttpTimeoutException
Açıklaması şöyle
Thrown when a response is not received within a specified time period.



Eşzamanlılık Yapıları

CyclicBarrier
CyclicBarrier Sınıfı yazısına taşıdım.

CountdownLatch 
CountdownLatch Sınıfı yazısına taşıdım.

ReentrantLock
ReentrantLock Sınıfı yazısına taşıdım

TimeoutException Sınıfı

Giriş
Hiyerarşisi şöyle
java.lang.Object
 java.lang.Throwable
  java.lang.Exception
   java.util.concurrent.TimeoutException
Açıklaması şöyle
Exception thrown when a blocking operation times out. Blocking operations for which a timeout is specified need a means to indicate that the timeout has occurred. For many such operations it is possible to return a value that indicates timeout; when that is not possible or desirable then TimeoutException should be declared and thrown.

21 Ekim 2016 Cuma

ThreadLocalRandom Sınıfı

Giriş
Şu satırı dahil ederiz.
import java.util.concurrent.ThreadLocalRandom;
Bu sınıf multi-thread programlarda daha iyi performans almak için kullanılıyor. Random sınıfından kalıtmasına rağmen neden daha iyi performans veriyor bilmiyorum.

current metodu
Şöyle yaparız.
ThreadLocalRandom random =ThreadLocalRandom.current();
longs metodu
Şöyle yaparız. Belirten sayı kadar eleman içeren bir LongStream döndürür.
ThreadLocalRandom.current().longs(10_000_000);
nextInt metodu
Şöyle yaparız.
// nextInt is normally exclusive of the top value,
// so add 1 to make it inclusive
random.nextInt (min, max + 1);
nextLong metodu
Şöyle yaparız.
random.nextLong()

20 Ekim 2016 Perşembe

DecimalFormatSymbols Sınıfı

Giriş
Bu sınıf aracılığıyla sayıyı formatlarken kullanılan semboller atanabilir.

DecimalFormat ile beraber kullanılır. Şöyle yaparız.
DecimalFormatSymbols symbols = ...;
DecimalFormat decimalFormat = new DecimalFormat("#.##", symbols);
constructor
Şöyle yaparız.
DecimalFormatSymbols symbols = new DecimalFormatSymbols();
constructor - Locale
Şöyle yaparız.
DecimalFormatSymbols symbols = new DecimalFormatSymbols(Locale.US);
set metodu
Şöyle yaparız.
symbols.setDecimalSeparator('.');
Şöyle yaparız.
symbols.setGroupingSeparator(' ');


19 Ekim 2016 Çarşamba

Awt Point Sınıfı

Giriş
Şu satırı dahil ederiz.
import java.awt.Point;


18 Ekim 2016 Salı

BufferedWriter Sınıfı

Giriş
Şu satırı dahil ederiz.
import java.io.BufferedWriter;
Tüm Java stream sınıflarıda olduğu gibi en dıştaki sınıf kapatılınca, en içte sarmalanan stream de kapatılır.

constructor - Writer
Bu sınıfı her zaman try içinde kullanmak gerekir.
FileWriter writer =  new FileWriter("write.txt");
try(BufferedWriter out = new BufferedWriter(writer)){
  ...
}
catch(IOException e){...}
Kazara System stream'lerini kapatmamaya dikkat etmek gerekir. Şu kod yanlış!
OutputStreamWriter writer =  new OutputStreamWriter(System.out);try(BufferedWriter out = new BufferedWriter (writer)){
  ...
}
close metodu
Şöyle yaparız.
out.close ();
write metodu
Şöyle yaparız.
BufferedWriter out = ...
String l = ...;
out.write (l);






14 Ekim 2016 Cuma

DatabaseMetaData Sınıfı

constructor
Şöyle yaparız.
Connection con = ...;
DatabaseMetaData md = con.getMetaData();
getCatalogs metodu
Şöyle yaparız.
ResultSet rs =  dm.getCatalogs();
while (rs.next()){
  System.out.println("\tcatalog: "+ rs.getString(1));
} 
rs.close();
SQL Server şunu döner
catalog: master
catalog: msdb
catalog: pubs
catalog: tempdb
getDatabaseProductName metodu
Şöyle yaparız.
dm.getDatabaseProductName();
SQL Server şunu döner
Microsoft SQL Server
getDatabaseProductVersion metodu
Şöyle yaparız.
dm.getDatabaseProductVersion();


SQL Server şunu döner
Microsoft SQL Server  2000 - 8.00.384 (Intel X86)
May 23 2001 00:02:52
Copyright (c) 1988-2000 Microsoft Corporation
Desktop Engine on Windows NT 5.1 (Build 2600: )

getDriverName metodu
Şöyle yaparız.
conn.getMetaData().getDriverName(); // Oracle JDBC driver döner
SQL Server şunu döner
SQLServer
getDriverVersion metodu
Şöyle yaparız
md.getDriverVersion();
SQL Server şunu döner
2.2.0022
getDriverMajorVersion metodu
Şöyle yaparız
md.getDriverMajorVersion();
getDriverMinorVersion metodu


Şöyle yaparız
md.getDriverMinorVersion();
getImportedKeys metodu
Şöyle yaparız.
String table = ...;
ResultSet rs = md.getImportedKeys(
                      con.getCatalog(),
                      "TEST", //schema
                      table   //table
                    );
getPrimaryKeys metodu
Şöyle yaparız.
String tableName = ...;
ResultSet rs = md.getPrimaryKeys(null, null, tableName);
getUrl metodu
Şöyle yaparız.
String originalURL = md.getURL();