সি # থেকে জাভাতে স্যুইচ করুন, কোন "গোটচস" আমার যত্ন নেওয়া উচিত?


9

নতুন প্রকল্পের জন্য আমাকে জাভাতে যেতে হতে পারে। জাভা সম্পর্কে আমার খুব কম জ্ঞান আছে, কারণ আমি মূলত সি # অধ্যয়ন করেছি এবং ব্যবহার করেছি, এবং এই দুটি ভাষা / প্ল্যাটফর্মের মধ্যে পার্থক্য সম্পর্কে আমি ভীত যে আমাকে অনেক সমস্যার কারণ হতে পারে।

আমার কোন সমস্যাগুলি / গটচগুলি যত্ন নেওয়া উচিত?


আমার মনে হয় এই ব্লগটি আপনি সন্ধান করছেন এমন অনেকগুলি বিষয় কভার করেছে .. ericsink.com/entries/java_eclipse_2.html
হরি মেনন

3
আছে অনেক C # এবং জাভা এবং প্রতি একক এক এই প্রশ্নের একটি সম্ভাব্য "উত্তর" হয় মধ্যে পার্থক্য। যাইহোক, আমি সন্দেহ করি এটি আপনার বা অন্যদের জন্য খুব দরকারী। আরও নির্দিষ্ট, সত্যিকারের প্রশ্ন জিজ্ঞাসা করলে আরও দরকারী উত্তর পাওয়া যায়। বিকল্পভাবে, (কার্যকরভাবে অন্তহীন) পার্থক্যের পরিবর্তে সি # থেকে জাভাতে স্যুইচ করার জন্য রেফারেন্স বা গাইড জিজ্ঞাসা করার চেষ্টা করুন ।

অন্য কথায়, পরিবর্তে একটি নির্দিষ্ট সমস্যা সম্পর্কে "কেন" বা "কীভাবে" প্রশ্ন করার চেষ্টা করুন। উদাহরণস্বরূপ, রেফারেন্স, গাইড বা বইয়ের জন্য জিজ্ঞাসা করা "আমি কীভাবে সি # থেকে জাভাতে যেতে পারি" জিজ্ঞাসা করা বা আপনি যে নির্দিষ্ট কোডটি বুঝতে পারেন না সে সম্পর্কে জিজ্ঞাসা করা "ওয়াইয়ের পরিবর্তে এটি এক্স কেন করে কেন" প্রশ্নটি is

এই সম্প্রদায়-
উইকিটি

উত্তর:


36

সি # থেকে আসার সময় এখানে কয়েকটি গুরুত্বপূর্ণ জাভা গ্যাটাচ রয়েছে:

  • জাভাতে, switchকেসগুলি নিঃশব্দে পরের দিকে পড়ে যেতে পারে, তাই আপনি breakযখন উপযুক্ত হন সর্বদা তা নিশ্চিত হন । এছাড়াও আপনি করতে পারেন না switchউপর Stringজাভা।
  • জেনারিকগুলি কেবলমাত্র রেফারেন্স ধরণের সাথে অ-পুনরায় সংশোধিত এবং পরামিতিযোগ্য। নেই List<int>, কেবল ক List<Integer>। চামড়া Autoboxing ভারবোসিটি, কিন্তু আপনি পেতে পারেন NullPointerExceptionযখন একটি আনবক্সিং null। এছাড়াও, ==এবং !=দুটি বক্সযুক্ত আদিম ধরণের রেফারেন্স তুলনা করে।
    • ... কারণ ==এবং !=দুটি রেফারেন্সের ধরণের (যেমন String) সর্বদা রেফারেন্স তুলনা
    • একটি intএকটিতে অটোবক্স করা যেতে পারে Integer; সেখান থেকে কোন autoboxing হয় int[]থেকে Integer[]
  • জাভার byte, short, int, longশুধুমাত্র সাইন ইন করেছেন। অনিচ্ছাকৃত সাইন এক্সটেনশনের জন্য দেখুন।
  • কোন বহুমাত্রিক অ্যারে, জাভাতে কেবল অ্যারে নেই।
  • সর্বাধিক sub*রেঞ্জযুক্ত ক্যোয়ারী পদ্ধতিগুলি অন্তর্ভুক্ত সহ লোয়ার বাউন্ড এবং এক্সক্লুসিভ আপার বাউন্ড ব্যবহার করে

আরো দেখুন

সম্পর্কিত প্রশ্নাবলী

উপরে তালিকাভুক্ত কয়েকটি বিষয়ে:

সাধারণ জাভা গেটচাসে:


8
এখন আপনি জাভা এসই 7 এ স্ট্রিং স্যুইচ করতে পারেন
ম্যালকম

জেনেরিক্সের জন্য +1 কেবলমাত্র রেফারেন্সের ধরণের সাথেই পুনঃ-সংশোধিত এবং পরামিতিযোগ্য , এটি আজ আমাকে অনেক সহায়তা করেছে
cctan

আপনার জাভা যুক্ত করা উচিত কোনও স্ট্রাক্ট নেই।

13

একটি স্পষ্ট সমস্যাটি string1 == string2জাভা শৈলীর পরিবর্তে সি # স্টাইল (জাভা কেবলমাত্র রেফারেন্সের তুলনা করে) এর সাথে স্ট্রিংগুলির তুলনা করছে string1.equals(string2)

আর একটি হ'ল এটি জাভাতে privateসি # তে ডিফল্ট অ্যাক্সেস মডিফায়ার package

এছাড়াও ToString()পদ্ধতিগুলি জাভাতে বর্তমান সংস্কৃতি দ্বারা স্বয়ংক্রিয়ভাবে স্থানীয়করণ হয় না।


কোনও অপারেটর ওভারলোড নেই এমনটি এটি একটি এক্সটেনশন।
গ্রাফইন

3
ভুল। প্যাকেজ-ব্যক্তিগত হল জাভার ডিফল্ট অ্যাক্সেস মডিফায়ার if
অলিভার ওয়েইলার

@ সহায়তা পদ্ধতি: ওহ, দুঃখিত আমার অর্থ সি # এর ডিফল্ট হিসাবে ব্যক্তিগত ছিল, তবে জাভা নয় not এটি এখন সম্পাদিত।

12

যেটি আমাকে পেয়েছিল তা হল জাভা সাবস্ট্রিং আরগগুলি হ'ল বিগিনড ইনডেক্স, এন্ডআইডেক্স যখন সি # সাবট্রিং আরগস স্টার্টইন্ডেক্স, দৈর্ঘ্য। এটিকে বিরক্তিকর করতে যথেষ্ট পার্থক্য রয়েছে এবং আপনি যেভাবে স্যুইচ করে সীমা ছাড়িয়ে যাওয়ার সূচক হওয়ার সম্ভাবনা রয়েছে।


3
+1 আরও বিভ্রান্তিকর ঘটনাটি হ'ল এটি এটি সূচনা ইনক্লুসিভ এবং এন্ডআইডেক্স এক্সক্লুসিভ ... এবং জেডিকে এমন কিছু এপিআইয়ের সন্ধান পাওয়া গেছে যা স্টার্ট ইন্ডেক্স, দৈর্ঘ্যের পদ্ধতির ব্যবহার করে ...
অলিভার

10
  • আপনি কোনও লিনকুই পাবেন না
  • আপনি কোনও ভাল - খুঁজছেন ইউআই পাবেন না (ডাব্লুপিএফ নেই)
  • সম্পত্তি নেই
  • আপনি মিশরীয়দের নাচ পেতে
  • আপনি উদাহরণ এবং ভাল ডকুমেন্টেশন ছাড়াই এপিআই পান

হুঁ।


2
জাভা এপিআই কখনও খারাপ খুঁজে পান নি (বাস্তবে চলাচল করা সহজ) তবে এর উদাহরণ কম রয়েছে less এটা মিশরীয়দের সম্পর্কে কি?
গ্রাফইন

3
আমি এটিকে উজ্জীবিত করছি ...... এমনকি ব্যঙ্গাত্মক কম আঘাত থাকলেও।
এমপেন

3
@Graphain দেখতে stackoverflow.com/questions/2349378/...

8
এই সত্য ভুল আমি বাগের সম্ভাব্য কারণ হিসাবে সমস্যাগুলি বুঝতে পারি। আপনি কেবল অন্য কোনও উপায়ে করতে পারবেন না বলে এগুলি আপনাকেই বাঁচতে হবে।

2
@ ক্লাউডাঙ্গার: আপনার সাথে একমত সমস্যাগুলি এমন কিছু বিষয় হওয়া উচিত যা ভুলভাবে "কাজ করে", এমন কিছু নয় যা এমনকি কাজ করে না।
Vimvq1987

10
  • জাভা এনামগুলি আরও শক্তিশালী / জটিল, তারা প্রকৃত শ্রেণীর নামকরণের পরিবর্তে হয়।
  • জাভা অভ্যন্তরীণ ক্লাসগুলি আরও শক্তিশালী (এবং তারা ভিন্ন আচরণ করে)
  • কোন প্রতিনিধি নেই, কেবল কার্যকরী বস্তু
  • কনস্ট্রাক্টর চেইনিং থ্যাচির উভয় ভাষায় সম্পূর্ণ ভিন্ন বাক্য গঠন রয়েছে, আমি প্রতিবারই সি-তে এটি করতে গেলে আমি ব্যর্থ হই tend
  • জাভা সাবক্লাসিং এবং ইন্টারফেসের জন্য প্রয়োগের জন্য প্রসারিত হয়েছে, যা বেশ সুন্দর। পরিবর্তে সি # নামকরণের সম্মেলনে রিলে যুক্ত করে যা বলে যে ইন্টারফেসগুলি তাদের নামে একটি বড় হাতের আই দিয়ে শুরু হয়। আমি এই সম্মেলনটি পছন্দ করি না, যেহেতু অন্য কেউ ব্যর্থ হয় কিনা তা আমি কখনই নিশ্চিত হতে পারি না।
  • জাভা অটোবক্সিং আপনাকে ** তে কামড় দিতে পারে
  • জাভা ধরণের ক্ষয়টি সত্যই জিনিসগুলিকে আরও জটিল করে তোলে

2
আপনি মজা করছেন, তাই না? -1, তবে। আপনি সিরিয়াস হতে পারবেন না।

3
আপনি কোন পয়েন্টটি পছন্দ করেন না তা কমপক্ষে আপনাকে পরিষ্কার করা উচিত, অন্যথায় আমাকে ধরে নিতে হবে যে আপনি কেবল ট্রলিং করছেন are
atamanroman

2
এখন আপনার কেবল রসিকতা নয় আপনি কেবল অজ্ঞান: লিনাক্স ব্যাকএন্ড অঞ্চলে গুরুত্বপূর্ণ, জাভাডোক এই নির্বোধ এমএস সহায়তা ফাইলগুলির চেয়ে অনেক ক্লিনার যা আপনি যদি নেটওয়ার্ক শেয়ার থেকে দেখে থাকেন তবে কাজ করবে না। স্যান্ডক্যাসলটি প্রায় ডকুমেন্টেড নয় এবং যথাযথ জিআই ছাড়া সম্পূর্ণ অব্যর্থ। বেশিরভাগ পিপিএল সম্মত হবেন যে জাভা কাঠামোয় সত্যিই দুর্দান্ত সংগ্রহ রয়েছে এবং জোশুয়া ব্লচ সেখানে দুর্দান্ত কাজ করেছে। এবং "ডিমের মাথ" বইগুলি কেবলমাত্র এমন বই যা আপনি বুঝতে পারবেন না। Eclipse একটি দুর্দান্ত আইডিই যা ভিএস বাহিরের প্লাগইন ব্যতীত দাঁড়াতে পারে না। বিটিডব্লিউ: আমি সি # পছন্দ করি এবং জাভাতে লিনক মিস করি। আপনার এমএস-অফিস-জগত থেকে বেরিয়ে আসুন।
atamanroman

1
এই আইটেমগুলির মধ্যে একটির মধ্যে একটি
গ্যাচা

1
-1 আমার কাছ থেকেও, আপনি জানেন না একটি ভাল আদর্শ কী (এবং এইভাবে প্রোগ্রামিং সম্পর্কিত কোনও কিছুই জানেন না)। সম্পাদনা করুন: পিএফফ্ট জাভা আরও পরিপক্ক, জাভাতেও আসল

6

সর্বাধিক মেটা-পটফলটি ধরে নেওয়া যে জাভা ভাষা এবং লাইব্রেরিগুলি সি # তে অনুরূপ -চেহারাযুক্ত স্টাফের মতোই আচরণ করে। টিউটোরিয়ালগুলি করুন, জাভাদোকগুলি পড়ুন, ধরে নিবেন না ...

আরেকটি মেটা-ফাঁদ অনুমান করা হয় যে আসলে আপনি জাভা কিছু করতে পারেন যে সমানভাবে সহজে / চমত্কারভাবে হিসাবে আপনি / C # পারা পারেন। এটা সত্য না. জাভা অনেক পুরানো ভাষা, এবং ভুলগুলি করা হয়েছিল ...

এবং সর্বশেষ মেটা-পটফলটি ভাবতে হবে যে এসও-তে জাভায় স্টাফগুলি অনুপস্থিত / আলাদা থাকা সম্পর্কে অভিযোগ করা আপনাকে সর্বজনীন সহানুভূতিশীল / সহায়ক প্রতিক্রিয়া জানাবে!


3

ডিফল্ট অ্যাক্সেস সংশোধকগুলির মধ্যে পার্থক্য থেকে সাবধান থাকুন। এছাড়াও লক্ষ করুন যে জাভাতে সমস্ত অ স্থির পদ্ধতি ভার্চুয়াল (যদি আপনি এগুলিকে চূড়ান্ত হিসাবে চিহ্নিত না করেন)।

যদিও এটি কিছুটা পুরানো হয়ে গেছে, আমি এটি একটি দুর্দান্ত রেফারেন্স হিসাবে পেয়েছি।

সি # এবং জাভার তুলনা, সাহসী ওবাসানজো দ্বারা


3
Also note that all non-static methods in Java are virtual.আমি চাই কিভাবে সি # এটির মতো ছিল
গ্রাফইন

3
আমি খুশি যে এটি হ'ল না কারণ এটি ওওপির কারণকে ধ্বংস করে destro প্রতিটি পদ্ধতি ডিফল্টরূপে ভার্চুয়াল হওয়ার সাথে আপনি মূলত আপনার পুরো ক্লাসটিকে প্রতিস্থাপন করতে সক্ষম করেন যা আপনি সাধারণত চান না। এছাড়াও, চূড়ান্ত থেকে চূড়ান্ত কোনও পদ্ধতি পরিবর্তনের ফলে ডেরিভিং কোডটি ভেঙে যেতে পারে, অন্যদিকে না।
Femaref

2

আপনি কোন ধরণের প্রোগ্রামে কাজ করছেন তার উপর নির্ভর করে। উইকিপিডিয়ায় এই নিবন্ধটি রয়েছে এবং এটি বেশ বিস্তৃত। (শেষে "বাহ্যিক লিঙ্কগুলি" বিভাগটিও দেখুন ) http://en.wikedia.org/wiki/Compistance_of_Java_and_C_Sharp

এছাড়াও, আমি এই নিবন্ধটি পড়লাম যখন আমি সি # থেকে জাভা http://www.25hoursaday.com/CsharpVsJava.html এ পরিবর্তন করেছি এবং এটি খুব দরকারী।


0

আমি মনে করি আপনার প্রশ্নটি সাবজেক্টিভ। সমস্ত এখানে ব্যাখ্যা করা যাবে না। আমি আপনাকে জাভা পাজলার পড়ার পরামর্শ দিই , বাই Joshua Bloch and Neal Gafter। আপনি আরও শিখতে পারেন এবং সমস্যাগুলি থেকে নিরাপদ থাকতে পারেন be


সমস্ত সমস্যাগুলি নয়, তবে জাভাতে সি # প্রোগ্রামার হওয়ার সম্ভাবনা রয়েছে :)
Vimvq1987

1
@ ভিমভাক ১৯৯87 - মনে করার কোনও কারণ নেই যে আপনি জাভাতে স্যুইচ করার পরে "জাভা পাজলার্স" সমস্যার মধ্যে পড়বেন না।
স্টিফেন সি

-1

জাভা ভাষায় আন্ত, চর, যেমন আদিম ধরণের বস্তুগত সমতুল্যগুলি "মান ধরণের" নয় (যেমন পূর্ণসংখ্যা একটি রেফারেন্স টাইপ)। সি # তে সিস্টেম.আইটি 32 একটি কাঠামো।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.