মাঝে মাঝে আমি এপিআই এর ব্যবহার দেখতে longবা Longবা intবা Integer, এবং আমি পারবো না চিত্রে কিভাবে সিদ্ধান্ত যে জন্য তৈরি করা হয়?
আমি কখন নির্বাচন করব?
মাঝে মাঝে আমি এপিআই এর ব্যবহার দেখতে longবা Longবা intবা Integer, এবং আমি পারবো না চিত্রে কিভাবে সিদ্ধান্ত যে জন্য তৈরি করা হয়?
আমি কখন নির্বাচন করব?
উত্তর:
Longএর Objectরূপ long, এবং Integerএর অবজেক্ট ফর্ম int।
longব্যবহার 64 বিট । intব্যবহারসমূহ 32 বিট, এবং তাই শুধুমাত্র সংখ্যা ± 2 বিলিয়ন পর্যন্ত ধরে রাখতে পারেন (-2 31 +2 থেকে 31 -1)।
আপনি ব্যবহার করা উচিত longএবং intছাড়া তুমি কোথা থেকে উত্তরাধিকারসূত্রে পদ্ধতি ব্যবহার করতে হবে Object, যেমন hashcode। Java.util.collectionsপদ্ধতিগুলি সাধারণত বক্সযুক্ত ( Object-মোড়ানো) সংস্করণগুলি ব্যবহার করে , কারণ এগুলির জন্য যে কোনও একটির জন্য কাজ করা প্রয়োজন Object, এবং একটি আদিম ধরণের, যেমন intবা long, এটি কোনও নয় Object।
আরেকটি পার্থক্য হল longএবং intহয় পাস-বাই-মান , যেহেতু Longএবং Integerহয় পাস-বাই-রেফারেন্স মান , সমস্ত অ-আদিম জাভা ধরনের মত। সুতরাং যদি কোনওটিকে সংশোধন করা সম্ভব হয় Longবা Integer(এটি না হয় তবে তারা জেএনআই কোড ব্যবহার না করেই পরিবর্তনযোগ্য), অন্যটির অপরটির ব্যবহারের আরও একটি কারণ থাকতে পারে।
একটি চূড়ান্ত পার্থক্য একটি Longবা Integerহতে পারে null।
আদিম ধরণের সাথে আপনি না করতে পারেন এমন কয়েকটি জিনিস রয়েছে:
nullমান আছেObjectগুলিআপনার যদি কারওর প্রয়োজন না হয় তবে আপনার আদিম ধরণের পছন্দ করা উচিত, কারণ তাদের স্মৃতিশক্তি কম থাকে।
int, যখন সংখ্যা রাখবেন।intযদি খুব কম হয় তবে a ব্যবহার করুনlonglongখুব কম হলে ব্যবহার করুনBigIntegerCollection, হ্যান্ডলিং null, ...) ব্যবহার করুন Integer/ Longপরিবর্তেআন intএকটি 32-বিট পূর্ণসংখ্যা; একটি longএকটি 64-বিট পূর্ণসংখ্যা। কোনটি ব্যবহার করবেন তা নির্ভর করে আপনি কত বড় সংখ্যাটি নিয়ে কাজ করতে পারবেন তার উপর।
intএবং longআদিম ধরণের, যখন Integerএবং Longঅবজেক্টগুলি। আদিম ধরণেরগুলি আরও দক্ষ, তবে কখনও কখনও আপনাকে অবজেক্টগুলি ব্যবহার করতে হবে; উদাহরণস্বরূপ, জাভার সংগ্রহ শ্রেণীর শুধুমাত্র বস্তুর সঙ্গে কাজ করতে পারেন, তাই যদি আপনি পূর্ণসংখ্যার একটি তালিকা প্রয়োজন আপনি এটি একটি করতে হবে List<Integer>, উদাহরণস্বরূপ (আপনি ব্যবহার করতে পারবেন না intএকটি Listসরাসরি)।
Int32 bits (4byte)-2,147,483,648 to 2,147,483,647Long64 bits (8byte)-9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
যদি আপনার কোনও ভেরিয়েবলের ব্যবহার 32 বিট সীমার মধ্যে পড়ে তবে ব্যবহার করুন Int, অন্যথায় ব্যবহার করুন long। সাধারণত দীর্ঘ বৈজ্ঞানিক গণনা এবং এর মতো স্টাফের জন্য বেশি নির্ভুলতার প্রয়োজন হয়। (যেমন পাই এর মান)।
একে অপরকে বেছে নেওয়ার একটি উদাহরণ ইউটিউবের ক্ষেত্রে case তারা প্রথমত ভিডিও ভিউ কাউন্টারটিকে এমন হিসাবে সংজ্ঞায়িত করে
intযা উপচে পড়েছিল যখন একটি জনপ্রিয় ভিডিওতে প্রাপ্ত প্রাপ্তির বেশি 2,147,483,647 টি দেখা। যেহেতু একটিIntকাউন্টার তার ব্যাপ্তির চেয়ে বেশি কোনও মান সঞ্চয় করতে পারে না, ইউটিউব কাউন্টারটিকে একটি 64 বিট ভেরিয়েবলে পরিবর্তন করেছে এবং এখন 9,223,372,036,854,775,807 টি পর্যন্ত গণনা করতে পারে। আপনার ডেটা বুঝুন এবং type৪ বিট ভেরিয়েবলের মতো টাইপ চয়ন করুন যা 32 বিটের ভেরিয়েবলের চেয়ে দ্বিগুণ স্মৃতি গ্রহণ করবে।
যখন এটি উপস্থাপনের জন্য 32 বিট অতিক্রম করতে পারে এমন একটি দীর্ঘ সংখ্যা ব্যবহার করার কথা আসে, আপনি যাতে দীর্ঘ সময় ব্যবহার করতে পারেন তা নিশ্চিত করার জন্য আপনি ব্যবহার করতে পারেন strange
জাভা 5 থেকে আপনি ইন-বক্সিং এবং আউট-বক্সিং বৈশিষ্ট্যগুলি ইনট এবং ইন্টিজারের ব্যবহার সম্পূর্ণরূপে তৈরি করতে ব্যবহার করতে পারেন। এর অর্থ হ'ল আপনি এটি করতে পারেন:
int myInt = new Integer(11);
Integer myInt2 = myInt;
ইন ও আউট বক্সিং (জন্য একই করে আপনাকে কোনো অতিরিক্ত রূপান্তর ছাড়া int এবং পূর্ণসংখ্যা মধ্যে স্যুইচ করার অনুমতি দেয় Long, Double, Shortখুব)
আপনি intসব সময় ব্যবহার করতে পারেন তবে Integerকয়েকটি সহায়ক পদ্ধতি রয়েছে যা আপনাকে পূর্ণসংখ্যার (যেমন Integer.parseInt(String)) দিয়ে কিছু জটিল ক্রিয়াকলাপ করতে সহায়তা করতে পারে
ক) বস্তু ক্লাস "লং" বনাম আদিম প্রকার "দীর্ঘ"। (অন্তত জাভাতে)
খ) আদিম ধরণের বিভিন্ন (এমনকি অস্পষ্ট) মেমরির আকার রয়েছে:
জাভা - সব পরিষ্কার: https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html
সি .. জগাখিচুড়ি: https://en.wikedia.org/wiki/C_data_tyype