Java Platform, Standard Edition

**Java Platform, Standard Edition**, կրճատ՝ **Java SE** (նախկինում՝ **Java 2 Standard Edition** կամ **J2SE**), Java 2 պլատֆորմի ստանդարտ տարբերաը, որը նախատեսված է անհատական օգտագործման կամ փոքր բիզնեսում օգտագործելու համար հավելվածներ ստեղծելու և գործարկելու համար։ Չի ներառում ավելի հզոր և առաջադեմ Java 2 Enterprise Edition (J2EE) պլատֆորմի կողմից տրամադրված շատ գործառույթներ, որը նախատեսված է խոշոր և միջին ձեռնարկությունների մասշտաբով կոմերցիոն հավելվածներ ստեղծելու համար։

## java.lang
Java.lang փաթեթը պարունակում է հիմնարար դասեր և ինտերֆեյսեր, որոնք սերտորեն կապված են լեզվի և համակարգի հետ գործարկման ժամանակ։ Սա ներառում է արմատային դասեր, որոնք կազմում են դասի հիերարխիան, լեզվի սահմանման հետ կապված տեսակները, հիմնական բացառությունները, մաթեմատիկական գործառույթները, կապի աջակցման դասերը, անվտանգության գործառույթները և դասերը, որոնք տեղեկատվություն են տրամադրում օպերացիոն համակարգի մասին, որի վրա գործարկվում է ծրագիրը։

Հիմնական դասերը java.lang-ում.

* `Object`, այս դասը Java-ում դասի հիերարխիայի արմատն է,
* `Enum`, բազային դասը թվարկված տեսակի համար ( J2SE 5.0 տարբերակ),
* `Class`, դասը գլխավորն է Java ինտրոսեկցիոն ենթահամակարգում,
* `ClassLoader`, վերացական դաս, սահմանում է, թե ինչպես են դասերը բեռնվում։ Ձեր հավելվածը կարող է ստեղծել ենթադասեր, որոնք ընդլայնում են ClassLoader-ը՝ կիրառելով դրա մեթոդները։ Սա թույլ է տալիս դասերը բեռնել այլ կերպ, քան սովորական բեռնումը Java-ի գործարկման համակարգում։ Այնուամենայնիվ, դուք սովորաբար չպետք է դա անեք,
* `Throwable`, դասը բացառության դասերի հիերարխիայի բազային դասն է,
* `Error`, `Exception`, `RuntimeException`, բազային դասեր յուրաքանչյուր բացառության ենթատեսակի համար,
* `Thread`, դաս, որը պարունակում է գործողություններ կատարման հոաքերի վրա,
* `String`, տողերի և դրանց արժեքների ներկայացման դաս,
* `StringBuffer` и `StringBuilder`, լարերի հետ աշխատելու դասեր (StringBuilder J2SE 5.0-ից սկսած),
* `Comparable`, ինտերֆեյս՝ ընդհանրացված օբյեկտների համեմատության և պատվիրման համար (քանի որ J2SE 1.2),
* `Iterable`, ինտերֆեյս աջակցելու բարելավված հանգույցի համար (J2SE 5.0-ից),
* `Process`, `Runtime`, `SecurityManager`, `System`, կատարել «համակարգային գործողություններ»։ Կառավարել դասի դինամիկ բեռնումը, արտաքին գործընթացների ստեղծումը, շրջակա միջավայրի մասին տեղեկատվության ստացումը (օրինակ՝ օրվա ժամը) և վերահսկել անվտանգության քաղաքականության իրականացումը.
* `Math` և `StrictMath`, պարունակում է հիմնական մաթեմատիկական գործառույթներ, ինչպիսիք են սինուսի, կոսինուսի և քառակուսի արմատի հաշվարկը (StrictMath սկսած J2SE 1.3-ից);
* Փաթաթման դասեր պարզունակ տեսակների վրա, որոնք դրանք վերածում են օբյեկտների.
* Բացառության դասեր հիմնական լեզվի և գործարկման ժամանակի բացառությունների համար։

java.lang փաթեթի բոլոր դասերը ավտոմատ կերպով ներառված են յուրաքանչյուր ծրագրի սկզբնաղբյուր ֆայլում։ Հստակ կապ չի պահանջվում։

### java.lang.annotation
Այս փաթեթը սահմանում է Annotation ինտերֆեյսը, ինչպես նաև ElementType և RetentionPolicy թվերը։

### java.lang.instrument
Փաթեթը սահմանում է գործիքներ, որոնք կարող են օգտագործվել ծրագրի կատարման տարբեր ասպեկտների համար գործիքներ ավելացնելու համար։ Այն սահմանում է Instrumentation և ClassFileTransformer ինտերֆեյսները և ClassDefinition դասը։

### java.lang.management
Փաթեթը աջակցություն է տրամադրում Java վիրտուալ մեքենայի և գործարկման միջավայրի կառավարման համար։ Օգտագործելով փաթեթի գործիքները, դուք կարող եք դիտել և վերահսկել ծրագրի կատարման տարբեր ասպեկտներ։

### java.lang.ref
Ապահովում է աղբահանի հետ փոխազդելու ունակություն, որպեսզի ծրագիրը նախազգուշացվի օբյեկտին հղումների քանակի փոփոխության կամ օբյեկտի վրա աղբահանի կատարած գործողությունների մասին։

### java.lang.reflect
java.lang.reflect փաթեթը տրամադրում է արտացոլման մեխանիզմ, ծրագրային ապահովման կարողություն՝ ներքաշելու (այսինքն՝ տեղեկատվություն ստանալ համակարգի դասերի, դրանց մեթոդների, դաշտերի և հարաբերությունների մասին)։ Արտացոլումը կարևոր հատկություն է, որն անհրաժեշտ է JavaBeans կոչվող բաղադրիչներ օգտագործելիս։

## java.io
Պարունակում է դասեր՝ ֆայլի I/O տեղեկատվության տրամադրման համար, մի քանի I/O աբստրակցիոն դասեր, ինչպես նաև մուտքային տեղեկատվության մշակման դասերի մի շարք՝ նշանների հատկացում և այլն։

## java.math
Պարունակում է մեծ ամբողջ թվերի (BigInteger դաս) և կամայական ճշգրտության տասնորդական կոտորակների (BigDecimal դաս) հաշվարկների դասեր։ Այն պարունակում է նաև թվերի վրա գործողություններ կատարելու մեթոդներ՝ ստանալ դրանց բացարձակ արժեքը և այլն։

## java.net
Պարունակում է դասեր, որոնք հավելվածին թույլ են տալիս փոխազդել ցանցի հետ՝ տրամադրելով աբստրակցիաներ ցանցի հասցեների, կապերի, վարդակների ներդրման և այլնի համար։

## java.text
Դասերի և կոմունալ ծրագրերի մի շարք, որոնք թույլ են տալիս կազմակերպել աշխատանքը տարբեր տեսակի տվյալների ձևաչափերով, կիրառել գոյություն ունեցող ձևաչափման օրինաչափություններ կամ ստեղծել ձեր սեփական ձևաչափման նախշերը (օրինակ՝ ամսաթվի կամ լողացող կետի համարի ցուցադրման ձևաչափ)։

## java.util
Օգնական դասեր և ինտերֆեյսեր։ Շատ հարմար է և օգտագործվում է գրեթե բոլոր ծրագրերում։

## java.applet
Բրաուզերում աշխատելու համար։

## java.beans
java.beans փաթեթում ներառված են տարբեր դասերի աղբերի մշակման և մանիպուլյացիայի համար, բազմակի օգտագործման բաղադրիչներ, որոնք սահմանված են JavaBeans ճարտարապետությամբ։ Ճարտարապետությունն ապահովում է բաղադրիչների հատկությունների մանիպուլյացիայի մեխանիզմներ և կրակելու իրադարձություններ, երբ այդ հատկությունները փոխվում են։

java.beans-ի API-ները նախատեսված են աղբ խմբագրման գործիքի կողմից օգտագործելու համար, որտեղ աղբերը կարող են համակցվել, հարմարեցվել և շահագործվել։ Աղբ խմբագիրներից մեկը GUI դիզայներ է ինտեգրված զարգացման միջավայրում։

## java.awt
Պարունակում է օգտատերերի ինտերֆեյս գրելու, պատկերների հետ աշխատելու, նկարելու դասեր։

## java.rmi
Java.rmi փաթեթը տրամադրում է Java-ի հեռավոր մեթոդի կանչ՝ տարբեր JVM-ներում աշխատող երկու java հավելվածների միջև հեռավոր ընթացակարգային զանգերին աջակցելու համար։

## java.security
Անվտանգության աջակցությունը, ներառյալ հաղորդագրությունների դասակարգման ալգորիթմը, ներառված է java.security փաթեթում։

## java.sql
JDBC API-ի իրականացումը (օգտագործվում է SQL տվյալների բազա մուտք գործելու համար) խմբավորված է java.sql փաթեթում։

## javax.swing
Պարունակում է գրաֆիկական բաղադրիչների հավաքածու, որոնք թույլ են տալիս ստեղծել գրաֆիկական ինտերֆեյսներ, որոնք աշխատում են հնարավորինս միանման բոլոր պլատֆորմներում։

Swing-ը ռեժիմների հավաքածու է, որը հիմնված է java.awt-ի վրա՝ հարթակի անկախ վիդջեթների գործիքակազմ ապահովելու համար։ javax.swing-ն օգտագործում է 2D գծագրման ռեժիմներ՝ օգտատիրոջ միջերեսի բաղադրիչները մատուցելու համար՝ հիմնված բնիկ օպերացիոն համակարգի GUI աջակցության վրա հիմնվելու փոխարեն։

Այս փաթեթը պարունակում է JDK 6-ում դասերի ամենամեծ թիվը (ընդհանուր 133)։ Այս փաթեթը, java.awt-ի հետ միասին, պարունակում է նաև JDK 6-ում ամենաշատ թվով (ընդհանուր առմամբ 7)։ այնպես, որ GUI-ի վիջեթները կարողանան ընդօրինակել հիմքում ընկած բնիկ համակարգից։ Դիզայնի օրինաչափությունները ներթափանցում են համակարգում, հատկապես մոդել-դիտում-վերահսկիչ օրինաչափության փոփոխությունը, որը թուլացնում է ֆունկցիայի և արտաքինի միջև կապը։ Անհամապատասխանություններից մեկն այն է, որ (J2SE 1.3-ի դրությամբ) տառատեսակները գծվում են հիմքում ընկած բնիկ համակարգով, և ոչ թե Java-ով, ինչը սահմանափակում է տեքստի տեղափոխելիությունը։ Կան լուծումներ, ինչպիսիք են bitmap տառատեսակների օգտագործումը։ Ընդհանուր առմամբ, «դասավորությունները» օգտագործվում են և տարրերը պահում են էսթետիկորեն համահունչ ինտերֆեյսի միջերեսային միջավայրում բոլոր հարթակներում։

## Ծանոթագրություններ

## Գրականություն
* 

## Արտաքին հղումներ
* http://java.sun.com/docs/books/tutorial/getStarted/index.html
* https://web.archive.org/web/20070524162037/http://doc.java.sun.com/DocWeb/

Կատեգորիա:Բնօրինակում անաղբյուր հոդվածներ
Կատեգորիա:Հաշվարկման հարթակներ