Jump to content

Recommended Posts

100px-Java_logo.svg.pngჯავა (ინგლ. Java წარმოითქმის/dʒɑːvə/) არის ზოგადი დანიშნულების, კონკურენტული, ობიექტურად ორიენტირებული პროგრამირების ენა. Java არის მკაცრად (სტატიკურად) ტიპიზირებული ენა. სინტაქსური აგებულებით ის წააგავს უფრო ადრეულ ენებს C და C++. მისი ობიექტური მოდელი აგრეთვე მნიშვნეოვნად ნასესხებია C++ და Smalltalk ენებიდან. Java პროგრამები კომპილირდება ბაიტ-კოდებში და ეშვება Java ვირტულურ მანქანაში (JVM), რაც უზრუნველყოფს კომპილირებული პროგრამის დამოუკიდებლობას გამშვები სისტემასთან მიმართებაში.

ოფიციალურად Java 1995 წლის 23 მაისს გამოვიდა. Java-ს პირველადი შემუშავება ეკუთვნის Sun Microsystems, რომელიც დღემდე რჩება Java ვირტუალური მანქანის და ენის სპეციფიკაციის ძირითად განმსაზღვრელად.

Java მხარდაჭერილია ძირითად კომპიუტერულ და მობილურ ოპერაციულ სისტემებში, უამრავ საყოფაცხოვრებო და ციფრული მოწყობილობაში, აგრეთვე საბანკო პლასტიკურ და სხვა სახის სერვის ბარათებში.

დღეს Java ყველაზე გავრცელებული ენაა, მოწყობილობათა რაოდენობის მიხედვით, რომლებიც ასრულებენ Java პროგრამებს და, აგრეთვე, ყველაზე პოპულარული ენაა იმ პროგრამისტების რაოდენობის მიხედვით, რომლებიც წერენ თავის პროგრამებს Java-ზე.

 

ისტორია

Java-ს ისტორია იწყება 1990 წლის დეკემბრიდან, როდესაც Sun Microsystems-ში მცირე ჯგუფის მიერ ინიცირებულია "მწვანე პროექტი" (Green Project) [1]. ამ პროექტის მიზანი იყო სამომხმარებლო ციფრული მოწყობილობების დაპროგრამების შესაძლებლობა, ისევე როგორც ეს კომპიუტერებზე შეიძლებოდა.

მწვანე პროექტის ფარგლებში ჯეიმზ გოსლინგის მიერ შეიქმნა ახალი პროგრამირების ენა Oak, რომელიც არ იყო დამოკიდებული კონკრეტული მოწყობილობის აგებულების დეტალებზე. Oak შემდგომში სახელი შეუცვალეს, და მას Java დაერქვა[2].

Star7 მოწყობილობის წარმატებული დემონსტრაციის შემდეგ 1993 წელს "მშვანე პროექტი" First Person Inc.-ში გადადის, რომელსაც სრულად აფინანსებს Sun-ი[3].

First Person Inc. საბოლოო ჯამში დაიხურა როგორც არაპერსპექტიული იმ დროისათვის. თუმცა აღმოაჩნდა, რომ ის პრობლემები, რომლების გადაჭრასაც ცდილობდნენ ამ პროექტში, აგრეთვე აქტუალურად იდგა სხვა სწრაფადგანვითარებად დარგში—ინტერნეტში.

განცხადება Java ალფა ვერსიის გამოსვლის შესახებ გაკეთდა 1995 წლის 23 მაისს, Sun World კონფერენციაზე. საბოლო ვერსიით JDK 1.0 (Java Development Kit) გამოვიდა 1996 წელს [4].

პირველი ფართო აღიარება Java ტექნოლოგიამ მიიღო 1997 წელს, როდესაც გამვიდა JDK-ს შემდეგი, 1.1, ვერსია.

Java-ს ვერსიები შემდეგი ქრონოლოგიით გამოდიოდა:

JDK 1.0[5], 1996 წლის 23 იანვარი.

JDK 1.1[6], 1997 წლის 19 თებერვალი. სიახლეები შეიცავდა AWT ბიბლიოთეკის გაუმჯობესებას, ახალ JDBC ტექნოლოგიას რელაციურ მონაცემთა ბაზებთან სამუშაოდ და JavaBean პროგრამირების ინტერფეისს. აგრეთვე მნიშვნელოვანი იყოUnicode სტანდარტის მხარდაჭერის გამოჩენა.

J2SE 1.2[7], 1998 წლის 8 დეკემბერი. პირველად გამოჩნდა Swing ბიბლიოთეკა მომხმარებლის ინტერფეისის გაუმჯობესებული მხარდაჭერით, შედარებით უფრო ადრეულ AWT-თან.

J2SE 1.3[8], 2000 წლის 8 მაისი. გაზრდილი წარმადობა. RMI/IIOP და JNDI ტექნოლოგიები.

J2SE 1.4[9], 2002 წლის 6 თებერვალი. 64 ბიტიანი არქიტექტურის მხარდაჭერა, XML დამუშავების ჩადგმული შესაძლებლობები.

J2SE 5.0[10], 2004 წლის 30 სექტემბერი. ენის ახალი კონსტრუქციები, როგორიცაა კლასის პარამეტრები (Generics)for ციკლის გაფართოებული შესაძლებლობები, პრიმიტიული ტიპების ავტომატური კონვერტაცია შესაბამის ობიექტურ ტიპებში და პირიქით, უტიპო Enum-ი, ცვლადი არგუმენტების სია ფუნქციაში, სტატიკური import-ი და მეტამონაცემების, ანუ ანოტაციების მხარდაჭერა.

Java SE 6.0[11][12][13], 2006 წლის 11 დეკემბერი. სხვა უამრავ სიახლეებს შორისაა ჩადგმული მონაცემთა ბაზა Java DB, გრაფიკული ინტერფეისის გაფართოებული შესაძლებლობები, სკრიპტული ენების მხარდაჭერა და კომპილატორთან პროგრამულად მუშაობის შესაძლებლობა.

 

ძირითადი თავისებურებები შესრულების გარემოსგან დამოუკიდებლობა

Java-ს ძირითადი მახასიათებელი თვისებაა იყოს დამოუკიდებელი შესრულების გარემოს აგებულების დეტალებისაგან; Java პლატფორმის ყველაზე ცნობილი დაპირების, დაწერე ერთხელ, გაუშვი ყველგან, შესაბამისად. ასეთი მიდგომა პირველ რიგში ამარტივებს პროგრამის შემქმნელის შრომას, რადგან, სიტყვაზე Mac OS X ოპერაციულ სისტემაში დაწერილი პროგრამა შესაძლებელია ცვლილების გარეშე გადავიტანოთ სხვა, მაგალითად, Linux ოპერაციული სისტემაში.

ცნება შესრულების გარემო Java-ს შემთხვევაში გაცილებით შორსაა წასული ვიდრე უბრალოდ ოპერაციული სისტემა. ასე მაგალითად, ამოსაბეჭდი მოწყობილობა აგრეთვე შესრულების გარემოს ერთ-ერთი შემადგენელი ნაწილია. ამიტომ Java-ზე შექმნილია სპეციალურიპროგრამირების ინტერფეისი, სახელად Java Print API, რომლის გამოყენებით შეგიძლიათ ისე დაწეროთ პროგრამა, რომ პრინტერის აგებულების დეტალები არ იყოს არსად ნახსენები. ეს ის სამუშაო, რასაც Java საკუთარ თავზე იღებს.

შესრულების გარემოს სხვა მნიშვნელოვანი მაგალითია რელაციური მონაცემთა ბაზა. ერთ-ერთი პირველი Java პროგრამირების ინტერფეისი, სახელად JDBC, უზრუნველყოფდა ნებისმიერი მწარმოებლის მონაცემთა ბაზასთან მიერთების და SQL ბრძანებების შესრულების ერთნაირ მექანიზმს. აბსტრაქციის დონე კიდევ უფრო თვალშისაცემია დღეს, როდესაც Hibernate შემდეგ კი EJB3 ტექნოლოგიები განვითარდა, რომელთა წყალობით დღეს შეგვიძლია ისე ვიმუშაოთ რელაციურ მონაცემთა ბაზასთან, რომ არ გამოვიყენოთ ამ ბაზისთვის დამახასიათებელი SQL ენის დიალექტი.

შესრულების გარემოდ აგრეთვე სხვა Java პროგრამები შეგვიძლია განვიხილოთ. ყოვლისმომცველი გაერთიანების სურვილის წყალობით, Java-ში განვითარდა OSGI ტექნოლოგია, რომლის დახმარებით შეგვიძლია თავად Java-ს პროგრამების, როგორც პროგრამული მოდულების მართვა.

 

მეხსიერების ავტომატური მართვა

მეხსიერების გაჟონვა არის C++-ისთვის დამახასიათებელი პრობლემა. Java-ში ეს პრობლემა გადაჭრილია მეხსიერების ავტომატური მართვის მექანიზმით სახელად Gabrage Collector (პირდაპირ თარგმანში, ნაგვის შემგროვებელი), რომელიც თავის თავზე იღებს მეხსიერებაში ყველა იმ ობიექტის პოვნას და წაშლას, რომელიც პროგრამაში არ გამოიყენება.

Java-ში შეუძლებელია ობიექტის მეხსიერებიდან უშუალოდ წაშლა. შეიძლება მხოლოდ მიუთითოთ რომ ესა თუ ის ობიექტი განკუთვნილია წასაშლელად, ამ ობიექტზე ყველა კავშირის (reference) მოსპობით.

დამატებით შესაძლებელი გამოვიყენოთ System.gc(); გამოძახება, რომლის შემდეგ Gabrage Collector ეცდება მისთვის მოსახერხებელ დროს გაწმინდოს მეხსიერება. აქ, ისევ, არ იგულისხმება არანაირი გარანტია, რომ მეხსიერების გაწმენდილი იქნება ამ გამოძახების დასრულებისთანავე.

 

ზეგავლენა

Java-მ მნიშვნელოვნად შეცვალა ციფრული ტექნოლოგია. მისი ზეგავლენა აშკარაა ამ ტექნოლოგიის გამოყენების თითქმის მთელ სპექტრზე.

 

 

გამარჯობა სამყარო

გამარჯობა სამყარო Java-ზე, რომელსაც შეტყობინება კონსოლზე გამოაქვს, ასე გამოიყურება:

/**
* გამარჯობა სამყარო Java პროგრამირების ენაზე.
* გამოჰყავს კონსოლზე ტექსტი "გამარჯობა, სამყარო!".
*/
public class HelloWorld {
    static public void main(String[] args) {
        System.out.println("გამარჯობა, სამყარო!");
    }
}

გამარჯობა სამყარო Java-ს სტანდარტულ გრაფიკული ინტერფეისში (Swing) ასე გამოიყურება:

import javax.swing. JOptionPane;
 
/**
 * გამარჯობა სამყარო Java პროგრამირების ენაზე.
 * სტანდარტული გრაფიკული ინტერფეისში (Swing).
 * გამოჰყავს დიალოგი ტექსტით "გამარჯობა, სამყარო!".
 */
public class HelloWorld {
	static public void main(String[] args) {
		JOptionPane.showMessageDialog(null, "გამარჯობა, სამყარო!");
	}
}

ორივე ზემოთ მოყვანილი მაგალითი საკმაოდ მარტივად გამოიყურება, განსხვავებით, მაგალითად C-სგან, სადაც გრაფუკული ინტერფეისში ანალოგიური პროგრამის დაწერა შედარებით შრომატევადია.

 

ენის სინტაქსი

Java-ს სინტაქსი მნიშვნელოვნად წააგავს C++ სინტაქს. თუმცა Java აგებულია, როგორც ექსკლუზიურად ობიექტურად ორიენტირებული ენა. მთელი საწყისი კოდი იწერება კლასის შიგნით. ამიტომ ყველაფერი Java-ში ობიექტია, გარდა პრიმიტიული ტიპების. გამარტივების მიზნით კლასს შეუძლია იყოს მხოლოდ ერთი კლასის შთამომავალი. ეს შეზღუდვა გარკვეულ წილად კომპენსირდება იმით, რომ კლასს შეუძლია უზრუნველყოს ნებისმიერი რაოდენობა ინტერფეისების.

ენას გააჩნია ჩადგმული საშუალებები შეცდომების დამუშავებისთვის და მრავალპროცესიანი პროგრამირებისთვის.

 

 

წყარო: ka.wikipedia.org

 

ვიდეო გაკვეთილები

ქართულ ენაზე

 

Java-ს გაკვეთილები დამწყებთათვის - ბმული

 

 

ინგლისურ ენაზე

 

Java-ს გაკვეთილები დამწყებთათვის -

/ ბმული 2

Java-ს გაკვეთილები შუა საფეხურზე მყოფთათვის -

/ ბმული 2

Java-ზე თამაშების განვითარება -

/ ბმული 2

ონლაინ კურსი 71 გაკვეთილით - ბმული

  • Upvote 7
Link to comment
Share on other sites

C#-ს გავს ძალიან სინტაქსით. თუ პირიქით C# გავს :D

 

ჯავაზე მაქვს პროექტი ჩასაბარებელი ხვალ. იმედია ვიშოვი რამეს :D

Link to comment
Share on other sites

მერვე ვერსიაში ფუნქციონალური პარადიგმა ემატება, ვნახოთ თუ იქნება გამოყენებადი

Link to comment
Share on other sites

  • 5 weeks later...

ინქბე ვინმე დამეხმაროთ.

 

მოკლედ როგორ ვქნა ისე, რომ JButton -ზე actionListener-ს რომ დავამატებ, მერე რომ შევცვალო ეს actionListener-ი მეორეთი იგივე JButton-ზე.

Link to comment
Share on other sites

  • 7 months later...

გამარჯობათ, ე.ი. დავიწყე Java-ს სწავლა გერმანულად და არც  ისე მარტივი აღმოჩნდა უცხო ენაზე სწავლა, ყველაფერს ვერ ვიგებ ბოლომდე და მაინტერესებს თუ არის დამწყებთათვის ქართულენოვანი წიგნი ან რამე მსგავსი? გმადლობთ წინასწარ :)

Link to comment
Share on other sites

გამარჯობათ, ე.ი. დავიწყე Java-ს სწავლა გერმანულად და არც  ისე მარტივი აღმოჩნდა უცხო ენაზე სწავლა, ყველაფერს ვერ ვიგებ ბოლომდე და მაინტერესებს თუ არის დამწყებთათვის ქართულენოვანი წიგნი ან რამე მსგავსი? გმადლობთ წინასწარ :)

 

პირველ პოსტშიც მიწერია ეს ლინკი

 

http://howtocode.ge/tutorials/java-damcyebtatvis

Link to comment
Share on other sites

პირველ პოსტშიც მიწერია ეს ლინკი

 

http://howtocode.ge/tutorials/java-damcyebtatvis

მადობა, ეს ლინკი ვნახე მარა მე წიგნი მინდოდა რამე რომ ვიყიდო და წავიღო. არ არსებობს რამე? ან საქართველოში უნივერსიტეტებში რითი ასწავლიან?

Link to comment
Share on other sites

  • 2 months later...

შემიძლია ჯავაში კოდი რასაც დაბეჭდავს ის შედეგი ექსელის ფაილში შევინახო ?

cmd რომ ვაკომპილირებ იქიდან ტექსტურ ფაილში როგორ შევინახო და პირდაპირ ექსელში მინდა ,

ან cmd -დან ან java-ს კოდიდან როგორ გავაკეთო.

Link to comment
Share on other sites

შემიძლია ჯავაში კოდი რასაც დაბეჭდავს ის შედეგი ექსელის ფაილში შევინახო ?

cmd რომ ვაკომპილირებ იქიდან ტექსტურ ფაილში როგორ შევინახო და პირდაპირ ექსელში მინდა ,

ან cmd -დან ან java-ს კოდიდან როგორ გავაკეთო.

გუგლს მიმართე?

Link to comment
Share on other sites

თავიდან რაღაც ვერ გავიგე , ცალკე ბიბლიოთეკა რომ უნდა გადმომეწერა, ახლა ვნახე რაღც გამოსადეგი ლინკი და ვამუღამებ.

http://www.javaworld.com/article/2074940/learn-java/java-app-dev-reading-and-writing-excel-spreadsheets.html

კალენდარი დავწერე და მაგის გადატანა მინდოდა ეხსელში

Link to comment
Share on other sites

აქაც კარგადაა ახსნილი, ვისაც აინტერესებს გადახედოს

http://www.andykhan.com/jexcelapi/tutorial.html

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.