Java'da kaynak koda eklenebilen yorum çeşitleri aşağıdaki gibidir :
public class BankAccount{ private float money=0.0; public static float interestRate=10.3f; public BankAccount(float mon){ money=mon; } public float getInterest(){ return money*(1+interestRate); } public static float getInterestRate(){ return money*(1+interestRate); } }Yukarıdaki sınıf bir banka hesabını göstermektedir ve her banka hesabında faiz oranı aynı olacağı için interestRate değeri static tanımlanmıştır. Eğer interestRate'de değişiklik yapılır ise tüm banka hesablarında bu oran değişecektir. Halbuki money değişkeni statik değildir ve her hesap için ayrı bir değeri olabilir. Aşağıdaki gibi static değer değiştirilebilir :
BankAccount.interestRate=20.0f;
import java.util.Arrays; public class HelloWorld { public static void main(String[] args) { var array = new int[]{1,2,3,4,5,6,7,8,9,10}; int result = Arrays.stream(array).filter((var a) -> a < 5).sum(); System.out.println(result); } }Eğer bu örnek derlenebiliyorsa Java 11 kullanılıyor demektir. Sonuç 10 çıkacaktır.
public class HelloVar { public static void main(String[] args) { var message="Hello Var"; System.out.println(message); } }Görüldüğü gibi bir String değişkeni var olarak tanımlandı ve kullanıldı. Uygulama çalıştırıldığında Hello Var yazısı ekranda görünecektir.
Java'da sabit,değişmeyen (constant) aşağıdaki gibi yapılabilir :
final static int TEST_DEGISKENI=1;
final static ifadesi sabit , değişmeyen hale getirmek için yeterlidir.
private String leftPad(String number, int size) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < size - number.length(); i++) { sb.append("0"); } sb.append(flightNumber); return sb.toString(); }Eğer Apache Common Lang kütüphanesini kullanıyorsanız StringUtils.leftPad yönetimi kullanabilirsiniz:
StringUtils.leftPad("19", 5, "0");Yukarıdaki yöntemden 00019 değeri dönecektir.
String.format("%05d", 19);
public static boolean isValidFlightNumber(String flightNumber) { flightNumber = flightNumber.trim(); String text = "([A-Z]{2}[0-9]{1,4})+?"; Pattern pattern = Pattern.compile(text); Matcher m = pattern.matcher(flightNumber); return m.matches(); }Bu şekilde ilk iki harfi alfabetik, diğerleri numeric olacak şekilde kontrol edilebilir.
private String flightNumberOne="TK9"; private String flightNumberTwo="TK19"; private String flightNumberThree="TK191"; private String flightNumberFor="TK1234"; private String flightNumberZeroPadFormar="TK0034"; private String flightNumberInvalidOnlyNumber="1234"; private String flightNumberInvalidOnlyCarrierCodes="TK"; @Test public void validTest() { assertTrue(FlightNumber.isValidFlightNumber(flightNumberOne)); assertTrue(FlightNumber.isValidFlightNumber(flightNumberTwo)); assertTrue(FlightNumber.isValidFlightNumber(flightNumberThree)); assertTrue(FlightNumber.isValidFlightNumber(flightNumberFor)); assertTrue(FlightNumber.isValidFlightNumber(flightNumberZeroPadFormar)); assertFalse(FlightNumber.isValidFlightNumber(flightNumberInvalidOnlyNumber)); assertFalse(FlightNumber.isValidFlightNumber(flightNumberInvalidOnlyCarrierCodes)); }
public boolean conflict(int start1, int end1, int start2, int end2) { int max= Math.max(start1, start2); int min= Math.min(end1, end2); return max<=min; }
public static boolean overlap(Date start1, Date end1, Date start2, Date end2) { return (end2 == null || start1 == null || !start1.after(end2)) && (end1 == null || start2 == null || !end1.before(start2)); }Herhangi bir alan null verilirse de kod çalışır. Eğer tüm alanlar null verilirse yöntem true döndürür.
@Test public void testOverlap() { Date date1=new Date(2018, 1, 1); Date date2=new Date(2018, 1, 10); Date date3=new Date(2018, 2, 1); Date date4=new Date(2018, 2, 10); assertFalse(DateUtil.overlap(date1, date2, date3, date4)); Date date5=new Date(2017, 1, 1); Date date6=new Date(2017, 1, 10); assertFalse(DateUtil.overlap(date1, date2, date5, date6)); Date date7=new Date(2017, 1, 1); Date date8=new Date(2018, 1, 1); assertTrue(DateUtil.overlap(date1, date2, date7, date8)); Date date9=new Date(2017, 1, 1); Date date10=new Date(2018, 1, 5); assertTrue(DateUtil.overlap(date1, date2, date9, date10)); Date date11=new Date(2017, 1, 10); Date date12=new Date(2018, 1, 12); assertTrue(DateUtil.overlap(date1, date2, date11, date12)); // no end Date date13=new Date(2018, 1, 10); assertTrue(DateUtil.overlap(date1, date2, date13, null)); // no start Date date14=new Date(2018, 1, 1); assertTrue(DateUtil.overlap(date1, date2, null, date14)); // no end no overlap Date date15=new Date(2018, 1, 11); assertFalse(DateUtil.overlap(date1, date2, date15, null)); // no start no overlap Date date16=new Date(2017, 12, 31); assertFalse(DateUtil.overlap(date1, date2, null, date16)); // all null assertTrue(DateUtil.overlap(null, null, null, null)); }