منصة Java، الإصدار القياسي
This article needs additional citations for verification. (April 2018) |
| Java platform editions |
|---|
|
Java Platform, Standard Edition ( Java SE ) هي منصة حوسبة لتطوير ونشر التعليمات البرمجية المحمولة لبيئات سطح المكتب والخادم . [1] كانت Java SE تُعرف سابقًا باسم Java 2 Platform, Standard Edition ( J2SE ).
تستخدم المنصة لغة برمجة Java وهي جزء من عائلة منصات برامج Java . تحدد Java SE مجموعة من واجهات برمجة التطبيقات للأغراض العامة —مثل واجهات برمجة تطبيقات Java لمكتبة Java Class Library— وتتضمن أيضًا مواصفات لغة Java ومواصفات Java Virtual Machine . [2] OpenJDK هو التنفيذ المرجعي الرسمي منذ الإصدار 7. [3] [4] [5]
التسميات والمعايير والمواصفات
عُرفت المنصة باسم Java 2 Platform, Standard Edition أو J2SE من الإصدار 1.2، حتى تم تغيير الاسم إلى Java Platform, Standard Edition أو Java SE في الإصدار 1.5. يُستخدم "SE" لتمييز المنصة الأساسية عن منصات Enterprise Edition ( Java EE ) وMicro Edition ( Java ME ). كان المقصود من "2" في الأصل التأكيد على التغييرات الرئيسية التي تم تقديمها في الإصدار 1.2، ولكن تمت إزالتها في الإصدار 1.6. تم تغيير اتفاقية التسمية عدة مرات على مدار تاريخ إصدارات Java . بدءًا من J2SE 1.4 (Merlin)، تم تطوير Java SE بموجب عملية مجتمع Java ، والتي تنتج أوصافًا للمواصفات المقترحة والنهائية لمنصة Java والتي تسمى طلبات مواصفات Java (JSR) . [6] كانت JSR 59 هي المواصفات الشاملة لـ J2SE 1.4 وحددت JSR 176 J2SE 5.0 (Tiger). تم إصدار Java SE 6 (Mustang) بموجب JSR 270.
Java Platform, Enterprise Edition (Java EE) عبارة عن مواصفات ذات صلة تتضمن جميع الفئات الموجودة في Java SE، بالإضافة إلى عدد أكثر فائدة للبرامج التي تعمل على الخوادم بدلاً من محطات العمل .
Java Platform, Micro Edition (Java ME) هي مواصفة ذات صلة تهدف إلى توفير مجموعة معتمدة من واجهات برمجة تطبيقات Java لتطوير البرامج للأجهزة الصغيرة ذات الموارد المحدودة مثل الهواتف المحمولة وأجهزة المساعد الرقمي الشخصي (PDA) وأجهزة فك التشفير .
بيئة تشغيل Java (JRE) ومجموعة تطوير Java (JDK) هي الملفات الفعلية التي تم تنزيلها وتثبيتها على جهاز الكمبيوتر لتشغيل أو تطوير برامج Java، على التوالي.
الحزم للأغراض العامة
جافا.لانغ
تحتوي حزمة Java على فئات وواجهاتjava.lang أساسية مرتبطة ارتباطًا وثيقًا باللغة ونظام وقت التشغيل . يتضمن ذلك الفئات الجذرية التي تشكل التسلسل الهرمي للفئات ، والأنواع المرتبطة بتعريف اللغة، والاستثناءات الأساسية ، ووظائف الرياضيات، والترابط ، ووظائف الأمان، بالإضافة إلى بعض المعلومات حول النظام الأصلي الأساسي. تحتوي هذه الحزمة على 22 من 32 فئة مقدمة في JDK 6.
Error
الفئات والواجهات الرئيسية في java.langهي:
Object- الفئة التي تشكل جذر كل التسلسل الهرمي للفئة.Enum- الفئة الأساسية لفئات التعداد (اعتبارًا من J2SE 5.0).Class- الفئة التي تشكل جذر نظام الانعكاس في Java .Throwable- الفئة التي تشكل الفئة الأساسية لتسلسل فئات الاستثناءات.Error,Exception, وRuntimeException– الفئات الأساسية لكل نوع استثناء.Thread- الفئة التي تسمح بالعمليات على الخيوط.String- الفئة الخاصة بالسلاسل والسلاسل الحرفية .StringBufferو-StringBuilderفئات لأداء معالجة السلسلة (StringBuilderاعتبارًا من J2SE 5.0).Comparable- الواجهة التي تسمح بالمقارنة العامة وترتيب الكائنات (اعتبارًا من J2SE 1.2).Iterable- الواجهة التي تسمح بالتكرار العام باستخدام الحلقة المحسنةfor(اعتبارًا من J2SE 5.0).ClassLoader,Process,Runtime,SecurityManager, وSystem– الفئات التي توفر "عمليات النظام" التي تدير التحميل الديناميكي للفئات، وإنشاء العمليات الخارجية ، واستعلامات بيئة المضيف مثل الوقت من اليوم، وإنفاذ سياسات الأمان .Mathو-StrictMathالفئات التي توفر وظائف الرياضيات الأساسية مثل الجيب وجيب التمام والجذر التربيعي (StrictMathاعتبارًا من J2SE 1.3).- فئات الغلاف البدائية التي تغلف الأنواع البدائية ككائنات .
- فئات الاستثناءات الأساسية التي يتم طرحها على مستوى اللغة والاستثناءات الشائعة الأخرى.
java.langيتم استيراد الفئات تلقائيًا إلى كل ملف مصدر .
java.lang.ref
توفر الحزمة java.lang.refأنواعًا أكثر مرونة من المراجع مقارنة بما هو متاح بخلاف ذلك، مما يسمح بتفاعل محدود بين التطبيق ومجمع القمامة Java Virtual Machine (JVM) . إنها حزمة مهمة، ومركزية بدرجة كافية للغة حتى أن مصممي اللغة أعطوها اسمًا يبدأ بـ "java.lang"، لكنها ذات غرض خاص إلى حد ما ولا يستخدمها الكثير من المطورين. تمت إضافة هذه الحزمة في J2SE 1.2.
تتمتع لغة Java بنظام تعبيري للمراجع وتسمح بسلوك خاص لجمع البيانات غير المرغوبة. يُعرف المرجع العادي في Java باسم "المرجع القوي". java.lang.refتحدد الحزمة ثلاثة أنواع أخرى من المراجع - المراجع الناعمة والضعيفة والخيالية. تم تصميم كل نوع من المراجع لاستخدام محدد.
- يمكن استخدام A
SoftReferenceلتنفيذ ذاكرة تخزين مؤقتة . يُطلق على الكائن الذي لا يمكن الوصول إليه بواسطة مرجع قوي (أي لا يمكن الوصول إليه بقوة)، ولكن تتم الإشارة إليه بواسطة مرجع ناعم اسم "قابل للوصول إليه بلطف". يمكن جمع كائن قابل للوصول بلطف وفقًا لتقدير جامع القمامة. وهذا يعني عمومًا أن الكائنات التي يمكن الوصول إليها بلطف يتم جمعها فقط عندما تكون الذاكرة الخالية منخفضة - ولكن مرة أخرى، هذا وفقًا لتقدير جامع القمامة. من الناحية الدلالية، يعني المرجع الناعم، "احتفظ بهذا الكائن عندما لا يشير إليه أي شيء آخر، ما لم تكن هناك حاجة إلى الذاكرة". WeakReferenceيستخدم A لتنفيذ الخرائط الضعيفة. يسمى الكائن الذي لا يمكن الوصول إليه بقوة أو بسهولة، ولكن تتم الإشارة إليه بواسطة مرجع ضعيف " قابل للوصول بشكل ضعيف ". يتم جمع الكائنات التي يمكن الوصول إليها بشكل ضعيف في دورة التجميع التالية. يتم استخدام هذا السلوك في الفئةjava.util.WeakHashMap. تسمح الخريطة الضعيفة للمبرمج بوضع أزواج مفتاح/قيمة في الخريطة وعدم القلق بشأن احتلال الكائنات للذاكرة عندما لم يعد من الممكن الوصول إلى المفتاح في أي مكان آخر. تطبيق آخر محتمل للمراجع الضعيفة هو مجموعة السلاسل الداخلية . من الناحية الدلالية، تعني المرجعية الضعيفة "التخلص من هذا الكائن عندما لا يشير إليه أي شيء آخر في عملية جمع القمامة التالية".- يتم استخدام A
PhantomReferenceللإشارة إلى الكائنات التي تم وضع علامة عليها لجمع القمامة وتم الانتهاء منها ، ولكن لم يتم استعادتها بعد. الكائن الذي لا يمكن الوصول إليه بقوة أو ببطء أو بشكل ضعيف، ولكن يتم الرجوع إليه بواسطة مرجع وهمي يسمى "قابل للوصول الوهمي". يسمح هذا بتنظيف أكثر مرونة مما هو ممكن باستخدام آلية الانتهاء وحدها. من الناحية الدلالية، تعني الإشارة الوهمية "لم يعد هذا الكائن مطلوبًا وتم الانتهاء منه استعدادًا لجمعه".
يمتد كل نوع من أنواع المرجع هذه إلى Referenceالفئة، التي توفر get() الطريقة لإرجاع مرجع قوي إلى كائن المرجع (أو nullإذا تم مسح المرجع أو إذا كان نوع المرجع شبحيًا)، والطريقة clear()لمسح المرجع.
كما java.lang.refيحدد أيضًا الفئة ReferenceQueue، والتي يمكن استخدامها في كل من التطبيقات التي تمت مناقشتها أعلاه لتتبع الكائنات التي تم تغيير نوع المرجع بها. عند Referenceإنشاء a، يتم تسجيله اختياريًا في قائمة مرجعية. يستطلع التطبيق قائمة المراجع للحصول على المراجع التي تم تغيير حالة إمكانية الوصول إليها.
java.lang.reflect
الانعكاس هو أحد مكونات واجهة برمجة تطبيقات Java التي تسمح لكود Java بفحص مكونات Java و"الانعكاس" عليها في وقت التشغيل واستخدام الأعضاء المنعكسة. الفئات الموجودة في الحزمة، جنبًا إلى java.lang.reflectجنب مع التطبيقات مثل أدوات تصحيح الأخطاء والمفسرين ومفتشي الكائنات ومتصفحات الفئات والخدمات مثل تسلسل الكائنات و JavaBeans التي تحتاج إلى الوصول إلى الأعضاء العامة لكائن مستهدف (بناءً على فئته وقت التشغيل) أو الأعضاء المعلنة بواسطة فئة معينة. تمت إضافة هذه الحزمة في JDK 1.1.
java.lang.Classjava.lang.Package
تُستخدم خاصية الانعكاس لإنشاء مثيلات للفئات واستدعاء الأساليب باستخدام أسمائها، وهو مفهوم يسمح بالبرمجة الديناميكية. يمكن اكتشاف الفئات والواجهات والأساليب والحقول والمنشئين واستخدامها في وقت التشغيل. يتم دعم خاصية الانعكاس بواسطة البيانات الوصفية التي تمتلكها JVM حول البرنامج.
التقنيات
هناك تقنيات أساسية متضمنة في التأمل:
- الاكتشاف - يتضمن ذلك أخذ كائن أو فئة واكتشاف الأعضاء والفئات العليا والواجهات المنفذة، ثم ربما استخدام العناصر المكتشفة.
- الاستخدام بالاسم - يتضمن البدء بالاسم الرمزي للعنصر واستخدام العنصر المسمى.
اكتشاف
يبدأ الاكتشاف عادةً بكائن واستدعاء Object.getClass()الطريقة للحصول على محتوى الكائن Class. Classيحتوي الكائن على عدة طرق لاكتشاف محتويات الفصل، على سبيل المثال:
getMethods()- إرجاع مجموعة منMethodالكائنات التي تمثل جميع الأساليب العامة للفئة أو الواجهةgetConstructors()- إرجاع مجموعة منConstructorالكائنات التي تمثل جميع المنشئين العموميين للفئةgetFields()- إرجاع مجموعة منFieldالكائنات التي تمثل جميع الحقول العامة للفئة أو الواجهةgetClasses()- إرجاع مجموعة منClassالكائنات التي تمثل جميع الفئات العامة والواجهات التي تعد أعضاء (على سبيل المثال الفئات الداخلية ) للفئة أو الواجهةgetSuperclass()- إرجاعClassالكائن الذي يمثل الفئة العليا للفئة أو الواجهة (nullيتم إرجاعه للواجهات)getInterfaces()- إرجاع مجموعة منClassالكائنات التي تمثل جميع الواجهات التي تم تنفيذها بواسطة الفئة أو الواجهة
استخدم حسب الاسم
يمكن الحصول على الكائن Classإما من خلال الاكتشاف، أو باستخدام حرف الفئة (eg MyClass.class) أو باستخدام اسم الفئة (eg Class.forName("mypackage.MyClass")). مع Classالكائن، يمكن الحصول على العضو Methodأو Constructorأو Fieldالكائنات باستخدام الاسم الرمزي للعضو. على سبيل المثال:
getMethod("methodName", Class...)- إرجاعMethodالكائن الذي يمثل الطريقة العامة باسم "methodName" للفئة أو الواجهة التي تقبل المعلمات المحددة بواسطةClass...المعلمات.getConstructor(Class...)- إرجاعConstructorالكائن الذي يمثل المنشئ العام للفئة التي تقبل المعلمات المحددة بواسطةClass...المعلمات.getField("fieldName")- إرجاعFieldالكائن الذي يمثل الحقل العام باسم "fieldName" للفئة أو الواجهة.
Methodيمكن استخدام الكائنات Constructorو و Fieldللوصول بشكل ديناميكي إلى العضو الممثل للفئة. على سبيل المثال:
Field.get(Object)- إرجاع قيمةObjectتحتوي على قيمة الحقل من مثيل الكائن الذي تم تمريره إلىget(). (إذا كانFieldالكائن يمثل حقلًا ثابتًا، فسيتمObjectتجاهل المعلمة وقد تكونnull.)Method.invoke(Object, Object...)– يعيدObjectيحتوي على نتيجة استدعاء الطريقة لمثيلObjectالمعلمة الأولى التي تم تمريرها إلىinvoke(). يتم تمرير المعلمات المتبقيةObject...إلى الطريقة. (إذا كانMethodالكائن يمثل طريقة ثابتة ، فسيتم تجاهل المعلمة الأولىObjectوقد تكونnull.)Constructor.newInstance(Object...)– يعيد المثيل الجديدObjectمن خلال استدعاء المنشئ.Object...يتم تمرير المعلمات إلى المنشئ. (لاحظ أنه يمكن أيضًا استدعاء المنشئ الخالي من المعلمات للفئة عن طريق استدعاءnewInstance().)
المصفوفات والوكلاء
java.lang.reflectتوفر الحزمة أيضًا فئة Arrayتحتوي على طرق ثابتة لإنشاء كائنات المصفوفة ومعالجتها، ومنذ J2SE 1.3، Proxyفئة تدعم الإنشاء الديناميكي لفئات الوكيل التي تنفذ واجهات محددة.
يتم توفير تنفيذ فئة ما Proxyبواسطة كائن مقدم ينفذ InvocationHandlerالواجهة. يتم استدعاء طريقة InvocationHandler's invoke(Object, Method, Object[])لكل طريقة يتم استدعاؤها على كائن الوكيل - المعلمة الأولى هي كائن الوكيل، والمعلمة الثانية هي Methodالكائن الذي يمثل الطريقة من الواجهة التي ينفذها الوكيل، والمعلمة الثالثة هي مجموعة المعلمات التي تم تمريرها إلى طريقة الواجهة. invoke()تعيد الطريقة Objectنتيجة تحتوي على النتيجة التي تم إرجاعها إلى الكود الذي استدعى طريقة واجهة الوكيل.
جافا.يو
تحتوي الحزمة java.ioعلى فئات تدعم الإدخال والإخراج . الفئات الموجودة في الحزمة موجهة بشكل أساسي نحو التدفق ؛ ومع ذلك، يتم توفير فئة لملفات الوصول العشوائي أيضًا. الفئات المركزية في الحزمة هي و ، وهي فئات أساسية مجردة للقراءة من تدفقات البايت والكتابة إليها ، على التوالي. الفئات ذات الصلة و هي فئات أساسية مجردة للقراءة من تدفقات الأحرف والكتابة إليها ، على التوالي. تحتوي الحزمة أيضًا على عدد قليل من الفئات المتنوعة لدعم التفاعلات مع نظام الملفات المضيف .
InputStreamOutputStreamReaderWriter
الجداول
تتبع فئات التدفق نمط الديكور من خلال توسيع الفئة الفرعية الأساسية لإضافة ميزات إلى فئات التدفق. عادةً ما يتم تسمية الفئات الفرعية لفئات التدفق الأساسية وفقًا لأحد السمات التالية:
- المصدر/الوجهة لتدفق البيانات
- نوع البيانات المكتوبة إلى/المقروءة من الدفق
- معالجة إضافية أو تصفية يتم إجراؤها على تدفق البيانات
يتم تسمية الفئات الفرعية للتيار باستخدام نمط XxxStreamType التسمية حيث Xxxهو الاسم الذي يصف الميزة StreamTypeوهو واحد من InputStreamأو OutputStreamأو Readerأو أو Writer.
يوضح الجدول التالي المصادر/الوجهات التي تدعمها الحزمة بشكل مباشر java.io:
| المصدر/الوجهة | اسم | أنواع التدفق | داخل/خارج | الفصول الدراسية |
|---|---|---|---|---|
byte المصفوفة ( byte[]) |
ByteArray |
byte |
داخل، خارج | ByteArrayInputStream,ByteArrayOutputStream
|
charالمصفوفة ( char[]) |
CharArray |
char |
داخل، خارج | CharArrayReader,CharArrayWriter
|
| ملف | File |
byte,char |
داخل، خارج | FileInputStream, FileOutputStream, FileReader,FileWriter
|
خيط ( StringBuffer) |
String |
char |
داخل، خارج | StringReader,StringWriter
|
خيط ( Thread) |
Piped |
byte,char |
داخل، خارج | PipedInputStream, PipedOutputStream, PipedReader,PipedWriter
|
توفر حزم المكتبات القياسية الأخرى تنفيذات تدفق لوجهات أخرى، مثل تلك InputStreamالتي تم إرجاعها بواسطة java.net.Socket.getInputStream()الطريقة أو فئة Java EE javax.servlet.ServletOutputStream.
يتم إنجاز معالجة نوع البيانات أو معالجتها أو ترشيح بيانات التدفق من خلال مرشحات التدفق . تقبل جميع فئات المرشح كائن تدفق آخر متوافق كمعلمة للمنشئ وتزين التدفق المغلق بميزات إضافية. يتم إنشاء المرشحات من خلال توسيع إحدى فئات المرشح الأساسية FilterInputStreamأو FilterOutputStreamأو FilterReaderأو أو FilterWriter.
إن فئات Readerand Writerهي في الحقيقة مجرد تدفقات بايتات مع معالجة إضافية يتم إجراؤها على تدفق البيانات لتحويل البايتات إلى أحرف. وهي تستخدم ترميز الأحرف الافتراضي للمنصة، والذي يمثله J2SE 5.0 الذي تم Charsetإرجاعه بواسطة java.nio.charset.Charset.defaultCharset()الطريقة الثابتة. InputStreamReaderتحول الفئة an InputStreamإلى a Readerوتحول OutputStreamWriterالفئة an OutputStreamإلى a Writer. تحتوي كلتا الفئتين على منشئين يدعمان تحديد ترميز الأحرف المراد استخدامه. إذا لم يتم تحديد أي ترميز، يستخدم البرنامج الترميز الافتراضي للمنصة.
يوضح الجدول التالي العمليات والمرشحات الأخرى التي java.ioتدعمها الحزمة بشكل مباشر. وتمتد كل هذه الفئات إلى الفئة المقابلة Filter.
| عملية | اسم | أنواع التدفق | داخل/خارج | الفصول الدراسية |
|---|---|---|---|---|
| التخزين المؤقت | Buffered |
byte,char |
داخل، خارج | BufferedInputStream, BufferedOutputStream, BufferedReader,BufferedWriter
|
| "ادفع للخلف" القيمة الأخيرة المقروءة | Pushback |
byte,char |
في | PushbackInputStream,PushbackReader
|
| قراءة/كتابة الأنواع البدائية | Data |
byte |
داخل، خارج | DataInputStream,DataOutputStream
|
| تسلسل الكائنات (قراءة/كتابة الكائنات) | Object |
بايت | داخل، خارج | ObjectInputStream,ObjectOutputStream
|
الوصول العشوائي
RandomAccessFileتدعم الفئة القراءة والكتابة العشوائية للملفات. تستخدم الفئة مؤشر ملف يمثل إزاحة بايت داخل الملف لعملية القراءة أو الكتابة التالية. يتم تحريك مؤشر الملف ضمناً عن طريق القراءة أو الكتابة وصراحةً عن طريق استدعاء الطرق seek(long)أو skipBytes(int). يتم إرجاع الموضع الحالي لمؤشر الملف بواسطة الطريقة getFilePointer().
نظام الملفات
Fileتمثل الفئة مسار ملف أو دليل في نظام الملفات . تدعم الكائنات إنشاء الملفات والدلائل وحذفها وإعادة تسميتها ومعالجة سمات الملف مثل القراءة فقط وطابع الوقت للتعديل الأخير . يمكن استخدام الكائنات التي تمثل الدلائل للحصول على قائمة بجميع الملفات والدلائل المضمنة.
FileFile
الفئة FileDescriptorعبارة عن واصف ملف يمثل مصدرًا أو مصبًا (وجهة) للبايتات. عادةً ما يكون هذا ملفًا، ولكن يمكن أن يكون أيضًا وحدة تحكم أو مقبس شبكة . FileDescriptorتُستخدم الكائنات لإنشاء Fileتدفقات. يتم الحصول عليها من Fileالتدفقات والمقابس java.netومقابس البيانات.
جافا نيو
في J2SE 1.4، تمت إضافة الحزمة java.nio(NIO أو I/O غير الحظر) لدعم I/O المرسومة بالذاكرة ، مما يسهل عمليات I/O الأقرب إلى الأجهزة الأساسية مع أداء أفضل بشكل كبير في بعض الأحيان. java.nioتوفر الحزمة الدعم لعدد من أنواع المخازن المؤقتة. توفر الحزمة الفرعية الدعم لترميزات أحرفjava.nio.charset مختلفة لبيانات الأحرف. توفر الحزمة الفرعية الدعم للقنوات، التي تمثل اتصالات بالكيانات القادرة على إجراء عمليات I/O، مثل الملفات والمنافذ. توفر الحزمة أيضًا الدعم للقفل الدقيق للملفات.
java.nio.channelsjava.nio.channels
جافا.رياضيات
java.mathتدعم الحزمة العمليات الحسابية متعددة الدقة (بما في ذلك العمليات الحسابية المعيارية) وتوفر مولدات أعداد أولية متعددة الدقة تستخدم لتوليد المفاتيح التشفيرية. الفئات الرئيسية للحزمة هي:
BigDecimal- يوفر أرقامًا عشرية موقعة ذات دقة عشوائية.BigDecimalيمنح المستخدم التحكم في سلوك التقريب من خلالRoundingMode.BigInteger- توفر أعدادًا صحيحة ذات دقة عشوائية.BigIntegerلا تتجاوز العمليات على هذه الأعداد الحد الأقصى أو تفقد دقتها. بالإضافة إلى العمليات الحسابية القياسية، توفر هذه الأعداد العمليات الحسابية المعيارية ، وحسابات GCD ، واختبار الأعداد الأولية ، وتوليد الأعداد الأولية ، والتلاعب بالبتات ، وغيرها من العمليات المتنوعة.MathContext- تغليف إعدادات السياق التي تصف قواعد معينة للمشغلات الرقمية.RoundingMode- تعداد يوفر ثمانية سلوكيات تقريب.
جافا.نت
توفر الحزمة java.netإجراءات إدخال وإخراج خاصة للشبكات، مما يسمح بطلبات HTTP ، بالإضافة إلى المعاملات الشائعة الأخرى.
جافا.نص
تطبق الحزمة java.textروتينات التحليل للسلاسل وتدعم العديد من اللغات القابلة للقراءة بواسطة البشر والتحليل المحدد للموقع.
جافا.util
تُعَد هياكل البيانات التي تجمع الكائنات محور التركيز في java.utilالحزمة. وتتضمن الحزمة واجهة برمجة التطبيقات للمجموعات ، وهي عبارة عن تسلسل هرمي منظم لهياكل البيانات يتأثر بشكل كبير باعتبارات أنماط التصميم .
حزم لأغراض خاصة
جافا.أبلت
تم إنشاء الحزمة لدعم إنشاء تطبيقات Javajava.applet ، وتسمح بتنزيل التطبيقات عبر الشبكة وتشغيلها داخل بيئة اختبار محمية. يتم فرض قيود الأمان بسهولة على بيئة الاختبار. على سبيل المثال، قد يطبق المطور توقيعًا رقميًا على تطبيق، وبالتالي تصنيفه على أنه آمن. يتيح القيام بذلك للمستخدم منح التطبيق إذنًا بإجراء عمليات مقيدة (مثل الوصول إلى القرص الصلب المحلي)، ويزيل بعض أو كل قيود بيئة الاختبار. يتم إصدار الشهادات الرقمية من قبل سلطات الشهادات .
جافا.بينز
تتضمن java.beansالحزمة فئات مختلفة لتطوير ومعالجة العناصر، وهي مكونات قابلة لإعادة الاستخدام يتم تعريفها بواسطة بنية JavaBeans . توفر البنية آليات لمعالجة خصائص المكونات وإطلاق الأحداث عند تغير هذه الخصائص.
إن واجهات برمجة التطبيقات في java.beansمخصصة للاستخدام بواسطة أداة تحرير الفول، حيث يمكن دمج الفول وتخصيصه والتلاعب به. أحد أنواع محرر الفول هو مصمم واجهة المستخدم الرسومية في بيئة تطوير متكاملة .
جافا.أوت
توفر مجموعة java.awtأدوات النافذة المجردة، أو Abstract Window Toolkit، إمكانية الوصول إلى مجموعة أساسية من أدوات واجهة المستخدم الرسومية استنادًا إلى مجموعة أدوات واجهة المستخدم الرسومية للمنصة الأصلية الأساسية، ونواة نظام فرعي لأحداث واجهة المستخدم الرسومية، والواجهة بين نظام النوافذ الأصلي وتطبيق Java. كما توفر العديد من مديري التخطيط الأساسيين ، وحزمة نقل البيانات للاستخدام مع الحافظة والسحب والإفلات ، والواجهة لأجهزة الإدخال مثل الفئران ولوحات المفاتيح ، بالإضافة إلى الوصول إلى علبة النظام على الأنظمة الداعمة. تحتوي هذه الحزمة، إلى جانب javax.swingأكبر عدد من العناصر (7 في المجموع) في JDK 6.
جافا.rmi
java.rmiتوفر الحزمة استدعاء طريقة Java عن بعد لدعم استدعاءات الإجراءات عن بعد بين تطبيقين Java يعملان في JVMs مختلفة .
جافا.الأمان
يتضمن java.securityالحزمة دعمًا للأمان، بما في ذلك خوارزمية تلخيص الرسالة.
جافا.SQL
يتم تجميع تنفيذ واجهة برمجة التطبيقات JDBC (المستخدمة للوصول إلى قواعد بيانات SQL ) في الحزمة.
java.sql
javax.rmi
توفر الحزمة javax.rmiالدعم للاتصال عن بعد بين التطبيقات، باستخدام بروتوكول RMI عبر IIOP. يجمع هذا البروتوكول بين ميزات RMI وCORBA.
تقنيات Java SE الأساسية - CORBA / RMI-IIOP
جافاكس سوينغ
Swing عبارة عن مجموعة من الروتينات التي تعتمد java.awtعلى توفير مجموعة أدوات واجهة مستخدم مستقلة عن النظام الأساسي . javax.swingتستخدم روتينات الرسم ثنائية الأبعاد لعرض مكونات واجهة المستخدم بدلاً من الاعتماد على دعم واجهة المستخدم الرسومية لنظام التشغيل الأصلي الأساسي .
تحتوي هذه الحزمة على أكبر عدد من الفئات (133 في المجموع) في JDK 6. java.awtتحتوي هذه الحزمة أيضًا على أكبر عدد من التعدادات (7 في المجموع) في JDK 6. وهي تدعم المظاهر والمظهر القابل للتوصيل (PLAFs) بحيث يمكن للأدوات في واجهة المستخدم الرسومية تقليد تلك الموجودة في النظام الأصلي الأساسي. تتخلل أنماط التصميم النظام، وخاصة تعديل نمط النموذج-العرض-وحدة التحكم ، والذي يخفف من الارتباط بين الوظيفة والمظهر. أحد التناقضات هو أنه (اعتبارًا من J2SE 1.3) يتم رسم الخطوط بواسطة النظام الأصلي الأساسي، وليس بواسطة Java، مما يحد من قابلية نقل النص. توجد حلول بديلة، مثل استخدام خطوط الخريطة النقطية. بشكل عام، يتم استخدام "التخطيطات" والاحتفاظ بالعناصر داخل واجهة مستخدم رسومية متسقة جماليًا عبر الأنظمة الأساسية.
javax.swing.text.html.محلل
توفر الحزمة javax.swing.text.html.parserمحلل HTML المتسامح مع الأخطاء والذي يتم استخدامه لكتابة متصفحات الويب المختلفة وروبوتات الويب.
javax.xml.bind.التعليق التوضيحي
تحتوي الحزمة javax.xml.bind.annotationعلى أكبر عدد من أنواع التعليقات التوضيحية (30 في المجموع) في JDK 6. وهي تحدد التعليقات التوضيحية لتخصيص عناصر برنامج Java لتعيين مخطط XML.
حزم OMG
org.omg.كوربا
توفر الحزمة org.omg.CORBAالدعم للاتصالات عن بعد بين التطبيقات باستخدام بروتوكول Inter-ORB العام وتدعم ميزات أخرى لهندسة وسيط طلبات الكائنات المشتركة . مثل RMI و RMI-IIOP ، هذه الحزمة مخصصة لاستدعاء طرق بعيدة للكائنات على آلات افتراضية أخرى (عادةً عبر الشبكة).
تحتوي هذه الحزمة على أكبر عدد من Exceptionالفئات (45 في المجموع) في JDK 6. من بين جميع إمكانيات الاتصال، يعد CORBA قابلاً للنقل بين العديد من اللغات؛ ومع ذلك، يأتي مع هذا المزيد من التعقيد.
تم إيقاف استخدام هذه الحزم في Java 9 وإزالتها من Java 11. [7]
org.omg.PortableInterceptor
تحتوي الحزمة org.omg.PortableInterceptorعلى أكبر عدد من الواجهات (39 في المجموع) في JDK 6. وهي توفر آلية لتسجيل خطافات ORB التي من خلالها تعترض خدمات ORB التدفق الطبيعي لتنفيذ ORB.
حماية
تم الإبلاغ عن العديد من الثغرات الأمنية الحرجة. [8] [9] تعلن تنبيهات الأمان من Oracle عن تصحيحات أمنية حرجة متعلقة بـ Java SE. [10]
مراجع
- ^ "نظرة عامة على Java SE". Oracle Corporation . تم الاسترجاع في 26 فبراير 2017 .
- ^ "محتويات إصدار Java SE 6". Oracle Corporation و/أو الشركات التابعة لها . تم الاسترجاع في 1 يناير 2013 .
- ^ الانتقال إلى OpenJDK باعتباره التنفيذ المرجعي الرسمي لـ Java SE 7
- ^ تنفيذات مرجعية لـ Java Platform، الإصدار القياسي 7
- ^ "تطبيقات مرجعية لـJava Platform, Standard Edition 8". مؤرشف من الأصل في 21 نوفمبر 2015.
- ^ "نظرة عامة على طلبات مواصفات Java". Oracle Corporation و/أو الشركات التابعة لها . تم الاسترجاع في 1 يناير 2013 .
- ^ "JEP 320: إزالة وحدات Java EE وCORBA". Openjdk.java.net. 2019-05-23 . تم الاسترجاع في 2022-03-20 .
- ^ ثغرة خطيرة في أحدث إصدار من Java The H Security، 10 يناير 2013
- ^ دارلين ستورم (25 سبتمبر 2012). "ثغرة خطيرة أخرى في جافا تعرض مليار مستخدم للخطر". مدونة أمن الكمبيوتر العالمية . مؤرشف من الأصل في 13 يناير 2013. تم الاسترجاع في 11 يناير 2013 .
- ^ "تحديثات التصحيحات الحرجة وتنبيهات الأمان والنشرات الإخبارية للجهات الخارجية". Oracle.
روابط خارجية
- Java SE من Oracle Technology Network
- Java SE 19 API Javadocs
- توثيق واجهة برمجة تطبيقات Java SE
- JSR 270 (جافا SE 6)
- 1.8
- 1.7
- 1.6
