" بىلقۇت تورى
جاۋانىڭ تارىخى 2

پروگرامما تۈزۈش مۇھىتى




JDK ( Java Development Kit )
ئۇ Java نى ئېچىش بوغچىسى ياكى Java نى ئېچىش قورالى دەپ ئاتىلىدۇ، ئۇ Java نى يازىدىغان Applet كىچىك تەرتىپ ۋە قوللىنىشچان پىروگراممىنى ئېچىش مۇھىتى. JDK پۈتكۈل Java نىڭ يادروسى بولۇپ، Java ھەرىكەت مۇھىتى ( Java Runtime Envirnment )، بەزى Java قورالى ۋە Java نىڭ يادرولۇق تۈر ئامبىرى ( Java API ) نى ئۆز ئىچىگە ئالىدۇ. مەيلى قانداقلا بولمىسۇن Java قوللىنىشچان مۇلازىمېتىر ماھىيەتتە مەلۇم نۇسخىدىكى JDK نى ئۆز ئىچىگە ئالىدۇ. ئاساسىي ئېقىمدىكىJDK بولسا Sun شىركىتى ئېلان قىلغان JDK بولۇپ، Sun دىن باشقا، يەنە نۇرغۇن شىركەت ۋە تەشكىلاتلار ئۆزىنىڭ JDK نى ئاچتى، مەسىلەن، IBM شىركىتى ئاچقان JDK، BEA شىركىتىنىڭ Jrocket، يەنە GNU تەشكىلاتى ئاچقان JDK[13 ] قاتارلىقلار.

ئۇنىڭدىن باشقا، Java API تۈرىدىكى ئامبىرىدىكى Java SE API قىسمىي توپلىمى بىلەن Java مەۋھۇم ماشىنىسى دېگەن ئىككى قىسىمنى ئومۇملاشتۇرۇپ JRE ( JAVA Runtime Environment ) دەپ ئاتاشقا بولىدۇ، JRE Java پىروگراممىسىنىڭ يۈرگۈزۈلۈشىنى قوللايدىغان ئۆلچەملىك مۇھىت.

بىلمەسلىكىڭىز مۇمكىن، JRE بىر ھەرىكەت مۇھىتى، JDK بولسا بىر ئېچىش مۇھىتى. شۇڭا Java پروگراممىسىنى يازغاندا JDK كېرەك بولىدۇ، Java پروگراممىسىنى ئىجرا قىلغاندا JRE لازىم بولىدۇ. JDK دا JRE بار، شۇڭا JDK قاچىلانسىلا، Java پروگراممىسىنى تەھرىرلىگىلى بولىدۇ، Java پروگراممىسىنى نورمال يۈرگۈزەلەيدۇ. لېكىن JDK دا ھەرىكەت بىلەن مۇناسىۋەتسىز نۇرغۇن مەزمۇنلار بولغاچقا، ئىگىلىگەن بوشلۇق بىر قەدەر چوڭ بولىدۇ، شۇڭا ئادەتتىكى Java پروگراممىسىنى ئىجرا قىلىشتا JDK ئورنىتىش ھاجەتسىز، پەقەت JRE ئورناتسىلا بولىدۇ [ 15 ].

پروگرامما تۈزۈش قورالى

بىرىنجى: Eclipse : بىر ئوچۇق مەنبە كودنى ئاساس قىلغان، Java نى كېڭەيتىشكە بولىدىغان ئېچىش سۇپىسى.
ئىككىنجى: NetBeans : ئوچۇق مەنبە كودنىڭ Java توپلاشتۇرۇپ ئېچىش مۇھىتى، ھەر خىل خېرىدارلار ئاپپاراتى ۋە Web غا ماس كېلىدۇ.
ئۈچىنجى: IntelliJIDEA:كودنى ئاپتوماتىك كۆرسىتىش، كودنى ئانالىز قىلىش قاتارلىق جەھەتلەردە ناھايىتى ياخشى ئىقتىدارغا ئىگە.
تۆتىنجى: MyEclipse Genuitec شىركىتى ئاچقان بىر خىل تاۋارلاشقان يۇمشاق دېتال، بىر قەدەر كەڭ قوللىنىلىۋاتقان Java قوللىنىشچان پروگرامما توپلاشتۇرۇپ ئېچىش مۇھىتى.

ئEditPlus ئەگەر Java نى توغرا سەپلەيدىغان تەرجىمە قىلغۇچ «Javac» ۋە چۈشەندۈرگۈچ «Java» دىن كېيىن، بىۋاسىتە EditPlus نى ئىشلىتىپ Java پروگراممىسىنى تەرجىمە قىلىپ ئىجرا قىلىشقا بولىدۇ.

تىل ئالاھىدىلىكى

1. ئاددىيلىق

ئىنىق، Java قارىماققا C++ غا ناھايىتى ئوخشايدۇ، لېكىن تىلنى كىچىكلىتىش ۋە ئاسان تونۇشۇش ئۈچۈن، لايىھىلىگۈچىلەر C++ تىلدىكى ئىشلىتىشكە بولىدىغان نۇرغۇن ئالاھىدىلىكلەرنى چۆرۈپ تاشلىدى، بۇ ئالاھىدىلىكلەرنى پروگرامما تۈزگۈچى ئادەتتە ناھايىتى ئاز ئىشلىتىدۇ. مەسىلەن، Java go to جۈملىسىنى قوللىمايدۇ، ئۇنىڭ ئورنىغا break ۋە continue جۈملىسى بىلەن تەمىنلەيدۇ ۋە غەيرى بىر تەرەپ قىلىدۇ. Java يەنە C++ مەشغۇلات بەلگىسىنىڭ زىيادە يۈك ( overload ) ۋە كۆپ ۋارىسلىق قىلىش ئالاھىدىلىكىنى چىقىرىپ تاشلىدى ھەمدە ئاساسىي ھۆججەتنى ئىشلەتمىدى، ئالدىن بىر تەرەپ قىلىش پروگراممىسىنى ئەمەلدىن قالدۇردى. چۈنكى Java نىڭ قۇرۇلمىسى يوق، سانلار گۇرۇپپىسى ۋە تىزىقلارنىڭ ھەممىسى ئوبيېكت بولغاچقا، ئىسترېلكا ھاجەتسىز. Java ئوبيېكتنىڭ نەقىل كەلتۈرۈلۈشى ۋە ۋاسىتىلىق نەقىل كەلتۈرۈشىنى ئاپتوماتىك بىر تەرەپ قىلىپ، ئاپتوماتىك كېرەكسىز بۆلەكلەرنى توپلاشنى ئىشقا ئاشۇرۇپ، ئابۇنىچىلارنى ساقلاش، باشقۇرۇش مەسىلىسىدىن باش قاتۇرمايدىغان، تېخىمۇ كۆپ ۋاقىت ۋە زېھنىنى تەتقىق قىلىپ ئېچىشقا سەرپ قىلالايدىغان قىلىدۇ.

2) ئوبيېكتقا يۈزلىنىش

ھەممە بىلىدۇ، Java بىر ئوبيېكتقا يۈزلەنگەن تىل. پروگرامما تۈزگۈچىلەرگە نىسبەتەن ئېيتقاندا، بۇ جەرياندىكى سانلىق مەلۇماتلار ۋە سانلىق مەلۇماتلارنى باشقۇرۇش ئۇسۇلىغا دىققەت قىلىشتىن دېرەك بېرىدۇ(method )، ھەرگىزمۇ جەريان ئارقىلىق پىكىر يۈرگۈزمەيدۇ. بىر ئوبيېكتقا يۈزلەنگەن سىستېمىدا، تۈر ( class ) سانلىق مەلۇمات ۋە مەشغۇلات سانلىق مەلۇمات ئۇسۇلىنىڭ توپلىمى. سانلىق مەلۇمات ۋە ئۇسۇل بىرلىكتە ئوبيېكتنىڭ ھالىتى ۋە ھەرىكىتىنى تەسۋىرلەيدۇ. ھەر بىر ئوبيېكت ئۇنىڭ ھالىتى ۋە ھەرىكىتىنىڭ پېچەتلىنىشى. تۈر مەلۇم سىستېما ۋە قاتلام بويىچە ئورۇنلاشتۇرۇلغان بولۇپ، بالا تۈرنى تۈر ھالقىپ ۋارىسلىق قىلىش ھەرىكىتى بىلەن شۇغۇللىنىشقا بولىدۇ. بۇ خىل قاتلام سىستېمىسىدا بىر يىلتىز تۈرى بار، ئۇ ئادەتتىكى ھەرىكەتكە ئىگە تۈر. Java پروگراممىسى تۈر ئارقىلىق تەشكىللەنگەن.

بۇ Java يەنە بىر تۈردىكى كېڭەيتىلگەن توپلامنى ئۆز ئىچىگە ئالغان بولۇپ، ئايرىم - ئايرىم ھالدا ھەر خىل پروگرامما بوغچىسى ( Package ) نى تەشكىل قىلىدۇ، ئىشلەتكۈچىلەر ئۆز پىروگراممىسىدا ئىشلەتسە بولىدۇ. مەسىلەن، Java گرافىكلىق ئابۇنىچى ئۇلاش ئېغىزى زاپچاسلىرىنى ئىشلەپچىقىرىدىغان تۈر ( java.awt ) بىلەن تەمىنلەيدۇ، بۇ يەردە awt ئابستراكت كۆزنەك قورالى توپلىمى ( abstract windowing toolkit ) نىڭ قىسقارتىلمىسى كىرگۈزۈش - چىقىرىش تۈرى ( java.io ) بىلەن تور ئىقتىدارىنى قوللايدىغان تۈر ( java.net ) نى بىر تەرەپ قىلىدۇ.

3) تارقىلىشچانلىقى

بىلەمسىز؟ Java نى توردا قوللىنىشنى قوللايدىغان قىلىپ لايىھەلىگەن، ئۇ تەقسىملىمە تىل. Java ھەم ھەر خىل قاتلامدىكى تور ئۇلىنىشىنى قوللايدۇ، ھەم Socket تۈرىدىكى ئىشەنچلىك ئېقىم ( stream ) تور ئۇلىنىشىنى قوللايدۇ، شۇڭا ئابۇنىچىلار تەقسىملىمە خېرىدار ئاپپاراتى ۋە مۇلازىمېتىر ھاسىل قىلالايدۇ.

تور يۇمشاق دېتال ئىشلىتىشتىكى توشۇش قورالىغا ئايلاندى. Java پروگراممىسى پەقەت بىر قېتىم يېزىلسىلا، ھەممە يەردە ئىشلەتكىلى بولىدۇ.


4. تەرجىمە ۋە چۈشەندۈرۈشچانلىق

بۇ Java تەرجىمە پروگراممىسى بايت كودى ( byte-code ) ھاسىل قىلىدۇ، ئادەتتىكى ماشىنا كودى ئەمەس. Java بايت كودى سىستېما قۇرۇلمىسىغا نىسبەتەن نېيترال بولغان نىشان ھۆججەت ئەندىزىسى بىلەن تەمىنلەيدۇ، كود لايىھەلىنىپ، ئۈنۈملۈك ھالدا كۆپ سۇپىغا ئەۋەتىلىدۇ. Java پروگراممىسى Java نى چۈشەندۈرۈش ۋە ئىجرا قىلىش سىستېمىسى ( run-time system ) نىڭ ھەر قانداق سىستېمىسىدا ئىجرا قىلىنىدۇ.

بىر چۈشەندۈرۈش خاراكتېرلىك مۇھىتتا، پروگرامما ئېچىش ئۆلچىمىنىڭ «ئۇلىنىش» باسقۇچى زور دەرىجىدە يوقاپ كەتتى. ئەگەر Java نىڭ يەنە بىر ئۇلىنىش باسقۇچى بار دېيىلسە، ئۇ پەقەت يېڭى تۈرنى مۇھىتقا كىرگۈزۈش جەريانى بولۇپ، ئۇ ئېشىش شەكلىدىكى، يېنىك دەرىجىدىكى جەريان. شۇڭا، Java تېز سۈرئەتلىك تىپ ۋە ئاسان تەجرىبە قىلىشنى قوللايدۇ، ئۇ تېز سۈرئەتتە پروگرامما ئېچىشنى كەلتۈرۈپ چىقىرىدۇ. بۇ بىر ئەنئەنىۋى، ۋاقىت سەرپ قىلىدىغان «تەرجىمە قىلىش، ئۇلاش ۋە سىناش» بىلەن روشەن سېلىشتۇرما ھاسىل قىلغان نازۇك تەرەققىيات جەريانى.

5. پۇختىلىق

قىززىق، Java ئەسلىدە ئىستېمال تۈرىدىكى ئائىلە ئېلېكتىر مەھسۇلاتلىرى يۇمشاق دېتالىنى يېزىشقا ئىشلىتىلىدىغان تىل ئىدى، شۇڭا ئۇ يۇقىرى ئىشەنچلىك ۋە پۇختا يۇمشاق دېتال قىلىپ لايىھەلەنگەن. Java بەزى پروگرامما تۈزۈش خاتالىقلىرىنى تۈگىتىپ، ئۇنىڭدىن پايدىلىنىپ ئىشەنچلىك يۇمشاق دېتال يېزىشنى ئاسانلاشتۇردى.




بۇ java بولسا بىر خىل كۈچلۈك تىپتىكى تىل، ئۇ كېڭەيتىپ تەرجىمە قىلغاندا يوشۇرۇن تۈردىكى ماسلاشماسلىق مەسىلىسىنى تەكشۈرۈشكە يول قويىدۇ. Java ئاشكارا ئۇسۇل بىلەن بايانات ئېلان قىلىشنى تەلەپ قىلىدۇ، ئۇ C ئۇسلۇبتىكى يوشۇرۇن بايانات ئېلان قىلىشنى قوللىمايدۇ. بۇ قاتتىق تەلەپلەر تەرجىمە قىلىش پروگراممىسىنىڭ خاتا يۆتكەپ ئىشلىتىش ئەھۋالىنى تۇتۇۋېلىشىغا كاپالەتلىك قىلىدۇ، بۇ تېخىمۇ ئىشەنچىلىك پىروگراممىنى كەلتۈرۈپ چىقىرىدۇ.

ئىشەنچلىكلىك جەھەتتىكى ئەڭ مۇھىم كۈچىنىشلەرنىڭ بىرى Java نىڭ ساقلاش مودېلى. Java ئىسترېلكىنى قوللىمايدۇ، ئۇ قايتا ساقلاش ۋە خاتا سانلىق مەلۇماتلارنى يوقىتىش مۇمكىنچىلىكىنى تۈگىتىدۇ. مۇشۇنىڭغا ئوخشاش، Java ئاپتوماتىك ھالدا «كېرەكسىز بۆلەكلەرنى يىغىش» ساقلاش، سارقىشنىڭ ئالدىنى ئېلىش ۋە باشقا ھەرىكەت ھالىتىدە ساقلاشنى تەقسىملەش ۋە تەقسىملەشنى بىكار قىلىشقا مۇناسىۋەتلىك زىيانلىق خاتالىقلارنىڭ ئالدىنى ئالىدۇ. Java چۈشەندۈرۈش تەرتىپىمۇ نۇرغۇن ئىجرا قىلىنغان ۋاقىتتىكى تەكشۈرۈشلەرنى ئىجرا قىلىدۇ، مەسىلەن، بارلىق سانلار گۇرۇپپىسى ۋە ئارقىمۇ ئارقا زىيارەت قىلىشنىڭ چەك ئىچىدە ياكى ئەمەسلىكىنى ئىسپاتلايدۇ.

نورمالسىزلىقنى بىر تەرەپ قىلىش Java نىڭ پىروگراممىنى تېخىمۇ پۇختا قىلىشتىكى يەنە بىر ئالاھىدىلىكى. نورمالسىزلىق مەلۇم خىل خاتا نورمالسىز شارائىتتا پەيدا بولغان سىگنالغا ئوخشايدۇ. try/catch/finally جۈملىسىنى ئىشلەتكەندە، پروگرامما تۈزگۈچى خاتالىق كۆرۈلگەن بىر تەرەپ قىلىش كودىنى تاپالايدۇ، بۇ خاتالىق كۆرۈلگەن بىر تەرەپ قىلىش ۋە ئەسلىگە كەلتۈرۈش ۋەزىپىسىنى ئاددىيلاشتۇردى.

6) بىخەتەرلىكى

بۇ Java نىڭ ساقلاش تەقسىملەش مودېلى ئۇنىڭ يامان نىيەتلىك كودنى ساقلاشتىكى ئاساسلىق ئۇسۇللىرىنىڭ بىرى. Java نىڭ ئىسترېلكىسى يوق، شۇڭا پروگرامما تۈزگۈچى يوشۇرۇن ئىچكى خەۋەر ۋە ساختا ئىسترېلكا ئارقىلىق ساقلىغۇچنى كۆرسىتەلمەيدۇ. تېخىمۇ مۇھىمى، Java تەرجىمە پروگراممىسى ساقلاش ئورۇنلاشتۇرۇشىنى بىر تەرەپ قىلمايدۇ، شۇڭا پروگرامما تۈزگۈچى باياناتنى تەكشۈرۈش ئارقىلىق ئەمەلىي ساقلاش ئورۇنلاشتۇرۇشىنى پەرەز قىلالمايدۇ. تەھرىرلەپ تەرجىمە قىلىنغان Java كودىدىكى ساقلاش ۋە قوللىنىش ئىجرا قىلىنغاندا Java چۈشەندۈرۈش پروگراممىسى ئەمەلىي ساقلاش ئادرېسىنى بەلگىلەيدۇ.

شۇڭا Java ئىجرا قىلىش سىستېمىسى بايت كودى ئارقىلىق دەلىللەش جەريانى ئارقىلىق تورغا قاچىلانغان كودنىڭ ھەرقانداق Java تىلى چەكلىمىسىگە خىلاپلىق قىلماسلىقىغا كاپالەتلىك قىلىدۇ. بۇ بىخەتەرلىك مېخانىزىمىنىڭ بىر قىسمى توردىن قانداق قاچىلاشنى ئۆز ئىچىگە ئالىدۇ. مەسىلەن، قاچىلاشنىڭ تۈرى ئايرىم ئىسىم بوشلۇقىغا قويۇلغان بولۇپ، قىسمەن تۈر ئەمەس، يامان غەرەزدىكى كىچىك قوللىنىشچان پىروگراممىلارنىڭ ئالدىنى ئېلىش ئۈچۈن ئۆزىنىڭ نۇسخىسىنى ئۆلچەملىك Java نىڭ ئورنىغا دەسسەتكەن.

7) كۆچۈرۈلۈشچانلىق
مەسىلەن، Java ئاشكارا فورمۇلاسى ھەر بىر ئاساسىي سانلىق مەلۇمات تىپىنىڭ چوڭ - كىچىكلىكى ۋە ئۇنىڭ ھېسابلاش ھەرىكىتىنى چۈشەندۈرۈپ بېرىدۇ ( بۇ سانلىق مەلۇمات تىپلىرىنى Java گرامماتىكىلىق تەسۋىرلەيدۇ).
بۇ Java مۇھىتىنىڭ ئۆزى يېڭى قاتتىق دېتال سۇپىسى ۋە مەشغۇلات سىستېمىسىغا كۆچۈرۈلىدۇ. Java تەرجىمە پروگراممىسى Java ئارقىلىق تۈزۈلىدۇ، Java يۈرگۈزۈش سىستېمىسى بولسا ANSIC تىلىدا يېزىلىدۇ.

8. يۇقىرى ئىقتىدارلىق

بۇ Java بىر خىل ئاۋۋال تەرجىمە قىلىپ ئاندىن چۈشەندۈرىدىغان تىل، شۇڭا ئۇ پۈتۈن تەرجىمە خاراكتېرلىك تىلغا يەتمەيدۇ. لېكىن بەزى ئەھۋاللاردا ئىقتىدارى ناھايىتى مۇھىم، بۇ ئەھۋاللارنى قوللاش ئۈچۈن، Java لايىھەلىگۈچى «ۋاقتىدا» تەرجىمە قىلىش، تەرجىمە قىلىش پروگراممىسىنى تۈزۈپ چىقتى، ئۇ ھەرىكەت قىلغاندا Java بايت كودىنى ئالاھىدە CPU ( مەركىزىي بىر تەرەپ قىلغۇچ ) نىڭ ماشىنا كودىغا تەرجىمە قىلالايدۇ، يەنى تولۇق تەرجىمە قىلىش، تەرجىمە قىلىشنى ئىشقا ئاشۇردى.

بۇ Java بايت شەكلىنى لايىھەلىگەندە بۇ «ۋاقتىدا» تەرجىمە قىلىش پروگراممىسىنىڭ ئېھتىياجىنى نەزەردە تۇتقاندا، ماشىنا كودىنى ھاسىل قىلىش جەريانى خېلى ئاددىي بولۇپ، ئۇ خېلى ياخشى كود پەيدا قىلالايدۇ.

9. كۆپ يىپ ئۇچى خاراكتېرلىك

بۇ Java كۆپ خىل يىپ ئۇچى تىلى بولۇپ، ئۇ كۆپ خىل يىپ ئۇچلىرىنىڭ ئىجرا قىلىنىشىنى قوللايدۇ ( يېنىك جەريان دەپمۇ ئاتىلىدۇ)، ئوخشاش بولمىغان ۋەزىپىلەرنى بىر تەرەپ قىلالايدۇ، بۇنىڭ بىلەن يىپ ئۇچى بار پىروگراممىنىڭ لايىھەلىنىشى ناھايىتى ئاسان بولىدۇ. Java نىڭ lang بىر Thread تۈرى بىلەن تەمىنلەيدۇ، ئۇ يىپ ئۇچى بىلەن تەمىنلەش، يىپ ئۇچىنى ئىجرا قىلىش، يىپ ئۇچىنى توختىتىش ۋە يىپ ئۇچى ھالىتىنى تەكشۈرۈش ئۇسۇلىنى قوللايدۇ.

بۇ Java نىڭ يىپ ئۇچى قوللىشىمۇ بىر گۇرۇپپا ماس قەدەملىك ئەسلىي تىلنى ئۆز ئىچىگە ئالىدۇ. بۇ ئەسلى سۆزلەر نازارەت قىلىش تەرتىپى ۋە شەرتلىك ئۆزگەرگۈچى مىقدار سالاپىتىگە ئاساسەن C.A.R.Haore كەشىپ قىلغان كەڭ قوللىنىلىدىغان ماس قەدەملىك لايىھە. ئاچقۇچلۇق سۆز «synchronized» نى قوللانغاندا، پروگرامما تۈزگۈچى بەزى ئۇسۇللارنىڭ بىر تۈردە تەڭ قوزغالمايدىغانلىقىنى چۈشەندۈرۈپ بېرەلەيدۇ. بۇ ئۇسۇللار نازارەت قىلىش تەرتىپىنىڭ كونتروللۇقىدا بولۇپ، ئۆزگەرگۈچى مىقدارنىڭ بىردەك ھالەتتە تۇرۇشىغا كاپالەتلىك قىلىدۇ.

10. ھەرىكەتچانلىق

بۇ Java تىلى ئۆزگىرىشچان مۇھىتقا ماس كېلىدىغان قىلىپ لايىھەلەنگەن، ئۇ بىر ھەرىكەتچان تىل. مەسىلەن، Java دىكى تۈرلەر ئېھتىياجغا ئاساسەن كىرگۈزۈلگەن، ھەتتا بەزىلىرى تور ئارقىلىق ئېرىشكەن.