19 Nisan 2016 Salı
FileOutputStream Sınıfı
15 Nisan 2016 Cuma
ReadWriteLock Arayüzü - Read ve Write Farkı Gözetir ve Reentrant'tır
Giriş
Şu satırı dahil ederiz.
import java.util.concurrent.locks.ReadWriteLock;
Açıklaması şöyle. Bu arayüzü gerçekleştiren tek sınıf ReentrantReadWriteLock.
A ReadWriteLock maintains a pair of associated locks, one for read-only operations and one for writing. The read lock may be held simultaneously by multiple reader threads, so long as there are no writers. The write lock is exclusive.
Kullanım
Örnek
Şöyle yaparız
public class Foo {ReadWriteLock lock = new ReentrantReadWriteLock();Lock readLock = lock.readLock();Lock writeLock = lock.writeLock();public void write (...) {writeLock.lock();try {...} finally {writeLock.unlock();}}public void read (...) {readLock.lock();try {...} finally {readLock.unlock();}}}
11 Nisan 2016 Pazartesi
AtomicReferenceArray Sınıfı
30 Mart 2016 Çarşamba
XWPFDocument Sınıfı
Giriş
Bu sınıf .docx belgeleri için kullanılır.
constructor
Şöyle yaparız.
Bu sınıf .docx belgeleri için kullanılır.
constructor
Şöyle yaparız.
XWPFDocument document = new XWPFDocument(inStream);
WebServiceClient Sınıfı
Giriş
wsimport aracı ile wsdl'den dosyaları ürettikten sonra @WebService ve @WebServiceClient olarak işaretli iki dosya mevcuttur. @WebServiceClient olarak işaretli nesneyi yaratıp metodunu çağırırız.
wsimport aracı ile wsdl'den dosyaları ürettikten sonra @WebService ve @WebServiceClient olarak işaretli iki dosya mevcuttur. @WebServiceClient olarak işaretli nesneyi yaratıp metodunu çağırırız.
WebServiceClient client = new WebServiceClient();
AnswerType answer = client.GetSoap().theMethodYouWantUse(some_parameters);
Eğer arayüz üzerinden gitmek çağrı yapmak isterse şöyle yaparız.HelloWorldImplService helloService = new HelloWorldImplService();
HelloWorld hello = helloService.getHelloWorldImplPort();
22 Mart 2016 Salı
Kripto
SecretKeyFactory Sınıfı
SecretKeyFactory Sınıfı yazısına taşıdım.
KeyGenerator Sınıfı
SecretKeyFactory Sınıfı yazısına taşıdım.
KeyGenerator Sınıfı
getInstance metodu
Belirtilen kripto için nesne döndürür.
Key nesnesi üretir.
Belirtilen kripto için nesne döndürür.
KeyGenerator keygenerator = KeyGenerator.getInstance("DES");
generateKey metoduKey nesnesi üretir.
KeyGenerator keygenerator = KeyGenerator.getInstance("DES");
SecretKey myDesKey = keygenerator.generateKey();
SecretKeySpec
Constructor
Şöyle yaparız.
Bu sınıfı bir initialization vector sağlar. CBC modundaki cipher'larda kullanılır.
Constructor
Şöyle yaparız.
Cipher Sınıfı
Cipher Sınıfı yazısına taşıdım.
CipherOutputStream Sınıfı
Normal bir stream gibi kullanılır. write() flush() metodları vardır. Her stream'de olduğu gibi close() ile kapatılır
Constructor
Şöyle yaparız.
byte[] keyBytes = ...;
SecretKeySpec secretKeySpec = new SecretKeySpec(keyBytes, "AES");
IvParameterSpec ivParameterSpec = new IvParameterSpec(keyBytes);
Bir string ile şöyle yaparız.String secretKey = "0123456789abcdef";
SecretKeySpec keyspec = new SecretKeySpec(SecretKey.getBytes(), "AES");
IvParameterSpecBu sınıfı bir initialization vector sağlar. CBC modundaki cipher'larda kullanılır.
Constructor
Şöyle yaparız.
byte[] ivBytes = ...;
IvParameterSpec ivParameterSpec = new IvParameterSpec(keyBytes);
Bir string ile şöyle yaparız.String iv = "fedcba9876543210";
IvParameterSpec ivspec = new IvParameterSpec(iv.getBytes());
Cipher Sınıfı yazısına taşıdım.
CipherOutputStream Sınıfı
Normal bir stream gibi kullanılır. write() flush() metodları vardır. Her stream'de olduğu gibi close() ile kapatılır
Constructor
Şöyle yaparız.
Cipher cipher = ...;
FileOutputStream fos = ...;
CipherOutputStream cos = new CipherOutputStream(fos, cipher);
Bit İşlemleri
Java'da Sayılar Unsigned Değildir
Özellikle C++'tan gelenlerin sıkça yaptığı bir hata. 32 bit sayıların kaydırılması için 64 bit kullanılır. Örneğin aşağıdaki kodda 1 signed bir değişken olduğu için istediğimiz sonucu elde etmeyiz.
Java'da bitmask ile çalışmak yerine daha kolay metodlar var. highestOneBit, lowestOneBit, numberOfLeadingZeros, numberOfTrailingZeros gibi. Örnek:
Özellikle C++'tan gelenlerin sıkça yaptığı bir hata. 32 bit sayıların kaydırılması için 64 bit kullanılır. Örneğin aşağıdaki kodda 1 signed bir değişken olduğu için istediğimiz sonucu elde etmeyiz.
938372878L | (1 << 31) //results to -1209110770
Şöyle yapmak gerekir.938372878L | (1L << 31)
Faydalı metodlarJava'da bitmask ile çalışmak yerine daha kolay metodlar var. highestOneBit, lowestOneBit, numberOfLeadingZeros, numberOfTrailingZeros gibi. Örnek:
assert 64 == Integer.highestOneBit(65);//00000000000000000000000001000001
assert 2 == Integer.bitCount(65);
assert 6 == 31 - Integer.numberOfLeadingZeros(65);//31 - 25
BitSet Sınıfı
Kaydol:
Kayıtlar (Atom)