আমি বিষয়টি গুগল করেছিলাম, তবে উইকিপিডিয়া ছাড়াও আমি আর কোনও দরকারী ডকুমেন্টেশন বা নিবন্ধগুলি পাই নি।
কেউ কি এর সহজ অর্থ আমাকে সরল কথায় ব্যাখ্যা করতে পারে বা আমাকে কিছু সুন্দর এবং সহজে বোঝার জন্য ডকুমেন্টেশনগুলিতে উল্লেখ করতে পারে?
আমি বিষয়টি গুগল করেছিলাম, তবে উইকিপিডিয়া ছাড়াও আমি আর কোনও দরকারী ডকুমেন্টেশন বা নিবন্ধগুলি পাই নি।
কেউ কি এর সহজ অর্থ আমাকে সরল কথায় ব্যাখ্যা করতে পারে বা আমাকে কিছু সুন্দর এবং সহজে বোঝার জন্য ডকুমেন্টেশনগুলিতে উল্লেখ করতে পারে?
উত্তর:
জাভা সম্পর্কিত উল্লেখ করে এটির অর্থ নির্দিষ্ট নয়।
একটি শ্রেণীর আক্রমণকারী হ'ল এমন একটি সম্পত্তি যা কোনও শ্রেণীর সমস্ত দৃষ্টান্ত ধরে রাখে, সর্বদা, অন্য কোড যাই করুক না কেন।
উদাহরণ স্বরূপ,
class X {
final Y y = new Y();
}
X এর শ্রেণি আক্রমণকারী রয়েছে যে এখানে একটি y
সম্পত্তি আছে এবং এটি কখনও হয় না null
এবং এর ধরণের মান থাকে Y
।
class Counter {
private int x;
public int count() { return x++; }
}
দুটি গুরুত্বপূর্ণ আক্রমণকারী বজায় রাখতে ব্যর্থ
count
সম্ভাব্য ভূগর্ভের কারণে এটি কখনও নেতিবাচক মান দেয় না।count
কঠোরভাবে একঘেয়েমি বৃদ্ধি পাচ্ছে।পরিবর্তিত শ্রেণি two দুটি আক্রমণকারীকে সংরক্ষণ করে।
class Counter {
private int x;
public synchronized int count() {
if (x == Integer.MAX_VALUE) { throw new IllegalStateException(); }
return x++;
}
}
তবে আক্রমণকারীটিকে সংরক্ষণ করতে ব্যর্থ হয় যা count
সর্বদা সাধারনত সফল হওয়ার আহ্বান জানায় (অনুপস্থিত টিসিবি-লঙ্ঘন † ) কারণ count
একটি ব্যতিক্রম ছুঁড়ে দিতে পারে বা যদি কোনও ডেডলকড থ্রেড কাউন্টারটির মনিটরের মালিক হয় তবে এটি ব্লক হতে পারে।
ক্লাস সহ প্রতিটি ভাষা কিছু শ্রেণীর আক্রমণকারী বজায় রাখা সহজ করে তবে অন্যকে নয়। জাভা এর ব্যতিক্রম নয়:
private
ক্ষেত্রগুলি রক্ষা করতে পারে , তাই ব্যক্তিগত ডেটা নির্ভর করে এমন আক্রমণকারীগুলি বজায় রাখা সহজ।null
মানগুলি বিভিন্ন উপায়ে ডুবে যেতে দেয় , সুতরাং "সত্যিকারের মূল্য আছে" আক্রমণকারীদের ধরে রাখা শক্ত tough† - একটি বাহ্যিকতা বা টিসিবি লঙ্ঘন এমন একটি ইভেন্ট যা কোনও সিস্টেম ডিজাইনার আশাবাদীভাবে ধরে নেয় যে ঘটবে না।
সাধারণত আমরা কেবলমাত্র বিশ্বাস করি যে তাদের উপর নির্মিত উচ্চ-স্তরের ভাষার বৈশিষ্ট্যগুলির বিষয়ে কথা বলার সময় বেসিক হার্ডওয়্যার বিজ্ঞাপন হিসাবে কাজ করে, এবং আমাদের আর্গুমেন্টরা যে যুক্তিগুলি ধারণ করে তা এর সম্ভাব্যতার বিষয়টি বিবেচনা করে না:
setAccessible
সংশোধন করতে প্রতিচ্ছবি ব্যবহার করবেন না private
।কিছু সিস্টেমের জন্য আমাদের টিসিবি সিস্টেমের কেবলমাত্র অংশগুলি অন্তর্ভুক্ত করতে পারে, তাই আমরা এটি ধরে নিতে পারি না
তবে আমরা এটি ধরে নিতে পারি
একটি উচ্চ স্তরের একটি সিস্টেম, এর টিসিবি সাধারণত বৃহত্তর হয় তবে আপনি আপনার টিসিবি থেকে যত বেশি অবিশ্বাস্য জিনিসগুলি বের করতে পারবেন, আপনার আক্রমণকারীরা তত বেশি সম্ভাবনাময় হবেন এবং আপনার সিস্টেমটি দীর্ঘ সময়ের মধ্যে আরও নির্ভরযোগ্য হবে।
count
কখনই একই মান দুবার ফেরত দেয় না" সত্যই কোনও শ্রেণীর আক্রমণকারী হিসাবে বিবেচিত?
আক্রমণকারী বলতে এমন কিছু বোঝায় যা তার অবস্থার সাথে আটকে থাকুক না কেন যে পরিবর্তনই হোক বা যে কেউ এটিকে ব্যবহার / রূপান্তর করে। এর অর্থ হ'ল, কোনও শ্রেণীর সম্পত্তি সর্বদা জনসাধারণের পদ্ধতি ব্যবহার করে রূপান্তরের মধ্য দিয়ে যাওয়ার পরেও কিছু শর্ত পূরণ করে বা সন্তুষ্ট করে। সুতরাং, এই শ্রেণীর ক্লায়েন্ট বা ব্যবহারকারী শ্রেণি এবং তার সম্পত্তি সম্পর্কে নিশ্চিত।
উদাহরণ স্বরূপ,
এগুলি এমন ঘটনা যা একটি উদাহরণ শ্রেণীর ক্ষেত্রে অবশ্যই সত্য। উদাহরণস্বরূপ, যদি কোনও শ্রেণীর সম্পত্তির এক্স থাকে এবং ইনগ্রান্টের পরিমাণটি এক্স এর চেয়ে বড় হতে পারে তবে 0. আমার জ্ঞান অনুসারে আক্রমণকারীদের রক্ষণাবেক্ষণের জন্য কোনও বিল্ট-ইন পদ্ধতি নেই আপনাকে অবশ্যই সম্পত্তি ব্যক্তিগত রাখতে হবে এবং নিশ্চিত হওয়া উচিত যে আপনার গ্রাহকরা এবং সেটটাররা ইনভারিয়েন্স সম্পত্তি প্রয়োগ করে।
এমন টীকা উপলব্ধ রয়েছে যা প্রতিবিম্ব এবং ইন্টারসেপ্টর ব্যবহার করে বৈশিষ্ট্যগুলি পরীক্ষা করতে পারে। http://docs.oracle.com/javaee/7/api/javax/omotation/constraints/package-summary.html