1. جافا دعم المدمج للسلاسل ؛
يعني ما يسمى الدعم المدمج أنه لا يتم تنفيذ أنواع الأوتار باستخدام مؤشرات char مثل C ، وترميز سلسلة Java يتوافق مع معايير ترميز Unicode ، مما يعني أيضًا أنه لا يلزم تنفيذها باستخدام فئات السلسلة و WSTRING مثل C ++ إلى كن متوافقًا مع لغة C و Unicode Standard. يدعم Java أنواع السلسلة من خلال فئة السلسلة داخليًا.
هذا يعني: يمكننا استدعاء نفس الطريقة مباشرة مثل كائن السلسلة:
// يمكنك استدعاء جميع طرق كائن السلسلة مباشرة على "ABC"
int length = "ABC" .Length () ؛
إلى جانب
سلسلة ABC = سلسلة جديدة ("ABC") ؛
طول int = abc.length () ؛
2. قيمة السلسلة في جافا ثابتة (ثابتة)
ما نعنيه هنا بعد إنشاء نوع السلسلة ، لا يمكن تغيير القيمة من أساليب السلسلة ، ويمكن ملاحظة أنه لا توجد واجهة طريقة يمكنها تغيير القيمة ؛ String ("DEF") "ABC" و "DEF" في التجمع الثابت المخزن في الجهاز الظاهري Java.
يتم تخزين "ABC" في الكود التالي في المجموعة الثابتة ، وبالتالي فإن العناوين التي تشر إليها المتغيرات A و AB هي نفسها "ABC" في المجموعة الثابتة.
نسخة الكود كما يلي:
فئة عامة stringtest {
الفراغ الثابت العام الرئيسي (سلسلة [] args) {
سلسلة A = "ABC" ؛
سلسلة ab = "abc" ؛
سلسلة ABC = سلسلة جديدة ("ABC") ؛
system.out.println (ab == a) ؛
system.out.println (a == abc) ؛
}
}
/*إخراج البرنامج:
* حقيقي
* خطأ شنيع
* */
فكيف يتم تنفيذ السلاسل المتغيرة والمتغيرة ديناميكيا؟ توفر Java فئات StringBuffer و stringbuilder لتحقيق هذا المتطلبات ؛ هل يتم تنفيذ StringBuilder و StringBuffer؟ يخزن السلاسل من خلال صفيف شخصية. فيما يلي مقتطف من الكود المصدر الذي يأتي مع JDK.
3. ترميز القضايا في الأوتار.
سؤالان يجب فهمهما هنا: كيف تتعامل مع ترميز السلسلة في ملفات المصدر؟ ما هو الترميز الذي تستخدمه الأوتار عند التجميع في ملفات الفئة أو تشغيل التعليمات البرمجية في جهاز Java Virtual Machine؟
المشكلة الأولى هي أن الترميز في الرمز المصدر يعتمد على IDE أو محرر النصوص. على سبيل المثال ، يتم تحرير الكود التالي بتنسيق ترميز GBK ، ثم افتحه باستخدام فك تشفير UTF-8 و GBK
// تنسيق ترميز GBK ، مفتوح بتنسيق GBK
// تنسيق ترميز GBK ، مفتوحًا في تنسيق UTF-8 ، إذا كان تنسيق الترميز الافتراضي للنظام هو GBK في هذا الوقت ، فأنت بحاجة إلى إضافة قيمة خيار "-ending GBK" إلى Javac أثناء التجميع ؛
فكيف تتعامل مع هذا النوع من مشكلة ترميز التعليمات البرمجية المصدر؟ يتم تحديد الإجابة في خيار المعلمة -ترميز المترجم Javac. إن الترميز الافتراضي لنظام التشغيل Windows هو GBK عمومًا (يمكن الحصول على هذه القيمة من خلال System.GetProperty ("file.encoding") ؛ استخدم javac -encoding utf- 8 ترجمة.
ما هو ترميز السلاسل عند التجميع في ملف فئة أو رمز عند تشغيل جهاز Java الظاهري؟ كيف يتم ترميز رمز المصدر؟ هذا يعني أنه طالما أن برنامج التحويل البرمجي Javac يفهم بشكل صحيح ترميز السلاسل في ملف التعليمات البرمجية المصدر ، فإن الأوتار في ملف Runtime أو Class Bytecode مستقلة عن تنسيق الترميز في الكود المصدري. هنا يمكننا أن نفهم نوعًا أساسيًا أو فئة الأحرف في Java. 1 'طول الشخصيات أو الشخصيات الصينية في جافا هو 16 بت.
بالإضافة إلى ذلك ، في نوع السلسلة ، نستخدم أيضًا ترميز الأحرف الثابت المحددة لتحويل التمثيل الثنائي والسلسلة الأساسية ، مما يعني أنه يمكننا قراءة ترميز GBK بشكل صحيح أو ترميز UTF-8 أو ملفات نصية مشفرة أو غيرها في السلسلة الصحيحة في الذاكرة.
على سبيل المثال ، هناك الطرق التالية في فئة السلسلة:
السلسلة العامة (بايت [] بايت ، charset charset) ؛
بايت عام [] GetBytes (Charset Charset) ؛
هناك طريقة أخرى عضو يجب الانتباه إلى:
بايت العام [] getBytes () ؛