-
ڪلاس جا طريقا لسٽ ڪريو
Object
equals()
hashCode()
toString()
getClass()
notify()
notifyAll()
wait()
wait(long timeOut)
wait(long timeOut, int nanos)
-
equals
ڇو ۽ طريقن جي ضرورت آهيhashCode
؟شين جي ڀيٽ ڪرڻ لاء استعمال ڪيو ويو.
طريقي جو مقصد
equals
اهو طئي ڪرڻ آهي ته ڇا شيون اندروني طور تي هڪجهڙائي آهن شين جي اندروني مواد جي مقابلي سان. اهوequals
سست رفتاري سان ڪم ڪندو آهي، پهرين شين جي هيش ڪوڊس جو مقابلو ڪيو ويندو آهي، ۽ جيڪڏهن هيش ڪوڊ برابر هوندا آهن، هڪ چيڪ ڪيو ويندو آهي خلافequals
-
ڇا ٿيندو جيڪڏهن توهان برابر کي اوور رائڊ ڪيو پر اوور رائڊ نه ڪيو
hashCode
؟شروعات ۾
hashCode
، هڪ بي ترتيب نمبر.equals
جاوا ۾ مجموعا هميشه ڳولهيندا آهن / انهن جو مقابلو ڪرڻ کان پهريان طريقي سان استعمال ڪندي شيون استعمال ڪنديhashCode()
. ۽ جيڪڏهن هڪجهڙا شيون مختلف آهنhashCode
، ته پوءِ شيون مختلف سمجهي وينديون - اهو آسان نه ٿيندو ته انهن کي استعمال ڪرڻ سان مقابلو ڪرڻequals
. -
طريقا ڇو آهن
wait
،،،notify
؟notifyAll
ڪڏهن ڪڏهن ڪنهن پروگرام ۾ اهڙي صورتحال ٿي سگهي ٿي جتي ڪو ٿريڊ ڪوڊ جي بلاڪ ۾ داخل ٿيو هجي
synchronized
، مانيٽر کي بلاڪ ڪيو هجي ۽ اڳتي ڪم نه ڪري سگهي، ڇاڪاڻ ته ڪجھ ڊيٽا اڃا تائين غائب آهي: مثال طور، فائل جيڪا ان کي پروسيس ڪرڻ گهرجي، اڃا تائين لوڊ نه ڪئي وئي آهي يا انهي وانگر. هن مسئلي کي حل ڪرڻ لاء هڪ طريقو ايجاد ڪيو ويوwait()
. هن طريقي کي ڪال ڪرڻ سان ٿريڊ مانيٽر کي ڇڏڻ ۽ "روڪ" ڪرڻ جو سبب بڻائيندو آهي.بند ڪرڻ لاء، طريقا استعمال ڪيا ويا آهن
notify
.notifyAll
طريقوnotify
هڪ بي ترتيب واري سلسلي کي ”غير منجهيل“ ڪري ٿو، طريقوnotifyAll
- ڏنل مانيٽر جا سڀ ”منجمد“ سلسلا. -
ڪنهن شئي کي صحيح طريقي سان ڪلون ڪيئن ڪجي؟
ڪلوننگ جا ٻه قسم.
ڊفالٽ اعتراض کي کلون ڪرڻ لاء:
Cloneable
پنھنجي ڪلاس ۾ ھڪڙو انٽرفيس شامل ڪريو- طريقي کي ختم ڪريو
clone
۽ ان ۾ بنيادي عمل کي ڪال ڪريو:
class Point implements Cloneable { int x; int y; public Object clone() { return super.clone(); } }
يا توھان لکي سگھوٿا ھن طريقي جي عمل کي
clone
پنھنجو پاڻ:class Point { int x; int y; public Object clone() { Point point = new Point(); point.x = this.x; point.y = this.y; return point; } }
-
اهو طريقو ڇو ضروري آهي
finalize()
۽ اهو ڪيئن ڪم ڪري ٿو؟جيڪڏھن توھان کي ياد آھي، اھو
finalize()
ھڪڙو خاص طريقو آھي جنھن کي ھڪڙي اعتراض تي سڏيو ويندو آھي ان کان اڳ جو ڪچرو جمع ڪندڙ ان کي ناس ڪري.هن طريقي جو بنيادي مقصد استعمال ٿيل خارجي غير جاوا وسيلن کي ڇڏڻ آهي: فائلون بند ڪريو، I/O اسٽريم، وغيره.
finalize()
غير مستحڪم ڪم ڪري ٿو.اهو طريقو ان تي رکيل اميدن تي پورو نٿو لهي. جاوا مشين ڪنهن شئي جي تباهي کي دير ڪري سگهي ٿي، انهي سان گڏ هڪ طريقي جي ڪال،
finalize
جيستائين اهو پسند ڪري ٿو. ان کان سواء، ان جي ضمانت نه آهي ته هن طريقو سڀ سڏيو ويندو. ڪيترين ئي حالتن ۾، "اصلاح" جي خاطر، اهو نه سڏيو ويندو آهي. -
ڇا فرق آهي
final
،،finally
؟finalize
final
- تبديل ڪندڙ- فيلڊ تبديل نه ٿي ڪري سگھجي، طريقا ختم ٿي ويا آھن
- ڪلاس ورثي ۾ نه ٿا ملن
- هي ترميمي صرف طبقن، طريقن ۽ متغيرن تي لاڳو ٿئي ٿو (مقامي متغير پڻ)
- طريقن جي دليلن کي نشان لڳايو ويو آهي جيئن
final
صرف پڙهڻ لاءِ؛ انهن کي تبديل ڪرڻ جي ڪوشش جي نتيجي ۾ هڪ تاليف جي غلطي ٿيندي. - Переменные
final
не инициализируются по умолчанию, им необходимо явно присвоить meaning при объявлении or в конструкторе, иначе – ошибка компиляции - Если final переменная содержит ссылку на an object, an object может быть изменен, но переменная всегда будет ссылаться на тот же самый an object
- Также это справедливо и для массивов, потому что массивы являются an objectми, – массив может быть изменен, а переменная всегда будет ссылаться на тот же самый массив
- Если класс объявлен
final
иabstract
(взаимоисключающие понятия), произойдет ошибка компиляции - Так How
final
класс не может наследоваться, его методы никогда не могут быть переопределены
finally
— блок в связкеtry-catch-finally
, code в котором выполнится независимо от того вылетело ли исключение в блокеtry
or нет. Используется для освобождения ресурсов.finalize
— метод в классеObject
см 6. -
What такое
try-with-resources
?Это специальная конструкция
try
, называемаяtry-with-resources
, в которой Обрати внимание – послеtry
следуют круглые скобки, где объявляются переменные и создаются an objectы. Эти an objectы можно использовать внутри блокаtry
, обозначенного скобками{}
. Когда выполнение команд блокаtry
закончится, независимо от того – нормально оно закончилось or было исключение, для an object, созданного внутри круглых скобок()
, будет вызван методclose()
; -
Чем отличаются методы
wait(1000)
иsleep(1000)
?sleep()
приостанавливает поток на указанное. состояние меняется на TIMED_WAITING, по истечению — RUNNABLEwait()
меняет состояние потока на WAITINGможет быть вызвано только у an object владеющего блокировкой, в противном случае выкинется исключение IllegalMonitorStateException. при срабатывании метода блокировка отпускается, что позволяет продолжить работу другим потокам ожидающим захватить ту же самую блокировку . в случае
wait(int)
с аргументом состояние будет TIMED_WAITING -
В чем отличие
i++
и++i
?++i
,i
сначала увеличивается на 1, затем участвует в выражении.i++
,i
сначала участвует в выражении, затем увеличивается на 1.
GO TO FULL VERSION