- C++ Vs జావా 8 మధ్య కీలక తేడాలు ఇప్పుడు మనం ఈ ట్యుటోరియల్లో కొనసాగుతుండగా, C++ Vs జావా మధ్య కొన్ని కీలక వ్యత్యాసాలను చర్చిద్దాం. #1) ప్లాట్ఫారమ్ స్వాతంత్ర్యం C++ Java C++ అనేది ప్లాట్ఫారమ్ ఆధారిత భాష. ది C++లో వ్రాసిన సోర్స్ కోడ్ ప్రతి ప్లాట్ఫారమ్లో కంపైల్ చేయబడాలి. Java ప్లాట్ఫారమ్-స్వతంత్రం. ఒకసారి బైట్ కోడ్లోకి కంపైల్ చేయబడితే, అది ఏ ప్లాట్ఫారమ్లోనైనా అమలు చేయబడుతుంది. #2) కంపైలర్ మరియుసేకరణ. 10 పోర్టబిలిటీ C++ కోడ్ పోర్టబుల్ కాదు. Java పోర్టబుల్. 11 రకం సెమాంటిక్స్ ఆదిమ మరియు ఆబ్జెక్ట్ రకాల మధ్య స్థిరంగా ఉంటుంది. స్థిరంగా లేదు. 12 ఇన్పుట్ మెకానిజం Cin మరియు Cout I/O కోసం ఉపయోగించబడ్డాయి. System.in మరియు System.out.println 13 యాక్సెస్ కంట్రోల్ మరియు ఆబ్జెక్ట్ ప్రొటెక్షన్ ఒక సౌకర్యవంతమైన ఆబ్జెక్ట్ మోడల్ మరియు స్థిరమైన రక్షణ. ఆబ్జెక్ట్ మోడల్ గజిబిజిగా ఉంది మరియు ఎన్క్యాప్సులేషన్ బలహీనంగా ఉంది. 10> 14 మెమరీ మేనేజ్మెంట్ మాన్యువల్ సిస్టమ్-నియంత్రిత. 15 బహుళ వారసత్వం ప్రస్తుతం హాజరుకాదు 16 గోటో స్టేట్మెంట్ గోటో స్టేట్మెంట్కు మద్దతు ఇస్తుంది. గోటో స్టేట్మెంట్కు మద్దతు లేదు. 17 స్కోప్ రిజల్యూషన్ ఆపరేటర్ ప్రస్తుతం హాజరుకాదు 18 ప్రయత్నించండి/క్యాచ్ బ్లాక్ ట్రై/క్యాచ్ బ్లాక్ని మినహాయించవచ్చు. కోడ్ మినహాయింపును అందించాలని అనుకుంటే మినహాయించలేరు. 19 ఓవర్లోడింగ్ ఆపరేటర్ మరియు మెథడ్ ఓవర్లోడింగ్కు మద్దతు ఇస్తుంది. ఆపరేటర్ ఓవర్లోడింగ్కు మద్దతు ఇవ్వదు. 20 వర్చువల్ కీవర్డ్ ఓవర్రైడింగ్ని సులభతరం చేసే వర్చువల్ కీవర్డ్కి మద్దతు ఇస్తుంది. వర్చువల్ కీవర్డ్ లేదు, అన్ని స్టాటిక్ పద్ధతులు డిఫాల్ట్ వర్చువల్గా ఉంటాయి మరియు ఇవి కూడా కావచ్చు భర్తీ చేయబడింది. 21 రన్టైమ్ లోపంగుర్తింపు ప్రోగ్రామర్కు వదిలివేయబడింది. సిస్టమ్ బాధ్యత 22 భాషా మద్దతు ప్రధానంగా సిస్టమ్ కోసం ఉపయోగించబడుతుంది. ప్రోగ్రామింగ్. ప్రధానంగా అప్లికేషన్ ప్రోగ్రామింగ్ కోసం ఉపయోగించబడుతుంది. 23 డేటా మరియు విధులు డేటా మరియు ఫంక్షన్ క్లాస్ వెలుపల ఉన్నాయి. గ్లోబల్ మరియు నేమ్స్పేస్ స్కోప్లకు మద్దతు ఉంది. డేటా మరియు విధులు తరగతి లోపల మాత్రమే ఉన్నాయి, ప్యాకేజీ స్కోప్ అందుబాటులో ఉంది. 24 పాయింటర్లు పాయింటర్లకు మద్దతు ఇస్తుంది. పాయింటర్లకు పరిమిత మద్దతు మాత్రమే. 25 నిర్మాణాలు & యూనియన్లు మద్దతు ఉంది మద్దతు లేదు 26 ఆబ్జెక్ట్ మేనేజ్మెంట్ కొత్త మరియు తొలగింపుతో మాన్యువల్ ఆబ్జెక్ట్ మేనేజ్మెంట్ . చెత్త సేకరణను ఉపయోగించి ఆటోమేటిక్ ఆబ్జెక్ట్ మేనేజ్మెంట్. 27 పారామీటర్ పాసింగ్ విలువ ద్వారా కాల్కు మరియు సూచన ద్వారా కాల్కు మద్దతు ఇస్తుంది. విలువ ఆధారంగా మాత్రమే కాల్కి మద్దతు ఇస్తుంది. 28 థ్రెడ్ సపోర్ట్ థ్రెడ్ సపోర్ట్ అంత బలంగా లేదు, ఇది దీని మీద ఆధారపడి ఉంటుంది మూడవ పక్షం. చాలా బలమైన థ్రెడ్ మద్దతు. 29 హార్డ్వేర్ హార్డ్వేర్కు దగ్గరగా ఉంది. హార్డ్వేర్తో అంతగా ఇంటరాక్టివ్ కాదు. 30 డాక్యుమెంటేషన్ వ్యాఖ్య డాక్యుమెంటేషన్ వ్యాఖ్యకు మద్దతు ఇవ్వదు. డాక్యుమెంటేషన్ వ్యాఖ్యకు మద్దతు ఇస్తుంది( /**…*/) జావా సోర్స్ కోడ్ కోసం డాక్యుమెంటేషన్ని సృష్టిస్తుంది. ఇప్పటివరకు మేము కీలకమైన తేడాలను చూశాము.C++ మరియు Java మధ్య వివరంగా. ప్రోగ్రామింగ్ ప్రపంచంలో C++ మరియు జావాకు సంబంధించి తరచుగా అడిగే కొన్ని ప్రశ్నలకు రాబోయే విభాగం సమాధానం ఇస్తుంది. C++ మరియు Javaలో తరచుగా అడిగే ప్రశ్నలు Q #1) ఏది మెరుగైన C++ లేదా Java? సమాధానం: సరే, ఏది మంచిదో మేము ఖచ్చితంగా చెప్పలేము. C++ మరియు Java రెండూ వాటి స్వంత మెరిట్లు మరియు డీమెరిట్లను కలిగి ఉన్నాయి. సిస్టమ్ ప్రోగ్రామింగ్కు C++ ఎక్కువగా ఉన్నప్పటికీ, మనం దీన్ని జావాతో చేయలేము. కానీ జావా వెబ్, డెస్క్టాప్ మొదలైన అప్లికేషన్లలో రాణిస్తుంది. వాస్తవానికి, C++ సిస్టమ్ ప్రోగ్రామింగ్ నుండి ఎంటర్ప్రైజ్ నుండి గేమింగ్ వరకు ఏదైనా చేయగలదు. జావా వెబ్ లేదా ఎంటర్ప్రైజ్ను మరింత చేయగలదు. కొన్ని తక్కువ-స్థాయి ప్రోగ్రామింగ్ అప్లికేషన్లు లేదా గేమింగ్ మొదలైన కొన్ని అప్లికేషన్లు ఉన్నాయి. వీటిని జావా డెవలప్ చేయడానికి వదిలివేయలేరు. అందువల్ల ఇది పూర్తిగా మనం ఏ అప్లికేషన్ను అభివృద్ధి చేస్తున్నామో దానిపై ఆధారపడి ఉంటుంది. రెండు భాషల లాభాలు మరియు నష్టాలను ముందుగానే విశ్లేషించడం మరియు మేము అభివృద్ధి చేస్తున్న అప్లికేషన్ కోసం వాటి ప్రత్యేకతను ధృవీకరించడం ఉత్తమ మార్గం, ఆపై ఏది ఉత్తమమో నిర్ధారించడం. Q #2) C++ మరిన్ని జావా కంటే శక్తివంతమైనది? సమాధానం: మళ్లీ ఇది ఒక గమ్మత్తైన ప్రశ్న! వాక్యనిర్మాణం లేదా భాష నేర్చుకోవడం ఎంత సులభమో విషయానికి వస్తే, జావా స్కోర్ చేస్తుంది. సిస్టమ్ ప్రోగ్రామింగ్ మరియు/లేదా ఇతర తక్కువ-స్థాయి అప్లికేషన్ల విషయానికి వస్తే, C++ మరింత శక్తివంతమైనది. కొంతమంది వ్యక్తులు స్వయంచాలక GC సేకరణలను కలిగి ఉంటారని, పాయింటర్లు లేవని, మల్టిపుల్ లేదని వాదించవచ్చు.వారసత్వాలు జావాను మరింత శక్తివంతం చేస్తాయి. కానీ వేగం విషయానికి వస్తే, C++ శక్తివంతమైనది. అలాగే మనం రాష్ట్రాన్ని నిల్వ చేయాల్సిన గేమింగ్ వంటి అప్లికేషన్లలో, ఆటోమేటిక్ గార్బేజ్ సేకరణ పనులను నాశనం చేస్తుంది. కాబట్టి ఇక్కడ C++ స్పష్టంగా శక్తివంతమైనది. Q #3) C లేదా C++ తెలియకుండా మనం జావా నేర్చుకోవచ్చా? సమాధానం: అవును, ఖచ్చితంగా! మనం ప్రోగ్రామింగ్ మరియు ఆబ్జెక్ట్-ఓరియెంటెడ్ ప్రోగ్రామింగ్ కాన్సెప్ట్ల ప్రాథమికాలను తెలుసుకున్న తర్వాత, మనం జావా నేర్చుకోవడం ప్రారంభించవచ్చు. Q #4) C++ జావా లాగా ఉందా? సమాధానం: కొన్ని మార్గాల్లో, అవును కానీ కొన్ని మార్గాల్లో, కాదు. ఉదాహరణకు, C++ మరియు జావా రెండూ ఆబ్జెక్ట్-ఓరియెంటెడ్ ప్రోగ్రామింగ్ లాంగ్వేజ్లు. అప్లికేషన్ అభివృద్ధికి వాటిని ఉపయోగించవచ్చు. అవి ఒకే విధమైన వాక్యనిర్మాణాన్ని కలిగి ఉంటాయి. కానీ మెమరీ నిర్వహణ, వారసత్వం, పాలిమార్ఫిజం మొదలైన ఇతర సందర్భాల్లో, C++ మరియు జావా పూర్తిగా భిన్నంగా ఉంటాయి. అదేవిధంగా, ఆదిమ డేటా రకాలు, ఆబ్జెక్ట్ హ్యాండ్లింగ్, పాయింటర్లు మొదలైన వాటి విషయానికి వస్తే. రెండు భాషలు వేర్వేరుగా ఉంటాయి. Q #5) జావా C++లో వ్రాయబడిందా? సమాధానం: జావా సన్ మరియు IBM ద్వారా జావా వర్చువల్ మెషీన్ (JVM) C++లో వ్రాయబడింది. జావా లైబ్రరీలు జావాలో ఉన్నాయి. కొన్ని ఇతర JVMలు C. ముగింపు C++ మరియు Java రెండూ ఆబ్జెక్ట్-ఓరియెంటెడ్ ప్రోగ్రామింగ్ లాంగ్వేజ్లు. అదనంగా, C++ ఒక విధానపరమైన భాష కూడా. వారసత్వం, పాలిమార్ఫిజం, పాయింటర్లు, మెమరీ మేనేజ్మెంట్ మొదలైన కొన్ని లక్షణాలు ఉన్నాయి, వీటిలో రెండూ ఉన్నాయిభాషలు పూర్తిగా ఒకదానితో ఒకటి విభిన్నంగా ఉంటాయి. హార్డ్వేర్తో సన్నిహితంగా ఉండటం, మెరుగైన ఆబ్జెక్ట్ మేనేజ్మెంట్, వేగం, పనితీరు మొదలైన కొన్ని లక్షణాలు C++ ఉన్నాయి. ఇది జావా కంటే మరింత శక్తివంతమైనదిగా చేస్తుంది మరియు తద్వారా C++ని ఉపయోగించడానికి డెవలపర్లను ప్రేరేపిస్తుంది. తక్కువ-స్థాయి ప్రోగ్రామింగ్, హై-స్పీడ్ గేమింగ్ అప్లికేషన్లు, సిస్టమ్ ప్రోగ్రామింగ్ మొదలైన వాటి కోసం. అదే విధంగా, జావా యొక్క సులభమైన సింటాక్స్, ఆటోమేటిక్ గార్బేజ్ సేకరణ, పాయింటర్లు లేకపోవడం, టెంప్లేట్లు మొదలైనవి జావాను ఇష్టమైనవిగా చేస్తాయి. వెబ్ ఆధారిత అనువర్తనాల కోసం. ఇంటర్ప్రెటర్ C++ Java C++ అనేది సంకలనం చేయబడిన భాష. మూలం C++లో వ్రాయబడిన ప్రోగ్రామ్ ఒక ఆబ్జెక్ట్ కోడ్గా కంపైల్ చేయబడింది, అది అవుట్పుట్ను ఉత్పత్తి చేయడానికి అమలు చేయబడుతుంది. జావా అనేది కంపైల్ చేయబడినది అలాగే అన్వయించబడినది భాష. జావా సోర్స్ కోడ్ యొక్క కంపైల్డ్ అవుట్పుట్ ప్లాట్ఫారమ్-ఇండిపెండెంట్ అయిన బైట్ కోడ్. #3) పోర్టబిలిటీ C++ Java C++ కోడ్ పోర్టబుల్ కాదు. దీని కోసం కంపైల్ చేయాలి ప్రతి ప్లాట్ఫారమ్. జావా, అయితే, కోడ్ని బైట్ కోడ్గా అనువదిస్తుంది. ఈ బైట్ కోడ్ పోర్టబుల్ మరియు ఏ ప్లాట్ఫారమ్లోనైనా అమలు చేయవచ్చు. #4) మెమరీ నిర్వహణ C++ Java C++లో మెమరీ నిర్వహణ మాన్యువల్. మేము కొత్త/తొలగించు ఆపరేటర్లను ఉపయోగించి మెమరీని మాన్యువల్గా కేటాయించాలి/డీలాకేట్ చేయాలి. Javaలో మెమరీ నిర్వహణ సిస్టమ్-నియంత్రణలో ఉంటుంది. #5) బహుళ వారసత్వం C++ జావా C++ ఒకే మరియు బహుళ వారసత్వాలతో సహా వివిధ రకాల వారసత్వాలకు మద్దతు ఇస్తుంది. బహుళ వారసత్వాల నుండి సమస్యలు తలెత్తినప్పటికీ, సమస్యలను పరిష్కరించడానికి C++ వర్చువల్ కీవర్డ్ని ఉపయోగిస్తుంది. జావా, ఒకే వారసత్వానికి మాత్రమే మద్దతు ఇస్తుంది. జావాలోని ఇంటర్ఫేస్లను ఉపయోగించి బహుళ వారసత్వం యొక్క ప్రభావాలను సాధించవచ్చు. #6)ఓవర్లోడింగ్ C++ Java C++లో, పద్ధతులు మరియు ఆపరేటర్లు ఓవర్లోడ్ చేయబడవచ్చు. ఇది స్టాటిక్ పాలిమార్ఫిజం. జావాలో, పద్ధతి ఓవర్లోడింగ్ మాత్రమే అనుమతించబడుతుంది. ఇది ఆపరేటర్ ఓవర్లోడింగ్ను అనుమతించదు. #7) వర్చువల్ కీవర్డ్ C++ Java డైనమిక్ పాలిమార్ఫిజంలో భాగంగా , C++లో, ఉత్పన్నమైన క్లాస్లో ఓవర్రైడ్ చేయగల ఫంక్షన్ను సూచించడానికి వర్చువల్ కీవర్డ్ ఫంక్షన్తో ఉపయోగించబడుతుంది. ఈ విధంగా మనం పాలిమార్ఫిజం సాధించవచ్చు. జావాలో, వర్చువల్ కీవర్డ్ లేదు. అయినప్పటికీ, జావాలో, డిఫాల్ట్గా అన్ని నాన్-స్టాటిక్ పద్ధతులు భర్తీ చేయబడతాయి. లేదా సరళంగా చెప్పాలంటే, జావాలోని అన్ని నాన్-స్టాటిక్ పద్ధతులు డిఫాల్ట్గా వర్చువల్. #8) పాయింటర్లు C++ Java C++ అన్నీ పాయింటర్ల గురించి. ఇంతకుముందు ట్యుటోరియల్లలో చూసినట్లుగా, C++ పాయింటర్లకు బలమైన మద్దతును కలిగి ఉంది మరియు మేము పాయింటర్లను ఉపయోగించి చాలా ఉపయోగకరమైన ప్రోగ్రామింగ్లను చేయవచ్చు. జావా పాయింటర్లకు పరిమిత మద్దతును కలిగి ఉంది. ప్రారంభంలో, జావా పూర్తిగా పాయింటర్లు లేకుండా ఉంది కానీ తర్వాత సంస్కరణలు పాయింటర్లకు పరిమిత మద్దతును అందించడం ప్రారంభించాయి. మేము C++లో ఉపయోగించగలిగేంత తీరికగా జావాలో పాయింటర్లను ఉపయోగించలేము. #9) డాక్యుమెంటేషన్ వ్యాఖ్య C++ Java C++ డాక్యుమెంటేషన్ వ్యాఖ్యలకు మద్దతు లేదు. జావా డాక్యుమెంటేషన్ కోసం అంతర్నిర్మిత మద్దతును కలిగి ఉంది.వ్యాఖ్యలు (/**...*/). ఈ విధంగా Java సోర్స్ ఫైల్లు వాటి స్వంత డాక్యుమెంటేషన్ను కలిగి ఉంటాయి. #10) థ్రెడ్ మద్దతు C++ Java C++కి అంతర్నిర్మిత థ్రెడ్ మద్దతు లేదు. ఇది ఎక్కువగా థర్డ్-పార్టీ థ్రెడింగ్ లైబ్రరీలపై ఆధారపడుతుంది. జావా అనేది క్లాస్ “థ్రెడ్”తో ఇన్-బిల్ట్ థ్రెడ్ సపోర్ట్. మేము థ్రెడ్ క్లాస్ను వారసత్వంగా పొంది, ఆపై రన్ పద్ధతిని భర్తీ చేయవచ్చు. మరికొన్ని తేడాలు… #11) రూట్ సోపానక్రమం C++ అనేది విధానపరమైన మరియు ఆబ్జెక్ట్-ఓరియెంటెడ్ ప్రోగ్రామింగ్ లాంగ్వేజ్. అందువల్ల ఇది ఏ నిర్దిష్ట రూట్ సోపానక్రమాన్ని అనుసరించదు. జావా అనేది స్వచ్ఛమైన ఆబ్జెక్ట్-ఓరియెంటెడ్ ప్రోగ్రామింగ్ లాంగ్వేజ్ మరియు ఒకే రూట్ సోపానక్రమాన్ని కలిగి ఉంది. #12 ) సోర్స్ కోడ్ & క్లాస్ రిలేషన్షిప్ C++లో, సోర్స్ కోడ్ మరియు ఫైల్ పేరు రెండింటికీ ఎలాంటి సంబంధం లేదు. అంటే C++ ప్రోగ్రామ్లో మనకు అనేక తరగతులు ఉండవచ్చు మరియు ఫైల్ పేరు ఏదైనా కావచ్చు. ఇది తరగతి పేర్లతో సమానంగా ఉండవలసిన అవసరం లేదు. జావాలో, సోర్స్ కోడ్ క్లాస్ మరియు ఫైల్ పేరు మధ్య సన్నిహిత సంబంధం ఉంది. సోర్స్ కోడ్ మరియు ఫైల్ పేరును కలిగి ఉన్న తరగతి ఒకేలా ఉండాలి. ఉదాహరణకు , మనకు జావాలో జీతం అనే క్లాస్ ఉంటే, అప్పుడు ఈ క్లాస్ కోడ్ ఉన్న ఫైల్ పేరు “ pay.java”. #13 ) కాన్సెప్ట్ C++ ప్రోగ్రామ్ల వెనుక ఉన్న కాన్సెప్ట్ ఒకసారి వ్రాసి C++ కానందున ఎక్కడైనా కంపైల్ చేయండిప్లాట్ఫారమ్-ఇండిపెండెంట్. దీనికి విరుద్ధంగా, జావా ప్రోగ్రామ్ల కోసం ఇది ఒకసారి వ్రాయబడుతుంది, జావా కంపైలర్ ద్వారా రూపొందించబడిన బైట్ కోడ్ ప్లాట్ఫారమ్-ఇండిపెండెంట్ మరియు ఏ మెషీన్లోనైనా అమలు చేయగలదు కాబట్టి ప్రతిచోటా మరియు ఎక్కడైనా అమలు చేయండి. #14 ) ఇతర భాషలతో అనుకూలత C++ అనేది C పై నిర్మించబడింది. C++ భాష చాలా ఇతర ఉన్నత-స్థాయి భాషలకు అనుకూలంగా ఉంటుంది. జావా ఇతర భాషలకు అనుకూలంగా లేదు. జావా C మరియు C++ ద్వారా ప్రేరణ పొందింది కాబట్టి, దాని వాక్యనిర్మాణం ఈ భాషల మాదిరిగానే ఉంటుంది. #15 ) ప్రోగ్రామింగ్ లాంగ్వేజ్ రకం C++ విధానపరమైన మరియు ఆబ్జెక్ట్-ఓరియెంటెడ్ ప్రోగ్రామింగ్ లాంగ్వేజ్ రెండూ. అందువల్ల, C++ విధానపరమైన భాషలకు ప్రత్యేకమైన లక్షణాలను అలాగే ఆబ్జెక్ట్-ఓరియెంటెడ్ ప్రోగ్రామింగ్ లాంగ్వేజ్ లక్షణాలను కలిగి ఉంది. జావా అనేది పూర్తిగా ఆబ్జెక్ట్-ఓరియెంటెడ్ ప్రోగ్రామింగ్ లాంగ్వేజ్. #16 ) లైబ్రరీ ఇంటర్ఫేస్ C++ స్థానిక సిస్టమ్ లైబ్రరీలకు నేరుగా కాల్లను అనుమతిస్తుంది. అందువల్ల ఇది సిస్టమ్-స్థాయి ప్రోగ్రామింగ్కు మరింత అనుకూలంగా ఉంటుంది. జావాకు దాని స్థానిక లైబ్రరీలకు ప్రత్యక్ష కాల్ మద్దతు లేదు. మేము జావా నేటివ్ ఇంటర్ఫేస్ లేదా జావా నేటివ్ యాక్సెస్ ద్వారా లైబ్రరీలకు కాల్ చేయవచ్చు. #17 ) విశిష్ట లక్షణాలు విధానపరమైన భాషలకు సంబంధించిన ఫీచర్లు మరియు ఆబ్జెక్ట్-ఓరియెంటెడ్ లాంగ్వేజ్ అనేది C++ యొక్క ప్రత్యేక లక్షణాలు. ఆటోమేటిక్ గార్బేజ్ సేకరణ అనేది జావా యొక్క ప్రత్యేక లక్షణం. ఇంతలో, Java డిస్ట్రక్టర్లకు మద్దతు ఇవ్వదు. #18 ) రకంసెమాంటిక్స్ C++ కోసం టైప్ సెమాంటిక్స్ విషయానికొస్తే, ఆదిమ మరియు ఆబ్జెక్ట్ రకాలు స్థిరంగా ఉంటాయి. కానీ జావా కోసం, ఆదిమ మరియు ఆబ్జెక్ట్ రకాల మధ్య స్థిరత్వం లేదు. #19 ) ఇన్పుట్ మెకానిజం C++ వరుసగా '>>' మరియు '' ఆపరేటర్లతో పాటు సిన్ మరియు కౌట్లను ఉపయోగిస్తుంది డేటాను చదవండి మరియు వ్రాయండి. జావాలో, సిస్టమ్ క్లాస్ ఇన్పుట్-అవుట్పుట్ కోసం ఉపయోగించబడుతుంది. ఇన్పుట్ను చదవడానికి, System.in ఉపయోగించబడుతుంది, ఇది ఒక సమయంలో ఒక బైట్ని చదివేస్తుంది. అవుట్పుట్ను వ్రాయడానికి Construct System.out ఉపయోగించబడుతుంది. #20) యాక్సెస్ కంట్రోల్ మరియు ఆబ్జెక్ట్ ప్రొటెక్షన్ C++ కోసం సౌకర్యవంతమైన మోడల్ ఉంది యాక్సెస్ స్పెసిఫైయర్లను కలిగి ఉన్న ఆబ్జెక్ట్లు యాక్సెస్ని నియంత్రిస్తాయి మరియు బలమైన ఎన్క్యాప్సులేషన్ రక్షణను నిర్ధారిస్తుంది. జావా బలహీనమైన ఎన్క్యాప్సులేషన్తో తులనాత్మకంగా గజిబిజిగా ఉండే ఆబ్జెక్ట్ మోడల్ను కలిగి ఉంది. #21) గోటో స్టేట్మెంట్ C++ గోటో స్టేట్మెంట్కు మద్దతిస్తుంది, అయితే ప్రోగ్రామ్లో దీనిని ఉపయోగించడం వల్ల కలిగే పరిణామాలను నివారించడానికి దాని వినియోగాన్ని తగ్గించాలి. జావా గోటో స్టేట్మెంట్కు మద్దతును అందించదు. #22 ) స్కోప్ రిజల్యూషన్ ఆపరేటర్ గ్లోబల్ వేరియబుల్స్ని యాక్సెస్ చేయడానికి మరియు క్లాస్ వెలుపల పద్ధతులను నిర్వచించడానికి స్కోప్ రిజల్యూషన్ ఆపరేటర్ ఉపయోగించబడుతుంది. C++ గ్లోబల్ వేరియబుల్స్ని యాక్సెస్ చేయడానికి స్కోప్ రిజల్యూషన్ ఆపరేటర్ని ఉపయోగిస్తుంది. ఇది తరగతి వెలుపల ఫంక్షన్లను నిర్వచించడానికి మరియు స్కోప్ రిజల్యూషన్ ఆపరేటర్ని ఉపయోగించి వాటిని యాక్సెస్ చేయడానికి కూడా అనుమతిస్తుంది. దీనికి విరుద్ధంగా,జావా స్కోప్ రిజల్యూషన్ ఆపరేటర్కు మద్దతు ఇవ్వదు. వెలుపల విధులను నిర్వచించడాన్ని కూడా జావా అనుమతించదు. మెయిన్ ఫంక్షన్తో సహా ప్రోగ్రామ్కు సంబంధించిన ప్రతిదీ తరగతి లోపల ఉండాలి. #23 ) బ్లాక్ని ప్రయత్నించండి/క్యాచ్ చేయండి C++లో, కోడ్ మినహాయింపును విసిరివేయవచ్చని మాకు తెలిసినప్పటికీ మేము ప్రయత్నించండి/క్యాచ్ బ్లాక్ను మినహాయించగలము. అయితే, జావాలో, కోడ్ మినహాయింపును విసిరివేస్తుందని మేము ఖచ్చితంగా అనుకుంటే, మేము ఈ కోడ్ని కింద చేర్చాలి. ప్రయత్నించండి/క్యాచ్ బ్లాక్. Javaలో డిస్ట్రక్టర్లకు మద్దతివ్వనందున మినహాయింపులు విభిన్నంగా ఉంటాయి. #24 ) రన్టైమ్ ఎర్రర్ డిటెక్షన్ C++లో రన్టైమ్ ఎర్రర్ డిటెక్షన్ ప్రోగ్రామర్ యొక్క బాధ్యత. జావాలో, రన్టైమ్ ఎర్రర్ డిటెక్షన్ సిస్టమ్ ద్వారా నియంత్రించబడుతుంది. #25 ) భాషా మద్దతు హార్డ్వేర్ మరియు సిస్టమ్ వనరులను యాక్సెస్ చేయడానికి అనుమతించే లైబ్రరీలకు దాని సామీప్యత కారణంగా, C++లో అభివృద్ధి చేయబడిన డేటాబేస్, ఎంటర్ప్రైజ్, గేమింగ్ మొదలైన వాటితో సహా అనేక రకాల అప్లికేషన్లను కలిగి ఉన్నప్పటికీ, సిస్టమ్ ప్రోగ్రామింగ్కు C++ మరింత అనుకూలంగా ఉంటుంది. #26 ) డేటా మరియు విధులు C++కి గ్లోబల్ స్కోప్ అలాగే నేమ్స్పేస్ స్కోప్ ఉంది. అందువల్ల డేటా మరియు ఫంక్షన్లు తరగతి వెలుపల కూడా ఉంటాయి. జావాలో, అన్ని డేటా మరియు ఫంక్షన్లు తరగతిలో ఉండాలి. గ్లోబల్ స్కోప్ లేదు, అయితే, ప్యాకేజీ స్కోప్ ఉండవచ్చు. #27 ) నిర్మాణాలు & యూనియన్లు నిర్మాణాలు మరియు యూనియన్లు డేటావిభిన్న డేటా రకాలతో సభ్యులను కలిగి ఉండే నిర్మాణాలు. C++ స్ట్రక్చర్లు మరియు యూనియన్లు రెండింటికీ మద్దతు ఇస్తుంది. జావా, అయితే, స్ట్రక్చర్లు లేదా యూనియన్లకు మద్దతు ఇవ్వదు. #28 ) ఆబ్జెక్ట్ మేనేజ్మెంట్ C++లో వస్తువులు మాన్యువల్గా నిర్వహించబడతాయి. వస్తువుల సృష్టి మరియు విధ్వంసం వరుసగా కొత్త మరియు తొలగింపు ఆపరేటర్లను ఉపయోగించి మానవీయంగా నిర్వహించబడతాయి. మేము క్లాస్ ఆబ్జెక్ట్ల కోసం కన్స్ట్రక్టర్లు మరియు డిస్ట్రక్టర్లను కూడా ఉపయోగిస్తాము. జావా కన్స్ట్రక్టర్లకు మద్దతు ఇచ్చినప్పటికీ డిస్ట్రక్టర్లకు మద్దతు ఇవ్వదు. వస్తువులను సేకరించడం మరియు నాశనం చేయడం కోసం జావా ఆటోమేటిక్ గార్బేజ్ సేకరణపై కూడా ఎక్కువగా ఆధారపడి ఉంది. #29 ) పారామీటర్ పాసింగ్ విలువ ద్వారా పాస్ చేయండి మరియు పాస్ బై రిఫరెన్స్ ఇవి ప్రోగ్రామింగ్లో ఉపయోగించే రెండు ముఖ్యమైన పారామీటర్ పాసింగ్ టెక్నిక్లు. Java మరియు C++ రెండూ ఈ రెండు టెక్నిక్లకు మద్దతిస్తాయి. #3 0) హార్డ్వేర్ C++ హార్డ్వేర్కు దగ్గరగా ఉంటుంది మరియు మానిప్యులేట్ చేయగల అనేక లైబ్రరీలను కలిగి ఉంది హార్డ్వేర్ వనరులు. హార్డ్వేర్కు దగ్గరగా ఉన్నందున, C++ తరచుగా సిస్టమ్ ప్రోగ్రామింగ్, గేమింగ్ అప్లికేషన్లు, ఆపరేటింగ్ సిస్టమ్ మరియు కంపైలర్ల కోసం ఉపయోగించబడుతుంది. జావా అనేది చాలా వరకు అప్లికేషన్ డెవలప్మెంట్ లాంగ్వేజ్ మరియు హార్డ్వేర్కు దగ్గరగా ఉండదు. పట్టిక ఆకృతి: C++ Vs Java మేము ఇప్పటికే చర్చించిన C++ మరియు Java మధ్య పోలిక యొక్క పట్టిక ప్రాతినిధ్యం క్రింద ఇవ్వబడింది. సంఖ్య. పోలికపరామితి C++ Java 1 ప్లాట్ఫారమ్ ఇండిపెండెన్స్ C++ ప్లాట్ఫారమ్ డిపెండెంట్. Java ప్లాట్ఫారమ్-స్వతంత్రం. 2 కంపైలర్ & ఇంటర్ప్రెటర్ C++ అనేది సంకలనం చేయబడిన భాష. జావా అనేది సంకలనం చేయబడిన భాష మరియు వివరణాత్మక భాష. 3 మూలం కోడ్ & తరగతి సంబంధం తరగతి పేర్లు మరియు ఫైల్ పేర్లతో కఠినమైన సంబంధం లేదు. తరగతి పేరు మరియు ఫైల్ పేరు మధ్య కఠినమైన సంబంధాన్ని అమలు చేస్తుంది. 4 కాన్సెప్ట్ ఎక్కడైనా కంపైల్ ఒకసారి వ్రాయండి. ఎక్కడైనా ఒకసారి రన్ చేయండి & ప్రతిచోటా. 5 ఇతర భాషలతో అనుకూలత ఆబ్జెక్ట్-ఓరియెంటెడ్ ఫీచర్లు మినహా Cకి అనుకూలంగా ఉంటుంది. సింటాక్స్ C/C++ నుండి తీసుకోబడింది. ఏ ఇతర భాషతోనూ వెనుకబడిన అనుకూలత లేదు. 6 ప్రోగ్రామింగ్ లాంగ్వేజ్ రకం విధానపరమైనది మరియు ఆబ్జెక్ట్-ఓరియెంటెడ్. ఆబ్జెక్ట్-ఓరియెంటెడ్. 7 లైబ్రరీ ఇంటర్ఫేస్ స్థానిక సిస్టమ్ లైబ్రరీలకు డైరెక్ట్ కాల్లను అనుమతిస్తుంది. జావా నేటివ్ ఇంటర్ఫేస్ మరియు జావా నేటివ్ ద్వారా మాత్రమే కాల్లు యాక్సెస్. 8 రూట్ సోపానక్రమం రూట్ సోపానక్రమం లేదు. సింగిల్ రూట్ సోపానక్రమాన్ని అనుసరిస్తుంది. 9 విశిష్ట ఫీచర్లు విధానపరమైన అలాగే ఆబ్జెక్ట్-ఓరియెంటెడ్ ఫీచర్లకు మద్దతు ఇస్తుంది. డిస్ట్రక్టర్లు లేవు. ఆటోమేటిక్ చెత్త
- C++ మరియు Javaలో తరచుగా అడిగే ప్రశ్నలు
- ముగింపు
- పట్టిక ఆకృతి: C++ Vs Java
ఈ లోతైన ట్యుటోరియల్ రెండు ఆబ్జెక్ట్-ఓరియెంటెడ్ ప్రోగ్రామింగ్ లాంగ్వేజెస్ C++ Vs జావా మధ్య కొన్ని కీలక వ్యత్యాసాలను వివరిస్తుంది:
C++ మరియు జావా రెండూ ఆబ్జెక్ట్-ఓరియెంటెడ్ ప్రోగ్రామింగ్ లాంగ్వేజ్లు. అయినప్పటికీ, రెండు భాషలు ఒకదానికొకటి అనేక విధాలుగా విభిన్నంగా ఉంటాయి.
C++ అనేది C నుండి తీసుకోబడింది మరియు విధానపరమైన మరియు ఆబ్జెక్ట్-ఓరియెంటెడ్ ప్రోగ్రామింగ్ లాంగ్వేజ్ల లక్షణాలను కలిగి ఉంది. C++ అప్లికేషన్ మరియు సిస్టమ్ డెవలప్మెంట్ కోసం రూపొందించబడింది.
జావా అనేది వర్చువల్ మెషీన్పై నిర్మించబడింది, ఇది చాలా సురక్షితమైనది మరియు ప్రకృతిలో అత్యంత పోర్టబుల్. ఇది ఇప్పటికే ఉన్న ప్లాట్ఫారమ్ యొక్క సంగ్రహణకు మద్దతును అందించడానికి సమగ్ర లైబ్రరీతో సమూహం చేయబడింది.
జావా ప్రధానంగా అప్లికేషన్ ప్రోగ్రామింగ్ కోసం రూపొందించబడింది మరియు ప్రింటింగ్ సిస్టమ్ల కోసం ఒక ఇంటర్ప్రెటర్ యొక్క కార్యాచరణను కలిగి ఉంది, ఇది తరువాత నెట్వర్క్ కంప్యూటింగ్గా అభివృద్ధి చేయబడింది.
సూచించబడిన చదవండి => అందరికీ C++ శిక్షణ గైడ్
C++ Vs జావా 8 మధ్య కీలక తేడాలు
ఇప్పుడు మనం ఈ
ట్యుటోరియల్లో కొనసాగుతుండగా, C++ Vs జావా మధ్య కొన్ని కీలక వ్యత్యాసాలను చర్చిద్దాం.
#1) ప్లాట్ఫారమ్ స్వాతంత్ర్యం
C++ | Java |
---|---|
C++ అనేది ప్లాట్ఫారమ్ ఆధారిత భాష. ది C++లో వ్రాసిన సోర్స్ కోడ్ ప్రతి ప్లాట్ఫారమ్లో కంపైల్ చేయబడాలి. | Java ప్లాట్ఫారమ్-స్వతంత్రం. ఒకసారి బైట్ కోడ్లోకి కంపైల్ చేయబడితే, అది ఏ ప్లాట్ఫారమ్లోనైనా అమలు చేయబడుతుంది. |
#2) కంపైలర్ మరియుసేకరణ. 10 పోర్టబిలిటీ C++ కోడ్ పోర్టబుల్ కాదు. Java పోర్టబుల్. 11 రకం సెమాంటిక్స్ ఆదిమ మరియు ఆబ్జెక్ట్ రకాల మధ్య స్థిరంగా ఉంటుంది. స్థిరంగా లేదు. 12 ఇన్పుట్ మెకానిజం Cin మరియు Cout I/O కోసం ఉపయోగించబడ్డాయి. System.in మరియు System.out.println 10> 13 యాక్సెస్ కంట్రోల్ మరియు ఆబ్జెక్ట్ ప్రొటెక్షన్ ఒక సౌకర్యవంతమైన ఆబ్జెక్ట్ మోడల్ మరియు స్థిరమైన రక్షణ. ఆబ్జెక్ట్ మోడల్ గజిబిజిగా ఉంది మరియు ఎన్క్యాప్సులేషన్ బలహీనంగా ఉంది. 14 మెమరీ మేనేజ్మెంట్ మాన్యువల్ సిస్టమ్-నియంత్రిత. 15 బహుళ వారసత్వం ప్రస్తుతం హాజరుకాదు 16 గోటో స్టేట్మెంట్ గోటో స్టేట్మెంట్కు మద్దతు ఇస్తుంది. గోటో స్టేట్మెంట్కు మద్దతు లేదు. 17 స్కోప్ రిజల్యూషన్ ఆపరేటర్ ప్రస్తుతం హాజరుకాదు 18 ప్రయత్నించండి/క్యాచ్ బ్లాక్ ట్రై/క్యాచ్ బ్లాక్ని మినహాయించవచ్చు. కోడ్ మినహాయింపును అందించాలని అనుకుంటే మినహాయించలేరు. 19 ఓవర్లోడింగ్ ఆపరేటర్ మరియు మెథడ్ ఓవర్లోడింగ్కు మద్దతు ఇస్తుంది. ఆపరేటర్ ఓవర్లోడింగ్కు మద్దతు ఇవ్వదు. 20 వర్చువల్ కీవర్డ్ ఓవర్రైడింగ్ని సులభతరం చేసే వర్చువల్ కీవర్డ్కి మద్దతు ఇస్తుంది. వర్చువల్ కీవర్డ్ లేదు, అన్ని స్టాటిక్ పద్ధతులు డిఫాల్ట్ వర్చువల్గా ఉంటాయి మరియు ఇవి కూడా కావచ్చు భర్తీ చేయబడింది. 21 రన్టైమ్ లోపంగుర్తింపు ప్రోగ్రామర్కు వదిలివేయబడింది. సిస్టమ్ బాధ్యత 22 భాషా మద్దతు ప్రధానంగా సిస్టమ్ కోసం ఉపయోగించబడుతుంది. ప్రోగ్రామింగ్. ప్రధానంగా అప్లికేషన్ ప్రోగ్రామింగ్ కోసం ఉపయోగించబడుతుంది. 23 డేటా మరియు విధులు డేటా మరియు ఫంక్షన్ క్లాస్ వెలుపల ఉన్నాయి. గ్లోబల్ మరియు నేమ్స్పేస్ స్కోప్లకు మద్దతు ఉంది. డేటా మరియు విధులు తరగతి లోపల మాత్రమే ఉన్నాయి, ప్యాకేజీ స్కోప్ అందుబాటులో ఉంది. 24 పాయింటర్లు పాయింటర్లకు మద్దతు ఇస్తుంది. పాయింటర్లకు పరిమిత మద్దతు మాత్రమే. 25 నిర్మాణాలు & యూనియన్లు మద్దతు ఉంది మద్దతు లేదు 26 ఆబ్జెక్ట్ మేనేజ్మెంట్ కొత్త మరియు తొలగింపుతో మాన్యువల్ ఆబ్జెక్ట్ మేనేజ్మెంట్ . చెత్త సేకరణను ఉపయోగించి ఆటోమేటిక్ ఆబ్జెక్ట్ మేనేజ్మెంట్. 27 పారామీటర్ పాసింగ్ విలువ ద్వారా కాల్కు మరియు సూచన ద్వారా కాల్కు మద్దతు ఇస్తుంది. విలువ ఆధారంగా మాత్రమే కాల్కి మద్దతు ఇస్తుంది. 28 థ్రెడ్ సపోర్ట్ థ్రెడ్ సపోర్ట్ అంత బలంగా లేదు, ఇది దీని మీద ఆధారపడి ఉంటుంది మూడవ పక్షం. చాలా బలమైన థ్రెడ్ మద్దతు. 29 హార్డ్వేర్ హార్డ్వేర్కు దగ్గరగా ఉంది. హార్డ్వేర్తో అంతగా ఇంటరాక్టివ్ కాదు. 30 డాక్యుమెంటేషన్ వ్యాఖ్య డాక్యుమెంటేషన్ వ్యాఖ్యకు మద్దతు ఇవ్వదు. డాక్యుమెంటేషన్ వ్యాఖ్యకు మద్దతు ఇస్తుంది( /**…*/) జావా సోర్స్ కోడ్ కోసం డాక్యుమెంటేషన్ని సృష్టిస్తుంది.
ఇప్పటివరకు మేము కీలకమైన తేడాలను చూశాము.C++ మరియు Java మధ్య వివరంగా. ప్రోగ్రామింగ్ ప్రపంచంలో C++ మరియు జావాకు సంబంధించి తరచుగా అడిగే కొన్ని ప్రశ్నలకు రాబోయే విభాగం సమాధానం ఇస్తుంది.
C++ మరియు Javaలో తరచుగా అడిగే ప్రశ్నలు
Q #1) ఏది మెరుగైన C++ లేదా Java?
సమాధానం: సరే, ఏది మంచిదో మేము ఖచ్చితంగా చెప్పలేము. C++ మరియు Java రెండూ వాటి స్వంత మెరిట్లు మరియు డీమెరిట్లను కలిగి ఉన్నాయి. సిస్టమ్ ప్రోగ్రామింగ్కు C++ ఎక్కువగా ఉన్నప్పటికీ, మనం దీన్ని జావాతో చేయలేము. కానీ జావా వెబ్, డెస్క్టాప్ మొదలైన అప్లికేషన్లలో రాణిస్తుంది.
వాస్తవానికి, C++ సిస్టమ్ ప్రోగ్రామింగ్ నుండి ఎంటర్ప్రైజ్ నుండి గేమింగ్ వరకు ఏదైనా చేయగలదు. జావా వెబ్ లేదా ఎంటర్ప్రైజ్ను మరింత చేయగలదు. కొన్ని తక్కువ-స్థాయి ప్రోగ్రామింగ్ అప్లికేషన్లు లేదా గేమింగ్ మొదలైన కొన్ని అప్లికేషన్లు ఉన్నాయి. వీటిని జావా డెవలప్ చేయడానికి వదిలివేయలేరు.
అందువల్ల ఇది పూర్తిగా మనం ఏ అప్లికేషన్ను అభివృద్ధి చేస్తున్నామో దానిపై ఆధారపడి ఉంటుంది. రెండు భాషల లాభాలు మరియు నష్టాలను ముందుగానే విశ్లేషించడం మరియు మేము అభివృద్ధి చేస్తున్న అప్లికేషన్ కోసం వాటి ప్రత్యేకతను ధృవీకరించడం ఉత్తమ మార్గం, ఆపై ఏది ఉత్తమమో నిర్ధారించడం.
Q #2) C++ మరిన్ని జావా కంటే శక్తివంతమైనది?
సమాధానం: మళ్లీ ఇది ఒక గమ్మత్తైన ప్రశ్న! వాక్యనిర్మాణం లేదా భాష నేర్చుకోవడం ఎంత సులభమో విషయానికి వస్తే, జావా స్కోర్ చేస్తుంది. సిస్టమ్ ప్రోగ్రామింగ్ మరియు/లేదా ఇతర తక్కువ-స్థాయి అప్లికేషన్ల విషయానికి వస్తే, C++ మరింత శక్తివంతమైనది.
కొంతమంది వ్యక్తులు స్వయంచాలక GC సేకరణలను కలిగి ఉంటారని, పాయింటర్లు లేవని, మల్టిపుల్ లేదని వాదించవచ్చు.వారసత్వాలు జావాను మరింత శక్తివంతం చేస్తాయి.
కానీ వేగం విషయానికి వస్తే, C++ శక్తివంతమైనది. అలాగే మనం రాష్ట్రాన్ని నిల్వ చేయాల్సిన గేమింగ్ వంటి అప్లికేషన్లలో, ఆటోమేటిక్ గార్బేజ్ సేకరణ పనులను నాశనం చేస్తుంది. కాబట్టి ఇక్కడ C++ స్పష్టంగా శక్తివంతమైనది.
Q #3) C లేదా C++ తెలియకుండా మనం జావా నేర్చుకోవచ్చా?
సమాధానం: అవును, ఖచ్చితంగా!
మనం ప్రోగ్రామింగ్ మరియు ఆబ్జెక్ట్-ఓరియెంటెడ్ ప్రోగ్రామింగ్ కాన్సెప్ట్ల ప్రాథమికాలను తెలుసుకున్న తర్వాత, మనం జావా నేర్చుకోవడం ప్రారంభించవచ్చు.
Q #4) C++ జావా లాగా ఉందా?
సమాధానం: కొన్ని మార్గాల్లో, అవును కానీ కొన్ని మార్గాల్లో, కాదు.
ఉదాహరణకు, C++ మరియు జావా రెండూ ఆబ్జెక్ట్-ఓరియెంటెడ్ ప్రోగ్రామింగ్ లాంగ్వేజ్లు. అప్లికేషన్ అభివృద్ధికి వాటిని ఉపయోగించవచ్చు. అవి ఒకే విధమైన వాక్యనిర్మాణాన్ని కలిగి ఉంటాయి.
కానీ మెమరీ నిర్వహణ, వారసత్వం, పాలిమార్ఫిజం మొదలైన ఇతర సందర్భాల్లో, C++ మరియు జావా పూర్తిగా భిన్నంగా ఉంటాయి. అదేవిధంగా, ఆదిమ డేటా రకాలు, ఆబ్జెక్ట్ హ్యాండ్లింగ్, పాయింటర్లు మొదలైన వాటి విషయానికి వస్తే. రెండు భాషలు వేర్వేరుగా ఉంటాయి.
Q #5) జావా C++లో వ్రాయబడిందా?
సమాధానం: జావా సన్ మరియు IBM ద్వారా జావా వర్చువల్ మెషీన్ (JVM) C++లో వ్రాయబడింది. జావా లైబ్రరీలు జావాలో ఉన్నాయి. కొన్ని ఇతర JVMలు C.
ముగింపు
C++ మరియు Java రెండూ ఆబ్జెక్ట్-ఓరియెంటెడ్ ప్రోగ్రామింగ్ లాంగ్వేజ్లు. అదనంగా, C++ ఒక విధానపరమైన భాష కూడా. వారసత్వం, పాలిమార్ఫిజం, పాయింటర్లు, మెమరీ మేనేజ్మెంట్ మొదలైన కొన్ని లక్షణాలు ఉన్నాయి, వీటిలో రెండూ ఉన్నాయిభాషలు పూర్తిగా ఒకదానితో ఒకటి విభిన్నంగా ఉంటాయి.
హార్డ్వేర్తో సన్నిహితంగా ఉండటం, మెరుగైన ఆబ్జెక్ట్ మేనేజ్మెంట్, వేగం, పనితీరు మొదలైన కొన్ని లక్షణాలు C++ ఉన్నాయి. ఇది జావా కంటే మరింత శక్తివంతమైనదిగా చేస్తుంది మరియు తద్వారా C++ని ఉపయోగించడానికి డెవలపర్లను ప్రేరేపిస్తుంది. తక్కువ-స్థాయి ప్రోగ్రామింగ్, హై-స్పీడ్ గేమింగ్ అప్లికేషన్లు, సిస్టమ్ ప్రోగ్రామింగ్ మొదలైన వాటి కోసం.
అదే విధంగా, జావా యొక్క సులభమైన సింటాక్స్, ఆటోమేటిక్ గార్బేజ్ సేకరణ, పాయింటర్లు లేకపోవడం, టెంప్లేట్లు మొదలైనవి జావాను ఇష్టమైనవిగా చేస్తాయి. వెబ్ ఆధారిత అనువర్తనాల కోసం.
ఇంటర్ప్రెటర్C++ | Java |
---|---|
C++ అనేది సంకలనం చేయబడిన భాష. మూలం C++లో వ్రాయబడిన ప్రోగ్రామ్ ఒక ఆబ్జెక్ట్ కోడ్గా కంపైల్ చేయబడింది, అది అవుట్పుట్ను ఉత్పత్తి చేయడానికి అమలు చేయబడుతుంది.
| జావా అనేది కంపైల్ చేయబడినది అలాగే అన్వయించబడినది భాష. జావా సోర్స్ కోడ్ యొక్క కంపైల్డ్ అవుట్పుట్ ప్లాట్ఫారమ్-ఇండిపెండెంట్ అయిన బైట్ కోడ్. |
#3) పోర్టబిలిటీ
C++ | Java |
---|---|
C++ కోడ్ పోర్టబుల్ కాదు. దీని కోసం కంపైల్ చేయాలి ప్రతి ప్లాట్ఫారమ్. | జావా, అయితే, కోడ్ని బైట్ కోడ్గా అనువదిస్తుంది. ఈ బైట్ కోడ్ పోర్టబుల్ మరియు ఏ ప్లాట్ఫారమ్లోనైనా అమలు చేయవచ్చు. |
#4) మెమరీ నిర్వహణ
C++ | Java |
---|---|
C++లో మెమరీ నిర్వహణ మాన్యువల్. మేము కొత్త/తొలగించు ఆపరేటర్లను ఉపయోగించి మెమరీని మాన్యువల్గా కేటాయించాలి/డీలాకేట్ చేయాలి. | Javaలో మెమరీ నిర్వహణ సిస్టమ్-నియంత్రణలో ఉంటుంది. |
#5) బహుళ వారసత్వం
C++ | జావా |
---|---|
C++ ఒకే మరియు బహుళ వారసత్వాలతో సహా వివిధ రకాల వారసత్వాలకు మద్దతు ఇస్తుంది. బహుళ వారసత్వాల నుండి సమస్యలు తలెత్తినప్పటికీ, సమస్యలను పరిష్కరించడానికి C++ వర్చువల్ కీవర్డ్ని ఉపయోగిస్తుంది. | జావా, ఒకే వారసత్వానికి మాత్రమే మద్దతు ఇస్తుంది. జావాలోని ఇంటర్ఫేస్లను ఉపయోగించి బహుళ వారసత్వం యొక్క ప్రభావాలను సాధించవచ్చు. |
#6)ఓవర్లోడింగ్
C++ | Java |
---|---|
C++లో, పద్ధతులు మరియు ఆపరేటర్లు ఓవర్లోడ్ చేయబడవచ్చు. ఇది స్టాటిక్ పాలిమార్ఫిజం. | జావాలో, పద్ధతి ఓవర్లోడింగ్ మాత్రమే అనుమతించబడుతుంది. ఇది ఆపరేటర్ ఓవర్లోడింగ్ను అనుమతించదు. |
#7) వర్చువల్ కీవర్డ్
C++ | Java |
---|---|
డైనమిక్ పాలిమార్ఫిజంలో భాగంగా , C++లో, ఉత్పన్నమైన క్లాస్లో ఓవర్రైడ్ చేయగల ఫంక్షన్ను సూచించడానికి వర్చువల్ కీవర్డ్ ఫంక్షన్తో ఉపయోగించబడుతుంది. ఈ విధంగా మనం పాలిమార్ఫిజం సాధించవచ్చు. | జావాలో, వర్చువల్ కీవర్డ్ లేదు. అయినప్పటికీ, జావాలో, డిఫాల్ట్గా అన్ని నాన్-స్టాటిక్ పద్ధతులు భర్తీ చేయబడతాయి. లేదా సరళంగా చెప్పాలంటే, జావాలోని అన్ని నాన్-స్టాటిక్ పద్ధతులు డిఫాల్ట్గా వర్చువల్. |
#8) పాయింటర్లు
C++ | Java |
---|---|
C++ అన్నీ పాయింటర్ల గురించి. ఇంతకుముందు ట్యుటోరియల్లలో చూసినట్లుగా, C++ పాయింటర్లకు బలమైన మద్దతును కలిగి ఉంది మరియు మేము పాయింటర్లను ఉపయోగించి చాలా ఉపయోగకరమైన ప్రోగ్రామింగ్లను చేయవచ్చు. | జావా పాయింటర్లకు పరిమిత మద్దతును కలిగి ఉంది. ప్రారంభంలో, జావా పూర్తిగా పాయింటర్లు లేకుండా ఉంది కానీ తర్వాత సంస్కరణలు పాయింటర్లకు పరిమిత మద్దతును అందించడం ప్రారంభించాయి. మేము C++లో ఉపయోగించగలిగేంత తీరికగా జావాలో పాయింటర్లను ఉపయోగించలేము. |
#9) డాక్యుమెంటేషన్ వ్యాఖ్య
C++ | Java |
---|---|
C++ డాక్యుమెంటేషన్ వ్యాఖ్యలకు మద్దతు లేదు. | జావా డాక్యుమెంటేషన్ కోసం అంతర్నిర్మిత మద్దతును కలిగి ఉంది.వ్యాఖ్యలు (/**...*/). ఈ విధంగా Java సోర్స్ ఫైల్లు వాటి స్వంత డాక్యుమెంటేషన్ను కలిగి ఉంటాయి. |
#10) థ్రెడ్ మద్దతు
C++ | Java |
---|---|
C++కి అంతర్నిర్మిత థ్రెడ్ మద్దతు లేదు. ఇది ఎక్కువగా థర్డ్-పార్టీ థ్రెడింగ్ లైబ్రరీలపై ఆధారపడుతుంది. | జావా అనేది క్లాస్ “థ్రెడ్”తో ఇన్-బిల్ట్ థ్రెడ్ సపోర్ట్. మేము థ్రెడ్ క్లాస్ను వారసత్వంగా పొంది, ఆపై రన్ పద్ధతిని భర్తీ చేయవచ్చు. |
మరికొన్ని తేడాలు…
#11) రూట్ సోపానక్రమం
C++ అనేది విధానపరమైన మరియు ఆబ్జెక్ట్-ఓరియెంటెడ్ ప్రోగ్రామింగ్ లాంగ్వేజ్. అందువల్ల ఇది ఏ నిర్దిష్ట రూట్ సోపానక్రమాన్ని అనుసరించదు.
జావా అనేది స్వచ్ఛమైన ఆబ్జెక్ట్-ఓరియెంటెడ్ ప్రోగ్రామింగ్ లాంగ్వేజ్ మరియు ఒకే రూట్ సోపానక్రమాన్ని కలిగి ఉంది.
#12 ) సోర్స్ కోడ్ & క్లాస్ రిలేషన్షిప్
C++లో, సోర్స్ కోడ్ మరియు ఫైల్ పేరు రెండింటికీ ఎలాంటి సంబంధం లేదు. అంటే C++ ప్రోగ్రామ్లో మనకు అనేక తరగతులు ఉండవచ్చు మరియు ఫైల్ పేరు ఏదైనా కావచ్చు. ఇది తరగతి పేర్లతో సమానంగా ఉండవలసిన అవసరం లేదు.
జావాలో, సోర్స్ కోడ్ క్లాస్ మరియు ఫైల్ పేరు మధ్య సన్నిహిత సంబంధం ఉంది. సోర్స్ కోడ్ మరియు ఫైల్ పేరును కలిగి ఉన్న తరగతి ఒకేలా ఉండాలి.
ఉదాహరణకు , మనకు జావాలో జీతం అనే క్లాస్ ఉంటే, అప్పుడు ఈ క్లాస్ కోడ్ ఉన్న ఫైల్ పేరు “ pay.java”.
#13 ) కాన్సెప్ట్
C++ ప్రోగ్రామ్ల వెనుక ఉన్న కాన్సెప్ట్ ఒకసారి వ్రాసి C++ కానందున ఎక్కడైనా కంపైల్ చేయండిప్లాట్ఫారమ్-ఇండిపెండెంట్.
దీనికి విరుద్ధంగా, జావా ప్రోగ్రామ్ల కోసం ఇది ఒకసారి వ్రాయబడుతుంది, జావా కంపైలర్ ద్వారా రూపొందించబడిన బైట్ కోడ్ ప్లాట్ఫారమ్-ఇండిపెండెంట్ మరియు ఏ మెషీన్లోనైనా అమలు చేయగలదు కాబట్టి ప్రతిచోటా మరియు ఎక్కడైనా అమలు చేయండి.
#14 ) ఇతర భాషలతో అనుకూలత
C++ అనేది C పై నిర్మించబడింది. C++ భాష చాలా ఇతర ఉన్నత-స్థాయి భాషలకు అనుకూలంగా ఉంటుంది.
జావా ఇతర భాషలకు అనుకూలంగా లేదు. జావా C మరియు C++ ద్వారా ప్రేరణ పొందింది కాబట్టి, దాని వాక్యనిర్మాణం ఈ భాషల మాదిరిగానే ఉంటుంది.
#15 ) ప్రోగ్రామింగ్ లాంగ్వేజ్ రకం
C++ విధానపరమైన మరియు ఆబ్జెక్ట్-ఓరియెంటెడ్ ప్రోగ్రామింగ్ లాంగ్వేజ్ రెండూ. అందువల్ల, C++ విధానపరమైన భాషలకు ప్రత్యేకమైన లక్షణాలను అలాగే ఆబ్జెక్ట్-ఓరియెంటెడ్ ప్రోగ్రామింగ్ లాంగ్వేజ్ లక్షణాలను కలిగి ఉంది.
జావా అనేది పూర్తిగా ఆబ్జెక్ట్-ఓరియెంటెడ్ ప్రోగ్రామింగ్ లాంగ్వేజ్.
#16 ) లైబ్రరీ ఇంటర్ఫేస్
C++ స్థానిక సిస్టమ్ లైబ్రరీలకు నేరుగా కాల్లను అనుమతిస్తుంది. అందువల్ల ఇది సిస్టమ్-స్థాయి ప్రోగ్రామింగ్కు మరింత అనుకూలంగా ఉంటుంది.
జావాకు దాని స్థానిక లైబ్రరీలకు ప్రత్యక్ష కాల్ మద్దతు లేదు. మేము జావా నేటివ్ ఇంటర్ఫేస్ లేదా జావా నేటివ్ యాక్సెస్ ద్వారా లైబ్రరీలకు కాల్ చేయవచ్చు.
#17 ) విశిష్ట లక్షణాలు
విధానపరమైన భాషలకు సంబంధించిన ఫీచర్లు మరియు ఆబ్జెక్ట్-ఓరియెంటెడ్ లాంగ్వేజ్ అనేది C++ యొక్క ప్రత్యేక లక్షణాలు.
ఆటోమేటిక్ గార్బేజ్ సేకరణ అనేది జావా యొక్క ప్రత్యేక లక్షణం. ఇంతలో, Java డిస్ట్రక్టర్లకు మద్దతు ఇవ్వదు.
#18 ) రకంసెమాంటిక్స్
C++ కోసం టైప్ సెమాంటిక్స్ విషయానికొస్తే, ఆదిమ మరియు ఆబ్జెక్ట్ రకాలు స్థిరంగా ఉంటాయి.
కానీ జావా కోసం, ఆదిమ మరియు ఆబ్జెక్ట్ రకాల మధ్య స్థిరత్వం లేదు.
#19 ) ఇన్పుట్ మెకానిజం
C++ వరుసగా '>>' మరియు '' ఆపరేటర్లతో పాటు సిన్ మరియు కౌట్లను ఉపయోగిస్తుంది డేటాను చదవండి మరియు వ్రాయండి.
జావాలో, సిస్టమ్ క్లాస్ ఇన్పుట్-అవుట్పుట్ కోసం ఉపయోగించబడుతుంది. ఇన్పుట్ను చదవడానికి, System.in ఉపయోగించబడుతుంది, ఇది ఒక సమయంలో ఒక బైట్ని చదివేస్తుంది. అవుట్పుట్ను వ్రాయడానికి Construct System.out ఉపయోగించబడుతుంది.
#20) యాక్సెస్ కంట్రోల్ మరియు ఆబ్జెక్ట్ ప్రొటెక్షన్
C++ కోసం సౌకర్యవంతమైన మోడల్ ఉంది యాక్సెస్ స్పెసిఫైయర్లను కలిగి ఉన్న ఆబ్జెక్ట్లు యాక్సెస్ని నియంత్రిస్తాయి మరియు బలమైన ఎన్క్యాప్సులేషన్ రక్షణను నిర్ధారిస్తుంది.
జావా బలహీనమైన ఎన్క్యాప్సులేషన్తో తులనాత్మకంగా గజిబిజిగా ఉండే ఆబ్జెక్ట్ మోడల్ను కలిగి ఉంది.
#21) గోటో స్టేట్మెంట్
C++ గోటో స్టేట్మెంట్కు మద్దతిస్తుంది, అయితే ప్రోగ్రామ్లో దీనిని ఉపయోగించడం వల్ల కలిగే పరిణామాలను నివారించడానికి దాని వినియోగాన్ని తగ్గించాలి.
జావా గోటో స్టేట్మెంట్కు మద్దతును అందించదు.
#22 ) స్కోప్ రిజల్యూషన్ ఆపరేటర్
గ్లోబల్ వేరియబుల్స్ని యాక్సెస్ చేయడానికి మరియు క్లాస్ వెలుపల పద్ధతులను నిర్వచించడానికి స్కోప్ రిజల్యూషన్ ఆపరేటర్ ఉపయోగించబడుతుంది.
C++ గ్లోబల్ వేరియబుల్స్ని యాక్సెస్ చేయడానికి స్కోప్ రిజల్యూషన్ ఆపరేటర్ని ఉపయోగిస్తుంది. ఇది తరగతి వెలుపల ఫంక్షన్లను నిర్వచించడానికి మరియు స్కోప్ రిజల్యూషన్ ఆపరేటర్ని ఉపయోగించి వాటిని యాక్సెస్ చేయడానికి కూడా అనుమతిస్తుంది.
దీనికి విరుద్ధంగా,జావా స్కోప్ రిజల్యూషన్ ఆపరేటర్కు మద్దతు ఇవ్వదు. వెలుపల విధులను నిర్వచించడాన్ని కూడా జావా అనుమతించదు. మెయిన్ ఫంక్షన్తో సహా ప్రోగ్రామ్కు సంబంధించిన ప్రతిదీ తరగతి లోపల ఉండాలి.
#23 ) బ్లాక్ని ప్రయత్నించండి/క్యాచ్ చేయండి
C++లో, కోడ్ మినహాయింపును విసిరివేయవచ్చని మాకు తెలిసినప్పటికీ మేము ప్రయత్నించండి/క్యాచ్ బ్లాక్ను మినహాయించగలము.
అయితే, జావాలో, కోడ్ మినహాయింపును విసిరివేస్తుందని మేము ఖచ్చితంగా అనుకుంటే, మేము ఈ కోడ్ని కింద చేర్చాలి. ప్రయత్నించండి/క్యాచ్ బ్లాక్. Javaలో డిస్ట్రక్టర్లకు మద్దతివ్వనందున మినహాయింపులు విభిన్నంగా ఉంటాయి.
#24 ) రన్టైమ్ ఎర్రర్ డిటెక్షన్
C++లో రన్టైమ్ ఎర్రర్ డిటెక్షన్ ప్రోగ్రామర్ యొక్క బాధ్యత.
జావాలో, రన్టైమ్ ఎర్రర్ డిటెక్షన్ సిస్టమ్ ద్వారా నియంత్రించబడుతుంది.
#25 ) భాషా మద్దతు
హార్డ్వేర్ మరియు సిస్టమ్ వనరులను యాక్సెస్ చేయడానికి అనుమతించే లైబ్రరీలకు దాని సామీప్యత కారణంగా, C++లో అభివృద్ధి చేయబడిన డేటాబేస్, ఎంటర్ప్రైజ్, గేమింగ్ మొదలైన వాటితో సహా అనేక రకాల అప్లికేషన్లను కలిగి ఉన్నప్పటికీ, సిస్టమ్ ప్రోగ్రామింగ్కు C++ మరింత అనుకూలంగా ఉంటుంది.
#26 ) డేటా మరియు విధులు
C++కి గ్లోబల్ స్కోప్ అలాగే నేమ్స్పేస్ స్కోప్ ఉంది. అందువల్ల డేటా మరియు ఫంక్షన్లు తరగతి వెలుపల కూడా ఉంటాయి.
జావాలో, అన్ని డేటా మరియు ఫంక్షన్లు తరగతిలో ఉండాలి. గ్లోబల్ స్కోప్ లేదు, అయితే, ప్యాకేజీ స్కోప్ ఉండవచ్చు.
#27 ) నిర్మాణాలు & యూనియన్లు
నిర్మాణాలు మరియు యూనియన్లు డేటావిభిన్న డేటా రకాలతో సభ్యులను కలిగి ఉండే నిర్మాణాలు. C++ స్ట్రక్చర్లు మరియు యూనియన్లు రెండింటికీ మద్దతు ఇస్తుంది.
జావా, అయితే, స్ట్రక్చర్లు లేదా యూనియన్లకు మద్దతు ఇవ్వదు.
#28 ) ఆబ్జెక్ట్ మేనేజ్మెంట్
C++లో వస్తువులు మాన్యువల్గా నిర్వహించబడతాయి. వస్తువుల సృష్టి మరియు విధ్వంసం వరుసగా కొత్త మరియు తొలగింపు ఆపరేటర్లను ఉపయోగించి మానవీయంగా నిర్వహించబడతాయి. మేము క్లాస్ ఆబ్జెక్ట్ల కోసం కన్స్ట్రక్టర్లు మరియు డిస్ట్రక్టర్లను కూడా ఉపయోగిస్తాము.
జావా కన్స్ట్రక్టర్లకు మద్దతు ఇచ్చినప్పటికీ డిస్ట్రక్టర్లకు మద్దతు ఇవ్వదు. వస్తువులను సేకరించడం మరియు నాశనం చేయడం కోసం జావా ఆటోమేటిక్ గార్బేజ్ సేకరణపై కూడా ఎక్కువగా ఆధారపడి ఉంది.
#29 ) పారామీటర్ పాసింగ్
విలువ ద్వారా పాస్ చేయండి మరియు పాస్ బై రిఫరెన్స్ ఇవి ప్రోగ్రామింగ్లో ఉపయోగించే రెండు ముఖ్యమైన పారామీటర్ పాసింగ్ టెక్నిక్లు. Java మరియు C++ రెండూ ఈ రెండు టెక్నిక్లకు మద్దతిస్తాయి.
#3 0) హార్డ్వేర్
C++ హార్డ్వేర్కు దగ్గరగా ఉంటుంది మరియు మానిప్యులేట్ చేయగల అనేక లైబ్రరీలను కలిగి ఉంది హార్డ్వేర్ వనరులు. హార్డ్వేర్కు దగ్గరగా ఉన్నందున, C++ తరచుగా సిస్టమ్ ప్రోగ్రామింగ్, గేమింగ్ అప్లికేషన్లు, ఆపరేటింగ్ సిస్టమ్ మరియు కంపైలర్ల కోసం ఉపయోగించబడుతుంది.
జావా అనేది చాలా వరకు అప్లికేషన్ డెవలప్మెంట్ లాంగ్వేజ్ మరియు హార్డ్వేర్కు దగ్గరగా ఉండదు.
పట్టిక ఆకృతి: C++ Vs Java
మేము ఇప్పటికే చర్చించిన C++ మరియు Java మధ్య పోలిక యొక్క పట్టిక ప్రాతినిధ్యం క్రింద ఇవ్వబడింది.
సంఖ్య. | పోలికపరామితి | C++ | Java |
---|---|---|---|
1 | ప్లాట్ఫారమ్ ఇండిపెండెన్స్ | C++ ప్లాట్ఫారమ్ డిపెండెంట్. | Java ప్లాట్ఫారమ్-స్వతంత్రం. |
2 | కంపైలర్ & ఇంటర్ప్రెటర్ | C++ అనేది సంకలనం చేయబడిన భాష. | జావా అనేది సంకలనం చేయబడిన భాష మరియు వివరణాత్మక భాష. |
3 | మూలం కోడ్ & తరగతి సంబంధం | తరగతి పేర్లు మరియు ఫైల్ పేర్లతో కఠినమైన సంబంధం లేదు. | తరగతి పేరు మరియు ఫైల్ పేరు మధ్య కఠినమైన సంబంధాన్ని అమలు చేస్తుంది. |
4 | కాన్సెప్ట్ | ఎక్కడైనా కంపైల్ ఒకసారి వ్రాయండి. | ఎక్కడైనా ఒకసారి రన్ చేయండి & ప్రతిచోటా. |
5 | ఇతర భాషలతో అనుకూలత | ఆబ్జెక్ట్-ఓరియెంటెడ్ ఫీచర్లు మినహా Cకి అనుకూలంగా ఉంటుంది. | సింటాక్స్ C/C++ నుండి తీసుకోబడింది. ఏ ఇతర భాషతోనూ వెనుకబడిన అనుకూలత లేదు. |
6 | ప్రోగ్రామింగ్ లాంగ్వేజ్ రకం | విధానపరమైనది మరియు ఆబ్జెక్ట్-ఓరియెంటెడ్. | ఆబ్జెక్ట్-ఓరియెంటెడ్. |
7 | లైబ్రరీ ఇంటర్ఫేస్ | స్థానిక సిస్టమ్ లైబ్రరీలకు డైరెక్ట్ కాల్లను అనుమతిస్తుంది. | జావా నేటివ్ ఇంటర్ఫేస్ మరియు జావా నేటివ్ ద్వారా మాత్రమే కాల్లు యాక్సెస్. |
8 | రూట్ సోపానక్రమం | రూట్ సోపానక్రమం లేదు. | సింగిల్ రూట్ సోపానక్రమాన్ని అనుసరిస్తుంది. |
9 | విశిష్ట ఫీచర్లు | విధానపరమైన అలాగే ఆబ్జెక్ట్-ఓరియెంటెడ్ ఫీచర్లకు మద్దతు ఇస్తుంది. | డిస్ట్రక్టర్లు లేవు. ఆటోమేటిక్ చెత్త |