সি # বিকাশকারীরা জাভা শিখছেন, কোনটি উপেক্ষা করতে পারে তার মধ্যে সবচেয়ে বড় পার্থক্য কী? [বন্ধ]


87

সি # বিকাশকারীরা যা জাভা শিখতে শুরু করছেন, দুটি ভাষার মধ্যে কোনও বড় অন্তর্নিহিত পার্থক্য রয়েছে যা নির্দেশ করা উচিত?

হতে পারে কিছু লোক জিনিসকে একই বলে ধরে নিতে পারে, তবে কিছু আমদানির দিক রয়েছে যা উপেক্ষা করা উচিত নয়? (বা আপনি সত্যিই স্ক্রু আপ করতে পারেন!)

ওওপি নির্মাণের ক্ষেত্রে, জিসি যেভাবে কাজ করে, রেফারেন্সগুলি, স্থাপনার সাথে সম্পর্কিত ইত্যাদি etc.




এছাড়াও উপেক্ষা করার সম্ভাবনা রয়েছে আমাদের নিজস্ব "সি # এর লুকানো বৈশিষ্ট্যগুলি" স্ট্যাকওভারফ্লো
জন কে

উত্তর:


122

আমার মাথার উপরের অংশ থেকে কয়েকটা ছোঁড়া:

  • জাভাতে কাস্টম মান ধরণের (স্ট্রাক্ট) নেই তাই সেগুলি সন্ধান করার জন্য বিরক্ত করবেন না
  • জাভা এনামগুলি সি # এর "নাম্বার সংখ্যা" পদ্ধতির থেকে খুব আলাদা; তারা আরও OO। আপনি যদি যত্নশীল হন তবে এগুলি দুর্দান্ত ব্যবহার করতে পারে।
  • byte জাভাতে স্বাক্ষরিত হয়েছে (দুর্ভাগ্যক্রমে)
  • সি # তে, বেস ক্লাসের কনস্ট্রাক্টরের আগে ইনস্ট্যান্স ভেরিয়েবল ইনিশিয়েলাইজারগুলি চালিত হয়; জাভাতে তারা এটির পরে দৌড়ায় (যেমন "এই" শ্রেণিতে কনস্ট্রাক্টর বডির ঠিক আগে)
  • সি # পদ্ধতিতে ডিফল্টভাবে সিল করা হয়। জাভাতে তারা ডিফল্টরূপে ভার্চুয়াল।
  • সি # তে ডিফল্ট অ্যাক্সেস পরিবর্তনকারী সর্বদা "বর্তমান প্রসঙ্গে সর্বাধিক সীমাবদ্ধ অ্যাক্সেস" থাকে; জাভাতে এটি "প্যাকেজ" অ্যাক্সেস। (জাভাতে নির্দিষ্ট অ্যাক্সেস সংশোধকগুলি পড়ার পক্ষে এটি মূল্যবান))
  • জাভা এবং সি # তে নেস্টেড টাইপগুলি কিছুটা আলাদাভাবে কাজ করে; বিশেষত তাদের পৃথক অ্যাক্সেস বিধিনিষেধ রয়েছে এবং আপনি নেস্টেড ধরণটিকে এটি হিসাবে ঘোষণা না staticকরলে এটিতে থাকা শ্রেণীর উদাহরণের অন্তর্নিহিত রেফারেন্স থাকবে।

4
+1 এটি শুরু করার জন্য দুর্দান্ত তালিকা।
জিম শুবার্ট

4
@ জন স্কিটি: +1, এবং আপনি সম্ভবত জাভা 7 পর্যন্ত লাম্বডা এবং লিনকু মিস করবেন?
কেবি।

4
"সি # তে, উদাহরণস্বরূপ ভেরিয়েবল ইনিশিয়েলাইজারগুলি বেস ক্লাসের কনস্ট্রাক্টরারের আগে চলে; জাভাতে তারা এটির পরে দৌড়ায় (অর্থাত" "এই" শ্রেণিতে কনস্ট্রাক্টর বডির ঠিক আগে ") - ইয়ার, আপনি কি এটি বিশদভাবে বলতে পারবেন? নিশ্চিত না যে আপনি কী বলছেন তা আমি সত্যিই বুঝতে পেরেছি :)
cwap

7
@ কেপ্প: সি # তে, এক্সিকিউশন অর্ডারটি হ'ল "ইনস্ট্যান্স ভেরিয়েবল ইনিশিয়েলাইজারস, বেস ক্লাস কনস্ট্রাক্টর, কনস্ট্রাক্টর বডি"। জাভাতে এটি "সুপারক্লাস নির্মাণকারী, উদাহরণ ভেরিয়েবল ইনিশিয়েলাইজারস, কনস্ট্রাক্টর বডি"। (উদাহরণস্বরূপ ভেরিয়েবল ইনিশিয়ালাইজারগুলি যখন আপনি ঘোষণার পর্যায়ে উদাহরণ ভেরিয়েবলের জন্য একটি মান নির্ধারণ করেন তখন আপনি যা পান তা
হ'ল

4
@ কেপ্প: হ্যাঁ, এটাই আমার অর্থ - পরেরটি হ'ল একটি অবজেক্টের আরম্ভকারী ।
জন স্কিটি


17

আমি অবাক হয়েছি যে কেউ সম্পত্তি হিসাবে উল্লেখ করেনি, সি # তে বেশ কিছু মৌলিক তবে জাভাতে অনুপস্থিত। সি # 3 এবং তারপরেও স্বয়ংক্রিয়ভাবে বৈশিষ্ট্যগুলি প্রয়োগ করা হয়েছে। জাভাতে আপনাকে গেটএক্স / সেটএক্স টাইপ পদ্ধতি ব্যবহার করতে হবে।

জাভাতে অনুপস্থিত সি # 3 এ লিনকুই এবং ল্যাম্বডা এক্সপ্রেশনগুলির আরেকটি স্পষ্ট পার্থক্য।

জাভা থেকে আরও কয়েকটি সাধারণ তবে দরকারী জিনিস যেমন নিখোঁজ রয়েছে যেমন ভারব্যাটিম স্ট্রিং (@ ""), অপারেটর ওভারলোডিং, ফলন এবং প্রাক প্রসেসর ব্যবহার করে পুনরাবৃত্তিগুলি জাভাতেও অনুপস্থিত।

সি # তে আমার ব্যক্তিগত পছন্দের একটি হ'ল নেমস্পেসের নামগুলি শারীরিক ডিরেক্টরি কাঠামো অনুসরণ করতে হয় না। আমি সত্যিই এই নমনীয়তা পছন্দ করি।


10

অনেক পার্থক্য রয়েছে, তবে এগুলি আমার মনে আসে:

  • জাভাতে অপারেটর ওভারলোডিংয়ের অভাব। আপনার দৃষ্টান্তটি দেখুন quপরিচালনা (উদাহরণ 2) বনাম উদাহরণ == উদাহরণ 2 (বিশেষত ডাব্লু / স্ট্রিং)।
  • ইন্টারফেসে অভ্যস্ত হয়ে উঠুন I এর সাথে উপসর্গ করা হচ্ছে না Often প্রায়শই আপনি তার পরিবর্তে ইমপ্লের সাথে নামের স্থান বা ক্লাস দেখতে পান।
  • ডাবল চেকড লকিং জাভা মেমরির মডেলের কারণে কাজ করে না।
  • আপনি স্থির পদ্ধতিগুলি শ্রেণীর নামের সাথে উপস্থাপন না করে আমদানি করতে পারেন, যা কিছু ক্ষেত্রে (ডিএসএল) খুব কার্যকর।
  • জাভাতে বিবৃতিগুলি পরিবর্তন করতে কোনও ডিফল্ট লাগে না এবং আপনি স্ট্রিং কেস লেবেল (আইআইআরসি) হিসাবে ব্যবহার করতে পারবেন না।
  • জাভা জেনেরিকগুলি আপনাকে রাগ করবে। জাভা জেনেরিকগুলি রানটাইমের সময় উপস্থিত নেই (কমপক্ষে 1.5 তে), এটি একটি সংকলক কৌশল, আপনি জেনেরিক ধরণের প্রতিবিম্ব করতে চাইলে সমস্যা সৃষ্টি করে।

4
সর্বশেষে আমি চেক করেছি, স্ট্রিংগুলি ওভারলোড == হয়নি, এবং আমি এটি জাভা 7 এর জন্য যুক্ত হওয়ার কথা শুনিনি। তারা অবশ্য স্ট্রিং কনটেনটেশনের জন্য ওভারলোড + করে।
মাইকেল ম্যাডসেন

4
হ্যাঁ, স্ট্রিংকে == এর সাথে তুলনা করা নবাগতদের পক্ষে খুব সাধারণ সমস্যা। .equalsআপনি কি ব্যবহার করতে হবে।
মাইকেল ম্যাইইয়ার্স

এছাড়াও, আমি স্থির পদ্ধতি সম্পর্কে মন্তব্য বুঝতে পারি না। প্রায় সব ভাষা স্থির পদ্ধতি বা সমতুল্যকে অনুমতি দেয় না?
মাইকেল ময়র্স

আমি এটি প্রায় upvated, কিন্তু আমি জেনেরিক সম্পর্কে একমত নই। আমি মুছার ধরণটি পছন্দ করি।
finnw

4
"জাভাতে বিবৃতিগুলি পরিবর্তন করতে কোনও ডিফল্ট লাগে না" - না সি # হয় না।
রেনিপেট

8

.NET জেনারিকস রিফাইড করেছে; জাভা জেনেরিকগুলি মুছে ফেলেছে।

পার্থক্যটি হ'ল: ArrayList<String>নেট। ইন-এ যদি আপনার কোনও অবজেক্ট থাকে তবে আপনি (রানটাইমের সময়) বলতে পারবেন যে বস্তুর টাইপ রয়েছে ArrayList<String>, অন্যদিকে জাভাতে, রানটাইমের সময়, অবজেক্টটি টাইপযুক্ত ArrayList; Stringঅংশ হারিয়ে গেছে। যদি আপনি অ- Stringঅবজেক্টগুলিকে মধ্যে রাখেন ArrayList, সিস্টেম এটি প্রয়োগ করতে পারে না এবং আপনি আইটেমটি বের করার চেষ্টা করার পরে কেবল এটি সম্পর্কে জানবেন, এবং কাস্ট ব্যর্থ হবে।


4
... যদিও এটা যোগ করার যে, আপনি নিজে অ লাগাতে পারেন মূল্য Stringএকটি অবারিত ঢালাই করা, ছাড়া তালিকায় বস্তু কোথাও , এবং কম্পাইলার সঠিকভাবে যে সময়ে আপনাকে সতর্ক করবে কম্পাইলার আর জেনেরিক সীমা চেক করতে পারেন। আপনার তালিকাটি সর্বদা একটি চলকটিতে সংরক্ষণ List<String>করা থাকে, সুতরাং এটিতে একটি স্ট্রিং -হীন বস্তু সন্নিবেশ করানোর প্রচেষ্টা সংকলিত হবে না।
আন্দ্রেজেজ ডয়েল

"অ্যারেলিস্টে নন-স্ট্রিং অবজেক্টস, সিস্টেম এটি প্রয়োগ করতে পারে না": নোট করুন যে সংকলন-সময় সিস্টেমটি এটি প্রয়োগ করে। তবে আপনি এটি ingালাই (বা জেনেরিক ব্যবহার না করে) এড়াতে পারেন; তারপরে রানটাইম চেকটি এটি ধরবে তবে কেবল যখন নিষ্কাশন করবে।
সলেসকে

4
@ আন্দ্রেজেজ, @ সালস্ক: আমি কেবল রানটাইমের কথা বলছি। বলুন আপনি প্রতিবিম্বের মাধ্যমে বস্তুটি পেয়েছেন এবং তার addপদ্ধতিটি পুনরায় অনুরোধ করুন (আবার প্রতিবিম্বের মাধ্যমে)। সিস্টেমটি Stringসরাসরি কোনও অ- অবজেক্টকে সরাসরি প্রত্যাখ্যান করবে , বা কেবল যখন ফলাফলের ফলাফল দেওয়ার সময় get?
ক্রিস জেস্টার-ইয়ং

@ স্লেসকে: তবে আইআইআরসি আপনার টাইপ চেকটি রোধ করার জন্য কেবল একটি অন্তর্নিহিত কাস্ট দরকার।
নিকি

@ জুদাঃ আমি আপনার পরিবর্তনটি ফিরিয়ে আনলাম (হ্যাঁ, সত্যের এক বছর পরে), কারণ আপনার ধরণের জিনিস থাকতে পারে না List। আপনার কাছ থেকে নেমে আসা List, পছন্দ মতো ArrayListএবং এর ধরণের জিনিস থাকতে পারে LinkedList। ( এগুলির চারপাশে যাওয়ার সময় Listপরিবর্তে এটি ব্যবহার করা গুরুত্বপূর্ণ ArrayList, তবে আপনি যেটা বলতে পারবেন না তা পরিবর্তিত হয় না new List()))
ক্রিস জেস্টার-ইয়ং

6

জাভা থেকে সি # তে একটি জিনিস মিস করি যা হ'ল চেক করা ব্যতিক্রমগুলির জোর করে পরিচালনা করা। সি # এ খুব সাধারণ বিষয় যে কোনও পদ্ধতিতে যে ব্যতিক্রম ছড়িয়ে দেওয়া হতে পারে সে সম্পর্কে তার অজানা the এবং আপনি সেগুলি আবিষ্কার করার জন্য ডকুমেন্টেশন বা পরীক্ষার করুণায় রয়েছেন। চেক করা ব্যতিক্রম সহ জাভাতে তেমন নয়।


4
এফডাব্লুআইডাব্লু, এটি সি # এর অজ্ঞাতে বিবেচিত হয়েছিল এবং তাদের ছেড়ে যাওয়ার যুক্তিটি আসল। Artima.com/intv/handcuffs.html বিবেচনা করুন । এটি এমন নয় যে ডিজাইনাররা দর্শনগতভাবে চেক করা ব্যতিক্রমগুলির বিরোধিতা করছেন - বরং তারা আরও ভাল কৌশলটির জন্য অপেক্ষা করছেন যা সমস্ত লোমশ কমতি ছাড়াই অনুরূপ সুবিধাগুলি সরবরাহ করে।
গ্রেগ ডি

হ্যা, হ্যা, একটি খুব কলহপ্রিয় বিষয় ...
sleske

4
আমি এই বিষয়টি পছন্দ করি যে সি # এর ব্যতিক্রমগুলি যাচাই করে না, তবে এটি প্রথম পোস্টটি এমনকি পার্থক্যটি চিহ্নিত করার জন্য, সুতরাং +1।
নিক

5

জাভাতে মান ধরণের পরিবর্তে আদিম পদার্থগুলির জন্য অটোবক্সিং রয়েছে, সুতরাং যদিও System.Int32[]সি # তে মানগুলির Integer[]একটি অ্যারে, Integerবস্তুগুলির জন্য রেফারেন্সের একটি অ্যারে এবং এটি উচ্চতর পারফরম্যান্স গণনার জন্য উপযুক্ত নয়।


4
পিট: এটি একটি দুর্দান্ত পয়েন্ট এবং এটি যা আমি কখনই জানতাম না বা কমপক্ষে কখনও বিবেচনা করা হয়নি (সি # বিকাশকারী এবং জাভাতে নতুন)।
জিম শুবার্ট

4

কোনও প্রতিনিধি বা ইভেন্ট নেই - আপনাকে ইন্টারফেস ব্যবহার করতে হবে। ভাগ্যক্রমে, আপনি ক্লাস এবং ইন্টারফেস বাস্তবায়ন ইনলাইন তৈরি করতে পারেন, সুতরাং এটি এত বড় বিষয় নয়


4
"এত বড় ব্যাপার না"। ঠিক। কারণ x => x.Fooবনাম new Bar() { public void M(SomeType x) { return x.Foo; } }- কোডটি 10 ​​বার সংক্ষিপ্ত হওয়ার বিষয়ে কে চিন্তা করে?
কর্ক ওল

2

জাভাতে অন্তর্নির্মিত তারিখ / ক্যালেন্ডার কার্যকারিতা সিস্টেম.ডেটটাইমের তুলনায় ভয়াবহ। এখানে এ সম্পর্কে প্রচুর তথ্য রয়েছে: জাভা তারিখ এবং সময় এপিআই-তে সমস্যা কী?

এর মধ্যে কয়েকটি সি # বিকাশকারীদের জন্য গোটচাস হতে পারে:

  • জাভা ডেট ক্লাসটি পরিবর্তনযোগ্য যা প্রায় ফিরে আসা এবং পাসের তারিখগুলি বিপজ্জনক করে তুলতে পারে।
  • Java.util.Date নির্মাণকারীদের বেশিরভাগই অবচিত হয়ে গেছে। কেবল একটি তারিখ ইনস্ট্যান্ট করা বেশ ভার্জোজ is
  • ওয়েব পরিষেবাদিগুলির সাথে ভালভাবে আন্তঃসংযোগ করতে আমি java.util.Date ক্লাসটি কখনই অর্জন করতে পারি নি। বেশিরভাগ ক্ষেত্রে উভয় পক্ষের তারিখগুলি বুনোভাবে অন্য কিছু তারিখ এবং সময়গুলিতে রূপান্তরিত হয়েছিল।

অতিরিক্তভাবে, জিএসি এবং দৃ strongly়-নামযুক্ত সমাবেশগুলি যে সমস্ত বৈশিষ্ট্য নিয়ে আসে তা জাভাতে নেই Java বাহ্যিক লাইব্রেরিগুলিকে লিঙ্ক / রেফারেন্স করার সময় কী ভুল হতে পারে তার জন্য জার হেল শব্দটি।

প্যাকেজিং / স্থাপনার বিষয় হিসাবে:

  • EAR / WAR ফর্ম্যাটে ওয়েব অ্যাপ্লিকেশনগুলির প্যাকেজিং করা কঠিন হতে পারে যা বাস্তবে বেশ কয়েকটি পৃথক অ্যাপ্লিকেশন সার্ভারে (গ্লাসফিশ, ওয়েবসাইটস্পিয়ার ইত্যাদি) ইনস্টল করে চালিত হয়।
  • আপনার জাভা অ্যাপটিকে উইন্ডোজ পরিষেবা হিসাবে স্থাপন করা সি # এর চেয়ে অনেক বেশি প্রচেষ্টা গ্রহণ করে effort আমি এর জন্য বেশিরভাগ সুপারিশ পেয়েছি একটি নিরবিচ্ছিন্ন তৃতীয় পক্ষের লাইব্রেরি জড়িত
  • অ্যাপ্লিকেশন কনফিগারেশন আপনার প্রকল্পের একটি app.config ফাইল অন্তর্ভুক্ত হিসাবে প্রায় সহজ নয়। এখানে java.util.Properties ক্লাস রয়েছে তবে এটি আপনার মতো শক্তিশালী নয় এবং আপনার .properties ফাইলটি ফেলে দেওয়ার জন্য সঠিক স্থানটি খুঁজে পাওয়া বিভ্রান্তিকর হতে পারে

1

জাভাতে কোনও প্রতিনিধি নেই। সুতরাং, প্রতিনিধিরা টেবিলে যে সমস্ত সুবিধা নিয়ে আসে সেগুলি বাদ দিয়ে ইভেন্টগুলিও আলাদাভাবে কাজ করে। কেবল কোনও পদ্ধতি হুক করার পরিবর্তে আপনাকে একটি ইন্টারফেস প্রয়োগ করতে হবে এবং তার পরিবর্তে এটি সংযুক্ত করতে হবে।


1

আমার সাক্ষাত্কারের তালিকায় এটি একটি বিষয় যা বি / সি ঝাঁপিয়ে পড়ে তা হ'ল পদ্ধতি গোপনের জন্য জাভাতে কোনও "নতুন" কীওয়ার্ড অ্যানালগ নেই এবং "আপনার এখানে নতুন রাখা উচিত" কোনও সংকলক সতর্কতা থাকতে পারে না। আপনি যখন ওভাররাইড করতে চেয়েছিলেন তখন দুর্ঘটনাজনিত পদ্ধতি লুকিয়ে রাখা বাগের দিকে নিয়ে যায়।

(উদাহরণস্বরূপ সম্পাদনা করুন) উদাহরণ, বি এ থেকে উদ্ভূত হয়েছে (সি # সিনট্যাক্স ব্যবহার করে, জাভা একইভাবে আচরণ করে যা আমি শেষবার দেখেছি তবে সংকলক সতর্কতা প্রেরণ করে না)। এ এর ফু কি ডাকছে, নাকি বি এর ফু? (এ'স ডাকা হবে, সম্ভবত বি কে কার্যকর করেছিলেন এমন দেবকেই অবাক করে দিন)।

class A 
{
public void foo() {code}
}

class B:A
{
public void foo() {code}
}    

void SomeMethod()
{
A a = new B(); // variable's type is declared as A, but assigned to an object of B.
a.foo();
}

4
আপনি কীভাবে দুর্ঘটনাক্রমে জাভাতে একটি উদাহরণ পদ্ধতি লুকিয়ে রাখবেন? এগুলি হয় চূড়ান্ত - সুতরাং newউদ্দেশ্যমূলকভাবে আড়াল করার জন্য কোনও ওভাররাইড বা পদ্ধতি নেই - বা অ-চূড়ান্ত তাই আড়াল না করে ওভাররাইড করা।
পিট কিরখাম

যুক্ত উদাহরণ। আমি এটি জাভাতে কিছুক্ষণের জন্য পরীক্ষা করিনি, তবে সাক্ষাত্কারের প্রশ্নটি মূলত আমার আগের সংস্থা থেকে জাভা গ্রুপ থেকে এসেছে। সি # তে, সংকলক সতর্কতার অর্থ সাধারণত লোকের নাম পরিবর্তন হয়। আমি স্বীকার করি এটি বেশ অদ্ভুত ঘটনা, তবে ওপি মনে হয় যে ল্যাংস স্যুইচ করার সময় সমস্যাগুলি খুঁজে পাওয়া শক্তিশালী হতে পারে এমন জিনিসগুলি চাইছিল।
জিম এল

4
এখানে পার্থক্যটি হ'ল জাভাতে সমস্ত পদ্ধতি ভার্চুয়াল (সুতরাং জাভাতে এটি বিফু () হবে যা জাভা সর্বদা গতিশীল পদ্ধতি প্রেরণ করে), যখন সি # পদ্ধতিতে ডিফল্টরূপে ভার্চুয়াল হয় না (এবং এ। () বলা হবে)। জাভা জন্য অনেক কোডিং শৈলীর চেকার আপনাকে বলবে যে বি @ ওভাররাইড টীকাটি ব্যবহার করা উচিত।
উইলিয়াম বিলিংসলে

1

জাভাতে লিনকিউ নেই এবং ডকুমেন্টেশন নরক। জাভার ইউজার ইন্টারফেসগুলি বিকাশের জন্য ব্যথা, আপনি মাইক্রোসফ্ট আমাদের দেওয়া সমস্ত ভাল জিনিস (WPF, WCF, ইত্যাদি ...) হারাতে পারেন তবে ব্যবহারের পক্ষে কঠোরভাবে ব্যবহার করুন, খুব সহজেই "APIs" নথিভুক্ত হন।


0

সি # থেকে আসা জাভা নিয়ে কাজ করার সময় আমি যে সমস্যার মধ্যে দিয়েছি তা হ'ল ব্যতিক্রম এবং ত্রুটিগুলি আলাদা।

উদাহরণস্বরূপ আপনি ক্যাচ (ব্যতিক্রম ই) ব্যবহার করে কোনও আউট মেমরি ত্রুটি ধরতে পারবেন না।

আরো বিস্তারিত জানার জন্য নিম্নলিখিত দেখুন:

কেন-জাভা-ল্যাং-আউটফ্মেমরিরির-জাভা-হিপ-স্পেস-ধরা পড়ে না


এটা ইচ্ছাকৃতভাবে যে ভাবে এটা সংক্রামক থেকে আবেদন প্রোগ্রামার নিরুৎসাহিত করতে ডিজাইন
finnw

হ্যাঁ আমি নিশ্চিত যে এটি ছিল, তবে সি # দিক থেকে এসেছেন, যেখানে আপনাকে উদ্বিগ্ন হওয়াগুলি সম্পর্কে উদ্বিগ্ন হওয়া সবই আমাকে লুপের জন্য ফেলে দিয়েছে :)
ক্রিস পার্সেশেটি

0

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


0

আপনার শিরোনামে আপনার প্রত্যক্ষ প্রশ্নের উত্তরে:

"সি # বিকাশকারীরা জাভা শিখছেন, কেউ যেটিকে অগ্রাহ্য করতে পারে তার মধ্যে সবচেয়ে বড় পার্থক্য কী?"

উত্তর: উইন্ডোজটিতে জাভা যথেষ্ট ধীর।


4
আমি ওপেনসুএসজি 64 বিট এবং উইন্ডোজ 7 64 বিট চালাচ্ছি এবং উইন্ডোজে এক্সিলিপ আইডিই দ্রুত ("মনে হচ্ছে")। আপনার উত্তরটি কি ব্যক্তিগত পর্যবেক্ষণের ভিত্তিতে বা সত্যিকারের মানদণ্ডের ভিত্তিতে?
জিম শোবার্ট

0

যখন আমি জাভাতে স্যুইচ করি তখন আমার কাছে সবচেয়ে হ্রাসকারী পার্থক্য এটি স্ট্রিংয়ের ঘোষণা।

সি # তে stringজাভাতে (বেশিরভাগ সময়)String

এটি বেশ সহজ, তবে আমার বিশ্বাস করুন, যখন আপনার অভ্যাস sনা থাকার কারণে আপনি এতটা সময় হারাতে পারেন S!

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