Uzun bir aradan sonra tekrar ilk kez yazıyorum. Bugün yazacağım konu direkt java ile ilgili bir konu değil. Mülakatlarda karşılaştığım ve farklı sitelerden derlediğim java mülakat sorularını ele alıp yine kendimizce cevap arayacağız. Eksiklik veya hata olduğunu düşündüğünüz yerlerde benimle irtibata geçersiniz tekrardan gözden geçirebilir. Umarım istediğiniz gibi güzel işler bulursunuz.
Not: 2.yazıya buradan erişebilirsiniz.
Polimorfizm nedir ?
Farklı sınıflar
arasında aynı metod çağırmaya denir. Java ortamı çalıştırma
zamanında yöntemin hangi sınıfa ait tanımdan çalıştıracağını dinamik olarak
belirlemesidir.[1] http://emyo.beun.edu.tr/cv/fapaydin/wp-content/uploads/sites/3/2015/10/BBS-515-DN09.pdf
Inheritance nedir?
Kalıtım: Bazı
özellikleri tekrar tekrar yazmak yerine kullanabileceğimiz bir yapı. Örnek
vermek gerekirse bir ailemiz var. Ve bu ailenin bazı özellikleri anne ve
babadan gelir. Bu anne babadan gelen özellikleri tekrar çocuk yazmak yerine ,
anne-babadan referans kullanarak bu bilgileri çekebiliriz. Fakat bununla
birlikte çocuğun kendine has özelliklerini ayrıca da ekleyebiliyoruz. Kalıtımın
en sade ifadesiyle böyle anlatabilecğimi düşünüyorum.
public class cocuk extends annebaba {
//Yazılacak Kodlar
}
Yukarıdaki örnek ile anne-babadan gelen özellikleri çocuk artık kullanabilir hale gelmektedir. Kısaca kalıtım böyle.[2]
Interface ve Abstract class
arasındaki farklar ?
Öncelikle daha
önceki yazılarda Abstract sınıfların genellikle IS-A(dır,dir)
ilişkilerinde,kalıtım(inheritance) özelliğini kullanarak kod tekrarını azaltmak
için kullanıldığını söylemiştik. Interface sınıfların ise daha çok
CAN-DO(yapabilir..) tarzı ilişkilerde değişen kavramları uygulamadan soyutlamak
için kullanıldığını söylemiştik.Ayıca Interface
içerisinde metodların
içerisi boştur fakat
abstract sınıflar içerisinde implemente edilmiş(içi dolu olan)
metodlar yazabiliriz.[3] http://www.cihataltuntas.com/interface-mi-abstract-mi/
Java5 ne getirmiştir ?
Generics : Typed Collections List<String>
Loop
yapısı : for(String s : list)
Autoboxing
/ unboxing : Integer int arasındaki dönüşümü jdk yapar
Annotation : @Override
Enum
Static
import
Var
args
Checked ve Unchecked Exceptionlar
nedir ?
Checked : Compile time sırasında handle etmemiz
gereken exceptionlar. FileNotFoundException
Unchecked :
Compiler ın handle etmeye
zorlamadığı exceptionlar .NullPointerException
Örnek
üzerinden gidersek bir dosyayı
açmaya çalıştığımızda compiler kodlarımızı try-catch bloğuna almaya zorlar.
Fakat NullPointerException vermez.[4]http://serkansakinmaz.blogspot.com.tr/2014/03/java-is-gorusmelerinde-sk-ckan-sorular.html?view=mosaic
Overriding nedir ?
Kalı
tım yoluyla miras olarak aldığımız metodu
ezmektektir. ( Araba hızlanıyor yerine , Ferrari hızlanıyor)
Overloading nedir?
Overloading bir sınıf içerisinde metodu
aynı isimle ,
aynı geri dönüş değeriyle fakat farklı parametrelerle kullanmaktır. Daha fazla bilgi için tıklayınız.
Serilization nedir ?
Serilization ile
java objeleri byte lar halinde
stream lere yazı labilir . Böylece bir java objesi veritabanına
kaydedilebilir. Daha fazla bilgi için tıklayınız.
final anahtar kelimesi ne işe
yarar ?
Final
variables(değişkenler) : Değiştirilemez. Static
ile beraber Constant olarak
kullanı labilir
Final
class :Extend edilemez
Final
methods : Override edilemez. Daha fazla bilgi için tıklayınız.
error ve exception farkı nedir ?
Error :OutOfMemoryError gibi hande
edilemeyen hatalardır. Fakat exception tipindeki hataları try-catch ile ele alabiliriz. Daha fazla bilgi için tıklayınız.
Static değerlerin özellikleri ?
Static
variable : Class a aittir yani her nesne
için bir defa oluşturulmaz. Memory de bir defa oluşturulur
Static
method : Class a aittir yani her nesne
için bir defa oluşturulmaz. Class ismiyle çağrı labilir
Static
block : Class execute edildiği zaman
heap de yerini alır. Daha fazla bilgi için tıklayınız.
Encapsulation nedir ?
Kapsülleme: Bir sınıfın içeriğinin bilinmesine gerek kalmadan
kullanılabilmesidir. Bir örnekle zenginleştirmek gerekirse, arabası olan bir
şoförün motor çalışma mantığına bilmesine gerek yoktur. Sadece anahtarla
arabayı çalıştırıp gaza bastığında arabanın gitmesi kafidir. Aynen bu şekilde
de kapsülleme yaparak dışarıya gözükmemesi gereken şeyleri gizleye biliyoruz.
Burada bir kaç kavramı verip bu konuyu da bitirelim.
Public: Herkesin görebileceği değişkenlerdir
Procted: Aynı paket içinde görülebilecek , fakat farklı paketlerden ulaşılamayan değişkenlerdir.
Private: Sadece aynı sınıftan erişilebilen değişkenlerdir.
Bu değişkenlerin ulaşılmaz olanlarına ulaşılmak istendiğinde getter/setter metodlarını kullanmak zorundayız. Fakat şu unutulmamalıdır. Sadece kullanacağımız değişkenleri getter/setter yapmalıyız. Yoksa private değişkenlerimizin publicten pek farkı kalmayacaktır.
Public: Herkesin görebileceği değişkenlerdir
Procted: Aynı paket içinde görülebilecek , fakat farklı paketlerden ulaşılamayan değişkenlerdir.
Private: Sadece aynı sınıftan erişilebilen değişkenlerdir.
Bu değişkenlerin ulaşılmaz olanlarına ulaşılmak istendiğinde getter/setter metodlarını kullanmak zorundayız. Fakat şu unutulmamalıdır. Sadece kullanacağımız değişkenleri getter/setter yapmalıyız. Yoksa private değişkenlerimizin publicten pek farkı kalmayacaktır.
Object oriented prensipleri
nelerdir ?
Encapsulation : Değişkenler private yapı larak get.. ve
set.. metodlarıylaerişilir
Abstraction : Gereksiz ayrıntı lar kullanıcıya sunulmaz
Inheritance :
Bir sını fın özellikleri
extend anahtar kelimesiyle
miras alınır.
Polymorphism :
Runtime sırasında oluşturulan
sını fın metodununçağrı lmasıdır.[4],[5]
Coupling
nedir ?
İki sınıfın
birbirine olan bağımlı lığı
diyebiliriz . Nesneye
yönelik programlamada
nesnelerin birbirleriyle az
bağımlı olması benimsenir
(low coupling) . Örnek
olarak A sını fı
B sını fına ne
kadar bağımlıysa o
kadar coupling(bağımlı lık ) artar
. Bu nedenle
projenin bakımı ve
genişlitebilirliği azalır . Low
coupling için çeşitli
prensipler uygulanır :
interface kullanımı , çeşitli
tasarım patternleri gibi.[6]http://malikmasis.blogspot.com.tr/2014/12/coupling-cohesion.html
Cohesion
nedir ?
Bir sınıfın
oluşturulma amacını ne
kadar temsil ettiğini
gösterir . Nesneye yönelik programlamada sını fların
belirli bir amaca yönelik yazı lması
beklenir (high cohesion). Örnek
verirsek matematik işlemi
yapan bir sını fa
file işlemleri yapan bir metod daha eklediğimiz zaman high cohesion
prensibini kırmış oluyoruz.[6]
Integer ve int arasındaki fark nedir ?
int : primitive değişken tipidir.
Sınıf olmadığı için herhangi bir metodu da
yoktur.
Integer : Bir
sınıftır . parseInt
gibi metodları mevcuttur. Bu sını flara wrapper sınıflarda
diyebiliriz.Yani içerisinde int
tipinde bir değişken ve sayısal işlemler yapmamızı sağlayan metodlar mevcuttur.[4] Daha fazla bilgi için tıklayınız.
Upcasting nedir ? Downcasting
nedir ?
§ Üst Sınıf Tipine Dönüştürme (UpCast)
Üst sınıfa dönüştürülürken dikkat edilmesi gereken şudur. Üst sınıfa dönüştürülen nesne kendi sınıfındaki özel metotlara erişemezler. Sadece Override edilmiş metotlara ve üst sınıfın metotlarına erişebilirler.
Üst sınıfa dönüştürülürken dikkat edilmesi gereken şudur. Üst sınıfa dönüştürülen nesne kendi sınıfındaki özel metotlara erişemezler. Sadece Override edilmiş metotlara ve üst sınıfın metotlarına erişebilirler.
§ Alt Sınıf Tipine Dönüştürme(DownCast)
Üst sınıftaki Nesneyi alt sınıflara Cast etmemizin sebebi. İstenilen Nesnenin sadece istenilen metotlarına erişmesini sağlamaktır.[7] https://yazilimokulu.wordpress.com/tag/upcast-java/
Üst sınıftaki Nesneyi alt sınıflara Cast etmemizin sebebi. İstenilen Nesnenin sadece istenilen metotlarına erişmesini sağlamaktır.[7] https://yazilimokulu.wordpress.com/tag/upcast-java/
Soru: Bir try/catch/finally yapisi
düsünün. try bünyesinde bir unchecked exception olustugunda finally blogu
devreye girer mi?
Cevap: Evet. finally icinde bulunan
kodlar her zaman kosturulur.[8]http://www.btsoru.com/questions/68/bir-javacnn-is-gorusmesinde-karslasabilecegi-sorular-nelerdir
Soru: Bir sinif düsünün. write() ve
read() isminde synchronized kelimesi ile tanimlanmis iki metodu mevcut. Thead A
write() metodu icinde bulunuyor. Thread B'nin durumu nedir?
Cevap: Thread B bloke olmus
durumdadir. Her nesne bünyesinde thread sekronizyonu icin bir monitor vardir.
Thread A write() metodunda oldugu icin bu monitora sahiptir. Bu yüzden B read()
e giris yapabilmek icin bu monitor elde etmek icin bekler. Thread A write()
metodunu terk ettigi zaman bu monitor Thread B tarafindan edinilir.[8]
Soru: Hibernate bünyesindeki caching
mekanizmalari nelerdir?
Cevap: first ve second level cache
[8]
Soru: Iki veri tabani tablosu
mevcut. Ilk tabloda 10 kayit, ikinci tabloda 12 kayit bulunuyor. Left outer
join ile kac kayit sorgulmis oluruz?
Cevap: Ilk tabloda yer alan tüm
kayitlar (10 adet) sorgulanmis olur. Bu kayitlarin ikinci tabloda karsiligi
olmasa bile sorgulama listesinde yer alirlar.[8]
Soru: Spring bünyesinde hangi tür
bagimlilik enjekte (dependency injection) metotlari kullanilir?
Cevap: constructor injection ve
setter injection[8]
Reflection nedir ve hangi amaçla kullanılır?
Java Reflection (bundan sonra yansıtma olarak
bahsetmeyi uygun buluyorum) bir uygulama geliştirme arayüzü olup, o anki Java
Sanal Makinesindeki sınıfları, arayüzleri ve nesneleri yansıtan, temsil eden
kütüphanedir. Özellikle geliştirme araçları yazarken yansıtma kütüphanesine
ihtiyaç duyarız. Yansıtma kütüphanesini kullanarak; -Bir nesnenin sınıfını
belirleriz -Sınıfın sahaları, metodları, yapıcıları, üst sınıfları ve
değişkenleri hakkında bilgiler alabiliriz -Bir arayüze ait olan sabit ve metod
tanımlamalarını tespit ederiz -Çalışma zamanına kadar ismi bilinmeyen bir sınıf
örneği yaratabiliriz (Bir bakıma çalışma zamanında yeni sınıflar
yaratabilirsiniz) -Çalışma zamanına kadar ismi bilinmese de sahaların değerini
ayarlar ve alabiliriz. -Aynen çalışma zamanına kadar bilinmeyen metodları
çalıştırabiliriz. -Çalışma zamanına kadar bileşenleri ve boyutu bilinmeyen
diziler yaratabilir, daha sonra bu dizinin bileşenlerini değiştirebiliriz.
Programlamaya ilk başladığınızda
küçük projeler yaparsınız, dolayısıyla yaptığınız işlem sayısı, kullandığınız
tip sayısı pek fazla değildir. Buna bağlı olarak yazdığınız if-else blokları ve
switch-case blokları nispeten küçük olacağından okunmasında, takip edilmesinde
çok sıkıntı yaşamazsınız. Reflection ve annotation’lar bu durumların tersinin
ortaya çıktığı genellikle büyük ölçekli projelerde kullanışlı olduğu için çoğu
geliştirici tarafından bilinmeyen mekanizmalardır. reflection ve annotation
yapıları programlama alışkanlıklarımızı tersine çevirebilecek kadar güçlü ve
bir o kadar da esnektirler. Günümüzde bu iki mekanizma kullanılarak çok güçlü
framework’ler geliştirilmektedir. Bunu da yazılımdaki soyutlamayı bir üst
katmana çekerek yapmaktadırlar. Dependency injection tasarım kalıbı ve yeni
nesil test frameworklerinde bu yönteme sıkça başvurulmaktadır.
Soru:Tasarım Desenleri(Design Patterns)
ile ilgilendiniz mi? Tasarım deseni nedir? Observer pattern hangi amaçla
kullanılır, örnek veriniz.
Tasarım desenleri nesne
tabanlı dillerde (c#,java gibi) uygulama geliştirilirken karşılaşılan sorunlara
çözümler getiren kalıplardır. Tasarım desenleri çalışan kod veya algoritma
değildir. Sınıfların iyi bir şekilde nasıl olacağını belirten yöntemlerdir. Uygulamaların
geliştirilebilirliğini (esnekliğini) ve kalitesini arttır, geliştirme süresini
azaltır ve kodların anlaşılabilirliliğini sağlarlar. Bazı tasarım desenleri ise
uygulamalara sanatsal bir boyut atar.
JPA / Hibernate
arasındaki fark nedir ?
JPA (Java Persistence API)
veritabanından bağımsız kodlama yapabilmenizi ve sorgular hazırlayabilmenizi olanaklı
kılar. Java geliştiricilerine veritabanı tabloları ile sınıflar arasında
mapping imkanı sunarak, ilişkisel veritabanlarının nesne tabanlı bir geliştirme
iskeleti ile kolaylıkla yönetilmesini sağlar. The Java Persistence API, Java
Persistence Query Language ve nesne/tablo ilişkisini gösteren mapping
metadataları gibi üç kola ayrılmış bir geliştirim mantığı vardır. JPQL (Java
Persistence Query Language) ile yazacağınız sorgular, veritabanınızdaki
ilişkisel yapıya göre hazırladığınız, birbiriyle ilişkili POJO(plain old java
object) nesnelerini kullandığınız sorgular olacaktır. JPA 'nın sunduğu imkanlar
ile çoğu basit işlemi (kayıt silme, ekleme ve birleştirme) de, JPQL
kullanmadan, kolaylıkla halledebilme olanağı bulunmaktadır.
Hibernate, JPA’ nın özelliklerini
taşımakla birlikte kendine ait yararlı ek özellikleri de bulunmaktadır. JPA bir
standart olduğu için bu döküman JPA ‘ya ağırlık verilmektedir. [12] https://blog.kodcu.com/minikitap/Java.pdf
JVM ve JDK
arasındaki fark nedir ?
JVM (Java Virtual
Machine) : Bir Java dosyası derlendiği(compile)
zaman .class uzantılı
java byte kodları oluşur . Java byte kodları işletim sisteminde kurulu olan JVM
ile makina kodlarına çevrilir . Bu sayede java kodları derlendikten sonra
farklı işletim sistemlerinde sorunsuz olarak çalışır . JVM sayesinde Java da
sıkça duyduğumuz ve Javayı Java yapan "Write Once, Run
Anywhere" özelliğini kullanabilmekteyiz . Her işletim sisteminin
kendi sanal makinası vardır
JRE (Java Runtime Edition) : Bir Java uygulamasını çalıştırmak için gerekli olan Java kütüphanelerini ve JVM içerir
JRE (Java Runtime Edition) : Bir Java uygulamasını çalıştırmak için gerekli olan Java kütüphanelerini ve JVM içerir
JRE = Java Kütüphaneleri + JVM
JDK (Java Development Kit ) : Java ile geliştirme yapmak için ve yazdığımız java kodlarını compile edip .class uzantılı dosyaları oluşturmamızı sağlayan tool dur.
JDK (Java Development Kit ) : Java ile geliştirme yapmak için ve yazdığımız java kodlarını compile edip .class uzantılı dosyaları oluşturmamızı sağlayan tool dur.
JDK
= JRE + derleyici + Java Compiler
Stored Procedure Nedir?
Stored Procedurin
açıklamasına geçmeden önce procedure açıklamak istiyorum. Procedure
belli bir işi yapan kod parçasıdır. Stored Procedure Database server ında
tutulan ve ilk derlemeden sonra bir daha derlenmeye ihtiyaç duyulmayan SQL
ifadeleridir. [14]http://www.temizkod.com/yazilim-mulakatlarinda-cikan-sorular-1/
Trigger Nedir ?
Trigger yani tetikleyici,
ilişkisel veri tabanı yönetim sistemlerinde bir tabloda
belirli olaylar meydana geldiği zaman yani ekleme, güncelleme, silme
işlemlerinden biri gerçekleşmeden önce veya sonra çalışan ve belirli işlemleri
kodlandığı şekilde yerine getiren yordamdır.
Soru:Abstract Factory Tasarım Desenini kısaca
açıklayınız.
Bir proje yapacağız ve bu proje veritabanı
bağımsız olacak. Yani Projeyi ilk olarak açtığımızda bize hangi veritabanında
çalışacağımızı soracak ve hangisini seçersek onunla çalışacak işlemi
yapabiliriz.[16]http://www.temizkod.com/yazilim-mulakatlarinda-cikan-sorular-1/
Soru:Singleton design pattern?
Diyelim ki sisteminiz tek
bir class tipinden uygulama boyunca tek bir örneğe ihtiyaç duyuyor ve bu örneğe
her yerden erişimin mümkün olması gerekiyor. İşte o zaman bu tasarım desenini
kolayca kullanabilirsiniz.[16]
Soru: Autoboxing boxing açıklayınız.
Compiler
tarafından primitive tipten referans tipine dönüşüm yapılması işlemine autoboxing;
referans tipinden primitive tipe dönüşüm işlemine ise unboxing denir. [17]http://www.kazimsoylu.com/java/autoboxing-and-unboxing.html
Soru:pass by reference ve pass by value nedir, örneklendiriniz?
Java pass-by-value ‘dir. Pass-by-reference demek parametrenin
gerçek adresini geçmek anlamına gelirken pass-by-value ise sadece değerini bir
kopya ile geçmek şeklinde tanımlanabilir.
Soru: Process ve Thread arasındaki farklar nelerdir ?
Günümüzde bir bilgisayar sisteminde tek bir işlem birimi olsa dahi
, bu tek bir işlem birimi (işlemci) işletim sisteminin kaynak kullanım
stratejisine göre her birine belli bir zaman ayırma esasına göre işlem
yapmaktadır. Dolayısıyla bilgisayar sisteminde aynı anda çok sayıda
thread ve process bulunmaktadır.
Process” kendisine ait kaynakları olan
işlem birimidir. Örneğin her “process” kendisine ait hafıza alanına sahiptir.
“Thread”ler de “Processler gibi”
işlem birimleridir ve hafif siklet processler (“lightweight processes”) olarak adlandırılırlar. Threadler daha az kaynağa
ihtiyaç duymaktadırlar. “Thread”ler bir “process” içinde yer almaktadır. Her thread mutlaka bir procecesse sahiptir ve onun
kaynaklarından faydalanabilir.
“Thread”ler de “process”ler gibi
uygulamalarda paralellik elde etmek için kullanılırlar. Ancak “process”ler daha
bağımsız işletim birimleridir, kendilerine ait durum bilgileri, kendilerine ait
adres alanlarıdır ve birbirleriyle ancak IPC mekanizması ile haberleşirler. Bir
“process” birçok “thread” barındırabilir, her bir “thread” mutlaka bir
“process” in içinde yer almaktadır, aynı “process” içindeki tüm “thread”ler
aynı hafıza alanını ve aynı durumu paylaşır birbirleriyler direk olarak
haberleşebilir zaten aynı alanı paylaşırlar.
Garbage nedir?
Garbage
Collector, otomatik Garbage Collection mekanizmasi ile memory-leak(bellek
aciklari/sizintilari)’lere engel olarak Java’nin Robust (dayanikli, guclu,direncli) ozelligini
saglamaya yardimci olur. Ayrica C gibi dillerde olan free() fonksiyonu yerine, Javada
Garbage Collector bu isi uslendigi icin bir nevi pointer mekanizmasindan kurtulmamiza
destek saglar. Bu da Java’nin Simple(Basit) ozelligini
saglamaktadir.
Throw ile throws arasındaki
farklar nelerdir ?
throw new ArithmeticException ("Hata");
ama
throws main içinde extends edilmesi lazım.
Eğer bir metot
yönetemediği bir istisnaya neden olursa, metot çağırıcılarının kendilerini bu
istisnaya karşı koruyabilmeleri için, metodun bu davranışı belirtmesi gerekir.
Bunu, metodun deklarasyonuna bir throws cümleciği ekleyerek
yapabilirsiniz. [4]
RMI nedir ?
Remote Method Invocation yani RMI farklı
sunucularda olan metodların başka bir sunucudan çağırılarak kullanılmasında
kullanılmaktadır. Java Nesnelerinin kullanmak için farklı bir sunucuya/sanal
makina’ya bağlanıyorsa buna biz Dağıtık Programlama diyoruz. RMI, Dağıtık
Programlama yapmamıza olanak sağlamaktadır.
JMS nedir ?
JMS her ne kadar ağırlıklı olarak mesajlaşma tabanlı mimarilerde kullanılsada,
multi-thread uygulama geliştirmeden tutun da, sadece işlemleri asenkron hale
getirmeye kadar farklı bir çok alanda da kullanılıyor. Bu sebepten JEE
uygulaması geliştirdiyseniz bu konuya bulaşmış olma ihtimali yüksektir.[21]http://www.bahadirakin.com/tag/amqp-ile-jms-arasindaki-farklar/
JIT nedir ?
Middle level kodu makine koduna çevirir. Derleme yerine sadece kullanılacak olan kısmı derliyor
ve diğer kısımları yorumluyor.. Java kodları direk olarak çalıştırılabilir
derlemiyor. Bunun yerine bir ara derlemeden geçiriyor ve bu işlem sonucu
bytecode elde ediyoruz yani class dosyaları. Önceden bu class
dosyaları java sanal makinesi (JVM) altında derlenerek çalıştırılırdı. Program
iki kez derlendiği için hız kaybı oluyordu. JIT derleyici (JVM) altında çalışan
bir derleyicidir. Bu derleyicinin özelliği ise çalıştırılacak bytecode
un sadece kullanılacak kısmının derlenerek çalıştırılmasını sağlıyor.
Diğer kısımlar basitçe yorumlanıyor. [22]http://www.onurcanalp.com/2014/11/25/jit-just-in-time-nedir/
Immutable nedir ?
Değişmezlerdir. String ve Wrapperler örnek
verilebilir.
String builder ve String buffer
nedir ?
StringBuilder
sınıfı StringBufferdan çok ufak bir miktar daha hızlıdır, aradaki hız farkı senkronizasyon
için harcanan vakittir. Ikisi de primitive özelliği taşır yani değişme özelliği
gösterir. Yeni obje oluşmaz. [4][23]http://malikmasis.blogspot.com.tr/2015/01/string-stringbuffer.html
Instance nedir ?
Test b = new Test(); Buradaki b insatance’dir.
Constructor nedir ?
Class çağırıldıgında ilk çalışan metotdur. Constructorılar parametre alabilir fakat değer döndürmez. Overload edilir , override edilmez.
Class çağırıldıgında ilk çalışan metotdur. Constructorılar parametre alabilir fakat değer döndürmez. Overload edilir , override edilmez.
Soru:final
finally finalize kavramlarını açıklayınız.
Final = keyword
finally= block finalize() metod -- Ayrıntılı Bilgi için
Native nedir?
Bir java programı içerisinde
java harici bir programlama dilinde yazılmış bir program çağırılabilmektedir. Ayrıntılı Bilgi için
Super ve this
kavramları nedir ?
super anahtar kelimesi, super class içindeki
metotlara field’lara ve constructor’lara erişmek için kullanılır.
“this” anahtar
kelimesini kullanarak aynı sınıfa ait olan field’lara, metotlara ve
constructor’lara erişebilirsiniz. this anahtar kelimesi kullanıldığı yerde,
aynı class’ın geçerli bir örneğiymiş (yeni bir instance’mış) gibi davranır.“super()” ve “this()” ifadeleri mutlaka bir constructor
içinde kullanılmalı staticlerle
kullanılmaz.
Data hiding ve encaplastion farkları nelerdir ?
Data Hiding
(Bilgi Saklama) nesnelerin iç yapılarının yani sahip oldukları verilerin
dışarıdan gizlenmesidir. Encapsulation ise bu dışarıdan saklanmış verilerin
nesne üzerinde tanımlanmış fonksiyonlar ile dışarıya açılmasıdır.
Soru:== ve
equals kavramlarını karşılaştırınız.
Bu operatörlerin
davranışı değişkenlerin tipine göre farklılaşmaktadır. Eğer karşılaştırılan
nesneler primitive ise değerler karşılaştırılırken, nesne tipinde değişkenler
içinse == operatörü ile hafızadaki konumlar karşılaştırılır. Nesne tipindeki
değişkenler için equals çalışma biçimiyse ilgili nesnenin içinde nasıl
tanımlandıysa öyle çalışır. Eğer tanımlı değilse türediği sınıftaki equals
fonksiyonuna göre çalışır. Özetle ==
bellekteki yerlerini equals ise onların değerini gösterir, fakat primitive
olursa değişkenler == de değerlerini inceler.
Annotations nedir ?
Notasyonlar (Annotations) Java 5’den beri Java ortamında kullanılan
bileşenlerdir. Notasyonlar genel olarak bir bileşene özellik katma veya
konfigürasyon amaçlı olarak kullanılmaktadır. Notasyonlar
@
işaretiyle başlayan arayüzlerdir ve notasyonlar içinde alanlar
tanımlanabilmektedir.
Java’da sınıf,
metot, paket gibi programatik unsurlar için metadata (veri hakkında veri)
oluşturmaya yarayan özelliklerdir. Örneğin; @Override @SuppressWarnings @Deprecated @target [26] https://blog.kodcu.com/2014/09/java-8-tekrarli-notasyonlar-nasil-kullanilir/
XML ve JSON farkları nelerdir ?
JSON; okunması ve kullanımı kolay XML benzeri içerik kategorileme
dilidir. XML dilinin veri alış verişi sırasında büyük ve yavaş kalması üzerine
geliştirilmiştir. XML dosyalarına göre daha az yer kaplar.[27] https://melahatmindivanli.wordpress.com/json/
İnner , left , right join kavramları nedir ?
Inner 2 tablodaki
ortakları alanları kapsar. Left soldakileri alır, sağdaki bir veri yoksa null
yazar, sağdaki için de aynı şey geçerlidir. [29]http://www.dijitalders.com/icerik/13/1102/join_islemleri.html#.V_KN0_CLTIU
Soru:varchar
ve nvarchar kavramlarını açıklayınız.
İki veri
tipinin arasındaki genel fark karakter bilgisini saklama biçimlerinden
kaynaklanıyor. NVarchar veri tipi unicode karakter verisi saklamak için
kullanılır. Unicode karakter seti asya dilleri, arapça gibi latin alfabesi
olmayan diğer dilleri, alfabeleri destekler. varchar da anlaşıldığı gibi sadece
latin alfabeleri içindir. Varchar her karakter için 8bit (1 Byte) yer tutar. NVarchar
her karakter için 16bit (2 Byte) yer tutar. [30] https://azkod.wordpress.com/2011/03/06/varchar-ve-nvarchar-sql-veri-tipi-arasindaki-fark/
Mvc nedir ?
1-Model: Model, proje içerisinde kullanılacak olan
nesnelerin oluşturulduğu kısımdır. Günlük hayattaki somut nesnelerin,
bilgisayar ortamında modellenmesi anlamına gelir. Örneğin bir kütüphane
otomasyonu yapmak istediğimizde kitap bilgilerinin tutulacağı bir modele
ihtiyaç duyulacaktır. Bu modelde kitabın seri numarası, adı, yazarı, yayınevi
gibi bilgileri yer alacaktır.
2-View: Proje tamamlandığında kullanıcının gördüğü
arayüzdür. Bu bir web sayfası, masaüstü uygulaması arayüzü veya mobil bir
tasarım olabilir. Projenin yapısına göre bu tasarım farklı şekillerde
oluşturulabilir.
3-Controller: Projedeki tüm işlemlerin (veritabanı
işlemleri, hesaplamalar, veri aktarımı v.b) yapıldığı kontrol bölümüdür.
Controller ayrıca model ve view arasındaki veri akışını da kontrol eder.
Div span farkı nedir ?
<div> ve
<span> ile oluşturulmuş bölümler arasındaki başlıca fark , <div>
bölümünün sayfadaki diğer öğelerden ayrı olarak bloklanmasıdır , tıpkı
tablolarda olduğu gibi.Eğer bir metnin hemen bitiminde bir tablo oluşturursanız
tablonun yeni satırda ayrıca bloklandığını görürsünüz.<div>bölümleri için
de böyledir.<span> bölümleri ise ayrıca bloklanmazlar.
Soru:Js’de
== ve === operatörlerini karşılaştırınız.
“==” operatörü karşılaştırma yaparken eğer iki
tip birbirine çevrilebiliyorsa çevirme işlemini yapar ve karşılaştırır.
Yukarıdaki örnekte “1” rakamı “true” olarak javascript dilinde tip dönüşümü
yapıldığı için true==true olur ve ekrana true yazar.
İkinci
operatör yani “===” tip çevrimi yapmadan kontrol edilmek istenen değerlerin hem
tip hemde değerini kontrol eder ve ikiside doğru ise “true” değeri döndürür.
Kısaca == sadece değeri, === hem tip hem değeri
karşılaştır.
Soru:Hybrnate
5 anatasyon örneği veriniz.
@NotNull: O değişken boş olamaz.
@Min: Minimum değer.
@Max: Maksimum değer.
@Pattern: Email kontrolü yaptırmak için.
@Size(min, max):
@Min: Minimum değer.
@Max: Maksimum değer.
@Pattern: Email kontrolü yaptırmak için.
@Size(min, max):
Ayrıca @Columun, @entity, @table
gibi daha da artırabilir.
Servlet nedir ?
Web sunucusu
üzerinde çalışır ve gönderilen veriye göre sonuç üreten java sınıflardıdır.Kullanıcı ulaşmak
istediği sayfayı belirtip bilgiyi sonucuya gönderir.Web sunucu gelen bu
isteği(request) alıp bu isteğe uygun olan servete ait nesne varsa istek servete
gönderilir.Eğer istenilen(gönderilen bilgiyle uyuşan) nesne bellekte yoksa
üretilip istek ve bilgi servete gönderilir.Servlet kendisine gelen bu istek
doğrultusunda bir sonuç üretip(örn:html sayfası formatında) web sunucusuna
gönderir.Web suncuda servletten gelen bu değeri isteği yapan kullanıcıya
gönderir.Fakrlı sonuçlar için farklı servlet sınıfları
üretilmeli(örn:HttpServlet).Servlet makinesi web sunucuda servlet ve javanın
nasıl kullanıldığını bilir ve sunucuda bulunmalıdır.Bu makine servletleri
JVM(Java virtual machine) ile çalıştırılabilir ve sonuçları kullanıcıya
gönderilebilir.Web suncusu ve servlet makinesi içeren bir çok sunucu
vardır.En çok bilinen Apache Tomcat, Macromedya Jrun,Oracle. Aynı servete
birden fazla istek aynı anda gelince suncu bu servlet sınıfndan tek bir nesne
üreterip bu nesneyi iş parçacığı(multi thread) ile tüm isteklere cevap
verebilir.Bu arada javada çoklu süreç(multi process) yok.Çünkü JRE bir süreçtir
ve aynı anda birden fazla süreç çalıştırılamaz.Bunun için tek süreç ile çoklu
iş parçacığı ile bir çok işlem aynı anda gerçekleştirilebiliyor.[34] http://www.ethemsulan.com/2010/02/java-servlet-nedir-ve-nasl-calsr.html
Argümanve Prametre
nedir ?
Argüman: bir metodu
çağırırken içindeki değişkenlerdir
Örn; topla(a,b) gibi a ve b burada birer argümandır
Parametre : metod
tanımlarken kullanılan değişkenlerdir
Örn; topla(int a, int b){} burada ise a ve b birer parametredir
Comparable & Comparator Nedir ?
Array Listlerde int string gibi
değerleri değil de Java Sınıfını istenen objeye gore sıralar.
İnner Sınıflar nedir ? Niçin kullanılabilir ?
Java'da bildiğimiz üzere çoklu kalıtım
yoktur. Yani SubClass extends SuperClass,Super2Class gibi bir tanımlama yoktur.
Bunu Java'da dahili sınıflar ve interfaceler yapar. Öncelikle kod okunurluğunu
sağlar. Çünkü bir sürü sınıf yerine , her sınıfın ilgili olduğu alt sınıflarını
oluşturabiliriz. [36] http://malikmasis.blogspot.com.tr/2015/01/inner-classes.html
Threadlar kaç farklı şekilde
çağrılabilir ?
1)CoolThread t = new
CoolThread();
Thread t2 = new Thread(new
CoolThread()); // implement yöntemi
2) class MyRunnableMoreThread implements
Runnable // extends yöntemi
Ellerine yüreğine sağlık çok güzel bir paylaşım olmuş yeni başlayanlar yararlanabileceği bilgiler tabi yazıarı okuyabilmeleri içinde yinede sıfır bilgiyle okumazlarsa daha iyi anlarlar. Bu gibi paylaşımlar ülkemiz geleceği için çok değerli.
YanıtlaSilÇok teşekkür ederim Hamit Bey değerli düşünceleriniz için
YanıtlaSilgreat
YanıtlaSilEmeğinize sağlık çok teşekkür ederim.
YanıtlaSilRica ederim, faydalanmanıza sevindim :)
YanıtlaSilGüzel çalışma olmuş bana gerçekten büyük yararı oldu teşekkürler.
YanıtlaSilRica ederim, faydalanmış olmanıza çok sevindim. İyi çalışmalar
YanıtlaSilÇok faydalı ve güzel bir paylaşım olmuş. Emeğinize çok teşekkür ederim.
YanıtlaSilRica ederim, beğenmiş olmanıza çok sevindim. İyi çalışmalar.
YanıtlaSilÇok dolu dolu bir paylaşım olmuş emeğine sağlık.
YanıtlaSilTeşekkürler, faydalı olduysa ne mutlu ...
SilTeşekkürler sorular güzel fakat cevaplar biraz daha ayrıntılı olabilirdi
YanıtlaSilSelamlar,
SilYazının okunurluğu açısından cevapları oldukça kısa tutmaya özen gösterdim, fakat her cevabın yanına da daha ayrıntılı bakabileceğiniz linkler de bulunmaktadır.
Yorumunuz için teşekkürler.
Hocam gerçekten çok teşekkür ederim 5 yıl geçmesine rağmen yarınki mülakatımda işime aşırı yarayağacağından yana hiç şüphem yok. Emeğinize sağlık
YanıtlaSilRica ederim Hocam,
Sil5 yıl geçmiş de olsa zaman zaman güncellemeye gayret ediyorum. Böyle güzel dönüşler almak çok mutluluk verici.
İyi şanslar dilerim.