JavaRush /جاوا بلاگ /Random-SD /جاوا ڊولپر لاءِ انٽرويوز کان سوالن ۽ جوابن جو تجزيو. حصو ...

جاوا ڊولپر لاءِ انٽرويوز کان سوالن ۽ جوابن جو تجزيو. حصو 16

گروپ ۾ شايع ٿيل
هيلو دوست! ڊولپر ٿيڻ ۾ ڪيترو وقت لڳندو آهي؟ مون ڪيترن ئي مختلف ماڻهن کان پڇيو ۽ ڪيترائي مختلف جواب ٻڌا. ڪن ماڻهن لاءِ ته هڪ مهينو به ڪافي ٿي سگهي ٿو، پر ٻين لاءِ هڪ سال به ڪافي نه هوندو. پر مان پڪ سان ڄاڻان ٿو ته جاوا ڊولپر بڻجڻ هڪ ٿلهو ۽ ڊگهو رستو آهي، قطع نظر توهان جي شروعاتي صلاحيتن جي. آخرڪار، اها ايتري صلاحيت نه آهي جيڪا ضد ۽ محنت جيتري اهم آهي. جاوا ڊولپر لاءِ انٽرويوز کان سوالن ۽ جوابن جو تجزيو.  حصو 16 - 1تنهن ڪري، ا today اسان جاوا ڊولپر لاءِ سڀ کان وڌيڪ مشهور انٽرويو سوالن جو مقصد سان تجزيو ڪرڻ جاري رکون ٿا. انهن جو مطالعو توهان کي آهستي آهستي پنهنجي پياري مقصد جي ويجهو آڻيندو. اچو ته شروع ڪريون!

17. اختياري جي ڪامياب ۽ ناڪامي استعمال جا مثال ڏيو

فرض ڪريو اسان وٽ قدرن جو هڪ خاص سلسلو آهي جنهن ذريعي اسان وهڪري مان گذرون ٿا، ۽ نتيجي ۾ اسان کي ڪجهه Optional ملن ٿا:
Optional<String> stringOptional = Stream.of("a", "ab", "abc", "abcd")
   .filter(str -> str.length() >= 3)
   .findAny();
اسان، جيئن توقع ڪئي وئي، قيمت حاصل ڪرڻ جي ضرورت آهي هن اختياري مان . صرف استعمال ڪندي get() هڪ خراب طريقو آهي:
String result = stringOptional.get();
پر اهو طريقو اختياري مان قيمت حاصل ڪرڻ ۽ اسان کي واپس ڪرڻ گهرجي؟ اهو، يقينا، سچ آهي، پر جيڪڏهن اهو مطلب آهي. خير، جيڪڏهن وهڪري ۾ قدر مختلف هئا، ۽ آخر ۾ اسان هڪ خالي اختياري حاصل ڪيو، جڏهن اسان get() طريقو استعمال ڪندي ان مان قيمت وٺڻ جي ڪوشش ڪندا ، هيٺ ڏنل اڇلائي ويندي: جاوا ڊولپر لاءِ انٽرويوز کان سوالن ۽ جوابن جو تجزيو.  حصو 16 - 2جيڪو سٺو ناهي. انهي حالت ۾، اهو بهتر آهي ته هيٺين تعميرات کي استعمال ڪرڻ لاء:
  1. String result = null;
    if (stringOptional.isPresent()) {
     stringOptional.get();
    }

    انهي حالت ۾، اسان اهو ڏسڻ جي جانچ ڪري رهيا آهيون ته عنصر اختياري ۾ آهي . جيڪڏهن نه، نتيجو وارو اسٽرنگ ان جي پراڻي قدر آهي.

  2. String result = stringOptional.orElse("default value");

    ھن حالت ۾، اسان ڪجھ ڊفالٽ قدر بيان ڪريون ٿا، جيڪو ھڪڙي خالي اختياري جي صورت ۾ نتيجي واري اسٽرنگ کي ڏنو ويندو .

  3. String result = stringOptional.orElseThrow(() -> new CustomException());

    هن حالت ۾، اسان پاڻ کي هڪ استثنا اڇليندا آهيون جڏهن اختياري خالي آهي .

اهو هڪ ايپليڪيشن ۾ آسان ٿي سگهي ٿو جڏهن، مثال طور، Spring JPA طريقو استعمال ڪيو ويندو آهي - findById() ، جيڪو اختياري قدر واپس ڪري ٿو. انهي صورت ۾، هن طريقي سان اسان قيمت وٺڻ جي ڪوشش ڪندا آهيون، ۽ جيڪڏهن اهو اتي نه آهي، اسان ڪجهه رن ٽائيم استثنا اڇليندا آهيون، جيڪو ڪنٽرولر سطح تي ExceptionHandler استعمال ڪندي پروسيس ڪيو ويندو آهي ۽ اسٽيٽس 404 - NOT FOUND سان HTTP جواب ۾ تبديل ڪيو ويندو آهي . جاوا ڊولپر لاءِ انٽرويوز کان سوالن ۽ جوابن جو تجزيو.  حصو 16 - 3

18. ڇا اهو ممڪن آهي ته هڪ مکيه طريقي کي حتمي قرار ڏنو وڃي؟

ها، يقينا، ڪجھ به اسان کي مکيه () طريقي کي حتمي قرار ڏيڻ کان روڪي ٿو . مرتب ڪندڙ غلطيون پيدا نه ڪندو. پر اها ڳالهه ياد رکڻ جي لائق آهي ته ڪنهن به طريقي کي حتمي قرار ڏيڻ کان پوءِ اهو آخري طريقو بڻجي ويندو- اوور رائڊ نه ڪيو ويندو. حالانڪه، مکيه کي ٻيهر ڪير ڏيندو ؟؟؟ جاوا ڊولپر لاءِ انٽرويوز کان سوالن ۽ جوابن جو تجزيو.  حصو 16 - 4

19. ڇا اهو ساڳيو پيڪيج/ڪلاس ٻه ڀيرا درآمد ڪرڻ ممڪن آهي؟ ان جا نتيجا ڇا ٿي سگهن ٿا؟

ها توهان ڪري سگهو ٿا. نتيجا؟ اسان وٽ ڪجهه غير ضروري وارداتون هونديون جيڪي Intelijj IDEA گرين طور ڏيکاريندو، يعني. غير استعمال ٿيل. جاوا ڊولپر لاءِ انٽرويوز کان سوالن ۽ جوابن جو تجزيو.  حصو 16 - 5جاوا ڊولپر لاءِ انٽرويوز کان سوالن ۽ جوابن جو تجزيو.  حصو 16 - 6

20. ڪاسٽنگ ڇا آهي؟ جڏهن اسان حاصل ڪري سگهون ٿا هڪ ClassCastException؟

ڪاسٽنگ، يا ٽائيپ ڪاسٽنگ ، هڪ ڊيٽا جي قسم کي ٻئي ڊيٽا جي قسم ۾ تبديل ڪرڻ جو عمل آهي: دستي طور تي (انپليڪٽ ڪاسٽنگ) يا خود بخود (واضح قسم جي ڪاسٽنگ). جاوا ڊولپر لاءِ انٽرويوز کان سوالن ۽ جوابن جو تجزيو.  حصو 16 - 7خودڪار تبادلي کي مرتب ڪندڙ طرفان ڪيو ويندو آهي، ۽ دستي تبديلي ڊولپر طرفان ڪيو ويندو آهي. primitives ۽ طبقن لاء قسم ڪاسٽنگ ڪجهه مختلف آهي، تنهنڪري اسان انهن تي الڳ الڳ غور ڪنداسين. Primitive type of Primitive type of automatic casting جو هڪ مثال :
int value = 17;
double convertedValue = value;
جيئن توهان ڏسي سگهو ٿا، هتي = نشاني کان سواءِ ڪنهن به اضافي جي ضرورت ناهي. ابتدائي قسمن جي دستي ڪاسٽنگ جا مثال :
double value = 17.89;
int convertedValue = (int)value;
انهي صورت ۾، اسان هڪ دستي ڪاسٽ جو مشاهدو ڪري سگهون ٿا، جيڪو (int) استعمال ڪندي لاڳو ڪيو ويو آهي ، جنهن سان ڪاما کان پوءِ وارو حصو رد ڪيو ويندو ۽ تبديل ٿيل ويلو جي قيمت - 17 هوندي. هن آرٽيڪل ۾ بنيادي قسمن جي ڪاسٽ ڪرڻ بابت وڌيڪ پڙهو . خير، هاڻي اچو ته شيون ڏانهن وڃو. حوالن جا قسم حوالن جي قسمن لاءِ، پاڻمرادو ڪاسٽ ڪرڻ ممڪن آهي اولاد جي طبقن کان وٺي والدين جي طبقن لاءِ. اهو پڻ سڏيو ويندو آهي پوليمورفيزم . اچو ته اسان وٽ هڪ شعر طبقو آهي جيڪو هڪ ٻلي طبقي مان ورثي ۾ ملي ٿو . انهي صورت ۾، خودڪار تبديلي هن طرح نظر ايندي:
Cat cat = new Lion();
پر هڪ واضح نموني سان ، هر شيء ڪجهه وڌيڪ پيچيدگي آهي، ڇاڪاڻ ته اتي ڪا به ڪارڪردگي نه آهي اضافي کي ختم ڪرڻ لاء، جهڙوڪ پرائمري سان. ۽ صرف فارم جي هڪ واضح تبديلي ڪندي:
Lion lion= (Lion)new Cat();
توھان کي ھڪ نقص ملندو: جاوا ڊولپر لاءِ انٽرويوز کان سوالن ۽ جوابن جو تجزيو.  حصو 16 - 8حقيقت ۾، توھان اھي طريقا شامل ڪري سگھو ٿا شعر جي نسل واري طبقي ۾ جيڪي اصل ۾ Cat ڪلاس ۾ نه ھئا ، ۽ پوء انھن کي سڏڻ جي ڪوشش ڪريو، ڇو ته توھان جي اعتراض جو قسم شعر بڻجي ويندو . خير، ان ۾ ڪو به منطق نه آهي. تنهن ڪري، قسم جي تنگ ٿيڻ صرف ممڪن آهي جڏهن اصل اعتراض قسم شعر جو هو پر بعد ۾ هڪ والدين طبقي ڏانهن وڌايو ويو:
Lion lion = new Lion();
Cat cat = lion;
Lion newLion = (Lion)cat;
انهي سان گڏ، وڌيڪ معتبريت لاء، شين لاء هڪ تنگ ڪاسٽ استعمال ڪرڻ جي سفارش ڪئي وئي آهي instanceOf construct :
if (cat instanceof Lion) {
 newLion = (Lion)new Cat();
}
هن آرٽيڪل ۾ حوالن جي قسم جي ڪاسٽ بابت وڌيڪ پڙهو .

21. ڇو جديد فريم ورڪ بنيادي طور تي صرف اڻ چيڪ ٿيل استثنا استعمال ڪندا آهن؟

منهنجو خيال آهي ته اهو سڀ ڪجهه آهي ڇو ته چڪاس ٿيل استثنا کي هٿي ڏيڻ اڃا به اسپگيٽي ڪوڊ آهي جيڪو هر هنڌ ورجايو ويندو آهي، پر حقيقت ۾ سڀني ڪيسن ۾ گهربل ناهي. جاوا ڊولپر لاءِ انٽرويوز کان سوالن ۽ جوابن جو تجزيو.  حصو 16 - 9اهڙين حالتن ۾، فريم ورڪ اندر پروسيسنگ ڪرڻ آسان آهي، انهي ڪري ته هڪ ڀيرو ٻيهر ڊولپرز جي ڪلهن تي منتقل نه ڪيو وڃي. ها، يقيناً، هڪ هنگامي صورتحال پيدا ٿي سگهي ٿي، پر اهي ساڳيا اڻ چيڪ ٿيل استثنا وڌيڪ آسان طريقي سان سنڀالي سگهجن ٿا، بغير ڪوشش جي پروسيسنگ جي پرواهه ڪرڻ کان سواءِ ۽ انهن کي طريقن سان اڳتي وڌڻ کان سواءِ. اهو ڪافي آهي صرف استثنا کي ڪجهه HTTP جواب ۾ بدلائڻ لاءِ ExceptionHandler .

22. جامد درآمد ڇا آهي؟

جڏهن جامد ڊيٽا (طريقو، متغير) استعمال ڪندي، توهان پاڻ کي اعتراض نه ٺاهي سگهو ٿا، پر ان کي ڪلاس جي نالي سان ڪريو، پر ان صورت ۾ اسان کي ڪلاس جي لنڪ جي ضرورت آهي. ان سان گڏ سڀ ڪجهه سادو آهي: اهو باقاعده درآمد استعمال ڪندي شامل ڪيو ويو آهي. پر ڇا جيڪڏهن اسان ڪلاس جو نالو لکڻ کان سواءِ جامد طريقو استعمال ڪريون، ڄڻ ته اهو موجوده طبقي جو جامد طريقو آهي؟ اهو جامد درآمد سان ممڪن آهي! انهي حالت ۾، اسان کي لازمي طور تي جامد درآمد ۽ انهي طريقي سان هڪ لنڪ لکڻ گهرجي. هن وانگر، مثال طور، رياضي ڪلاس جو هڪ جامد طريقو cosine قدر جي حساب سان:
import static java.lang.Math.cos;
نتيجي طور، اسين ڪلاس جو نالو بيان ڪرڻ کان سواءِ طريقو استعمال ڪري سگھون ٿا:
double result = cos(60);
اسان پڻ صرف هڪ طبقي جي سڀني جامد طريقن کي لوڊ ڪري سگهون ٿا هڪ ڀيرو جامد درآمد استعمال ڪندي:
import static java.lang.Math.*;
جاوا ڊولپر لاءِ انٽرويوز کان سوالن ۽ جوابن جو تجزيو.  حصو 16 - 10

23. hashCode() ۽ equals() طريقن جي وچ ۾ ڪهڙو تعلق آهي؟

Oracle جي مطابق ، قاعدو آهي: جيڪڏهن ٻه شيون برابر آهن (يعني the equals() طريقو صحيح آهي )، انهن وٽ ساڳيو هيش ڪوڊ هجڻ گهرجي. ساڳئي وقت، اهو نه وساريو ته ٻه مختلف شيون ساڳيا هيش ڪوڊ هوندا. سمجھڻ لاءِ ڇو equals() ۽ hashCode() هميشه جوڑوں ۾ ختم ڪيا ويندا آهن، هيٺين صورتن تي غور ڪريو:
  1. ٻنهي طريقن کي ختم ڪيو ويو آهي.

    هن حالت ۾ ، ٻه مختلف شيون ساڳيا اندروني رياستن سان صحيح موٽندا جڏهن برابر () ، جڏهن ته hashCode() ٻئي ساڳيا نمبر موٽندا.

    اهو ظاهر ٿيو ته سڀ ڪجهه ٺيڪ آهي، ڇاڪاڻ ته قاعدي جي پيروي ڪئي پئي وڃي.

  2. ٻئي طريقا ختم نه ڪيا ويا آهن.

    انهي صورت ۾، ٻه مختلف شيون ساڳيا اندروني رياستن سان غلط موٽندا جڏهن equals() ، ڇاڪاڻ ته مقابلو == آپريٽر ذريعي حوالي سان آهي .

    hashCode() طريقو به مختلف قدر واپس ڪندو (سڀ کان وڌيڪ ممڪن آهي) ڇاڪاڻ ته اهو ميموري مقام جي ايڊريس جي بدليل قدر پيدا ڪري ٿو. پر ساڳي شئي لاءِ اها قيمت ساڳي هوندي، جيئن برابر () هن معاملي ۾ صحيح تڏهن ئي موٽندي جڏهن حوالا ساڳي اعتراض ڏانهن اشارو ڪندا.

    اهو ظاهر ٿئي ٿو ته هن معاملي ۾ سڀ ڪجهه ٺيڪ آهي ۽ ضابطو پورو ٿيو.

  3. Overridden equals() ، overridden hashCode() نه .

    انهي صورت ۾، ٻن مختلف شين لاء ساڳئي اندروني رياستن سان، برابر () واپس ايندي true ، ۽ hashCode() واپس ڪندو (گهڻو ڪري) مختلف قدر.

    اهو قاعدي جي خلاف ورزي آهي، تنهنڪري اهو ڪرڻ جي سفارش ناهي.

  4. equals() overrided نه آهي ، hashCode() overrided آهي .

    انهي صورت ۾، ساڳئي اندروني رياستن سان ٻن مختلف شين لاء، برابر () غلط موٽندا ۽ hashCode () ساڳيو قدر واپس آڻيندو.

    ضابطي جي ڀڃڪڙي آهي، تنهنڪري اهو طريقو غلط آهي.

جئين توهان ڏسي سگهو ٿا، قاعدو صرف ان وقت تي عمل ڪري سگهجي ٿو جڏهن equals() ۽ hashCode() ٻئي اوور رائڊ ٿيل آهن يا ٻئي ڪنهن به صورت ۾ اوور رائڊ نه آهن. جاوا ڊولپر لاءِ انٽرويوز کان سوالن ۽ جوابن جو تجزيو.  حصو 16 - 11جي باري ۾ وڌيڪ پڙهو equals() ۽ hashCode() هن مضمون ۾ .

24. BufferedInputStream ۽ BufferedOutputStream ڪلاس ڪڏهن استعمال ٿيندا آهن؟

انپٽ اسٽريم استعمال ڪيو ويندو آهي ڊيٽا بائيٽ بائيٽ پڙهڻ لاءِ ڪجهه وسيلن مان، ۽ آئوٽ اسٽريم استعمال ڪيو ويندو آهي ڊيٽا بائيٽ بائيٽ لکڻ لاءِ. پر بائيٽ بائيٽ آپريشن تمام مشڪل ٿي سگھي ٿو ۽ اضافي پروسيسنگ جي ضرورت آھي (عام طور تي لکڻين کي پڙھڻ / لکڻ لاءِ). دراصل، اهڙي بائيٽ رڪارڊ کي آسان ڪرڻ لاءِ، BufferedOutputStream متعارف ڪرايو ويو ، ۽ BufferedInputStream پڙهڻ لاءِ متعارف ڪرايو ويو . اهي ڪلاس بفرن کان وڌيڪ ڪجھ به نه آهن جيڪي ڊيٽا گڏ ڪن ٿا، توهان کي ڊيٽا سان ڪم ڪرڻ جي اجازت ڏئي ٿي بائيٽ ذريعي نه، پر پوري ڊيٽا پيڪٽس (اريز) ذريعي. جڏهن ٺاهي وئي، BufferedInputStream ان جي تعمير ڪندڙ ۾ InputStream قسم جو هڪ مثال وٺي ٿو ، جنهن مان ڊيٽا پڙهي ويندي آهي:
BufferedInputStream bufferedInputStream = new BufferedInputStream(System.in);
byte[] arr = new byte[100];
bufferedInputStream.read(arr);
System.in هڪ InputStream اعتراض آهي جيڪو ڪنسول مان ڊيٽا پڙهي ٿو. اھو آھي، ھن BufferedInputStream اعتراض کي استعمال ڪندي ، اسان انپٽ اسٽريم مان ڊيٽا پڙھي سگھون ٿا ان کي پاس ڪيل صف ۾ لکڻ سان. اهو ان پٽ اسٽريم ڪلاس جي هڪ قسم جي لپيٽ مان نڪرندو آهي . هن مثال مان arr array اهو آهي جيڪو ڊيٽا حاصل ڪري ٿو BufferedInputStream . اهو، موڙ ۾، انپٽ اسٽريم مان ڊيٽا کي هڪ ٻي صف سان پڙهي ٿو، جيڪو ڊفالٽ طور تي 2048 بائيٽ جي سائيز آهي. ساڳيو ئي صحيح آهي BufferedOutputStream لاءِ : OutputStream جو هڪ مثال لازمي طور تي تعمير ڪندڙ ڏانهن منتقل ڪيو وڃي ٿو ، جنهن ۾ اسين سڄي صفن ۾ ڊيٽا لکنداسين:
byte[] arr = "Hello world!!!".getBytes();
BufferedOutputStream bufferedInputStream = new BufferedOutputStream(System.out);
bufferedInputStream.write(arr);
bufferedInputStream.flush();
System.out هڪ OutputStream اعتراض آهي جيڪو ڪنسول ڏانهن ڊيٽا لکي ٿو. flush() طريقو ڊيٽا موڪليندو آهي BufferedOutputStream مان OutputStream ڏانهن ، BufferedOutputStream کي پروسيس ۾ فلش ڪندي . هن طريقي جي بغير، ڪجھ به رڪارڊ نه ڪيو ويندو. ۽ پوئين مثال سان ملندڙ جلندڙ: arr اهو صف آهي جنهن مان ڊيٽا لکيو ويو آهي BufferedOutputStream . اتان کان اهي لکيا ويا آهن OutputStream ڏانهن هڪ مختلف صف ۾، جيڪو ڊفالٽ طور تي 512 بائيٽ جي سائيز آهي. مضمون ۾ انهن ٻن طبقن بابت وڌيڪ پڙهو .

25. java.util.Collection ۽ java.util.Collections طبقن ۾ ڇا فرق آهي؟

مجموعو هڪ انٽرفيس آهي جيڪو گڏ ڪرڻ واري درجه بندي جو سر آهي. اهو ڪلاس متعارف ڪرايو آهي جيڪي توهان کي اجازت ڏين ٿا، ٺاهڻ، شامل ڪرڻ، ۽ تبديل ڪرڻ جي سموري گروپن جي شين کي. ھن لاءِ مهيا ڪيل ڪيترائي طريقا آھن، جھڙوڪ add() , remove() , contains() ۽ ٻيا. ڪليڪشن ڪلاس جا مکيه انٽرفيس :
  • سيٽ هڪ انٽرفيس آهي جيڪو هڪ سيٽ کي بيان ڪري ٿو جنهن ۾ غير ترتيب ڏنل منفرد (غير ورجائيندڙ) عناصر شامل آهن.

  • فهرست ھڪڙو انٽرفيس آھي جيڪو ھڪڙي ڊيٽا جي جوڙجڪ کي بيان ڪري ٿو جيڪو شيون جي ترتيب ڏنل ترتيب کي ذخيرو ڪري ٿو. اهي شيون وصول ڪن ٿيون پنهنجو انڊيڪس (نمبر)، جنهن کي استعمال ڪندي توهان انهن سان لهه وچڙ ڪري سگهو ٿا: وٺو، حذف ڪريو، تبديل ڪريو، اوور رائٽ ڪريو.

  • قطار ھڪڙو انٽرفيس آھي جيڪو ھڪڙي ڊيٽا جي جوڙجڪ کي بيان ڪري ٿو ھڪڙي قطار جي صورت ۾ عناصر کي ذخيرو ڪرڻ سان جيڪو قاعدي تي عمل ڪري ٿو - FIFO - First In First Out .

جاوا ڊولپر لاءِ انٽرويوز کان سوالن ۽ جوابن جو تجزيو.  حصو 16 - 12گڏ ڪرڻ بابت وڌيڪ پڙهو . مجموعو هڪ يوٽيلٽي ڪلاس آهي جيڪو مهيا ڪري ٿو ڪيترن ئي مختلف افاديت جا طريقا. مثال طور:
  • addAll(Collection<? super T> collection, T...element) - T قسم جا پاس ٿيل عنصرن کي گڏ ڪري ٿو .

  • ڪاپي (List<? super T> dest، List<? extensions T> src) - سڀني عنصرن کي نقل ڪري ٿو فهرست src مان dest ۾ لسٽ ۾ .

  • emptyList() - هڪ خالي لسٽ موٽائي ٿو.

  • max(Clections<? extensions T> collection, Comparator<? super T> comp) - ڏنل ڪليڪشن جو وڌ ۾ وڌ عنصر واپس ڪري ٿو ترتيب ڏنل ترتيب جي مطابق مقرر ڪيل ڪمپيريٽر طرفان.

  • unmodifiableList(List<? extensions T> list) - واپس ڪري ٿو ھڪڙي غير تبديل ٿيندڙ نمائندگي منظور ٿيل لسٽ جي.

۽ مجموعن ۾ ڪيترائي اهڙا ڪيترائي آسان طريقا آهن . جاوا ڊولپر لاءِ انٽرويوز کان سوالن ۽ جوابن جو تجزيو.  حصو 16 - 13انهن طريقن جي مڪمل فهرست Oracle ويب سائيٽ تي ڳولهي سگهجي ٿي . اهو ڪجھ به نه آهي ته مون چيو ته اهي آرام سان آهن. آخرڪار، اهي سڀئي جامد آهن. اهو آهي، توهان کي هر وقت هن طبقي جو هڪ اعتراض ٺاهڻ جي ضرورت ناهي ته ان تي ضروري طريقو سڏڻ لاء. توهان کي صرف ڪلاس جو نالو داخل ڪرڻ جي ضرورت آهي، ان تي گهربل طريقو ڪال ڪريو ۽ سڀني گهربل دليلن کي پاس ڪريو. اختصار ڪرڻ لاءِ، ڪليڪشن فريم ورڪ جو روٽ انٽرفيس آھي. مجموعو هڪ مددگار طبقو آهي وڌيڪ آسان شين جي پروسيسنگ لاءِ جيڪو مجموعن جي جوڙجڪ مان هڪ قسم سان تعلق رکي ٿو. خير، اهو سڀ ڪجهه اڄ لاء آهي. دعائون!جاوا ڊولپر لاءِ انٽرويوز کان سوالن ۽ جوابن جو تجزيو.  حصو 16 - 14
سيريز ۾ ٻيا مواد:
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION