1. వస్తువులతో పోల్చడం==
కొత్త ప్రోగ్రామర్ల యొక్క ఇష్టమైన తప్పు ఏమిటంటే, ==
ఆపరేటర్ని ఉపయోగించి వస్తువులను (ముఖ్యంగా స్ట్రింగ్లు) పోల్చడం. ఉదాహరణకి:
Scanner console = new Scanner(System.in);
String s1 = console.nextLine();
String s2 = console.nextLine();
if (s1 == s2)
{
System.out.println("The strings are equal");
}
ఈ కోడ్ "ది స్ట్రింగ్స్ ఈక్వల్" అని ఎప్పటికీ ప్రదర్శించదు, ఎందుకంటే if
స్టేట్మెంట్ రెండు వేర్వేరు స్ట్రింగ్ ఆబ్జెక్ట్లకు సూచనలను పోలుస్తుంది.
కోడ్ యొక్క సరైన సంస్కరణ ఇక్కడ ఉంది:
Scanner console = new Scanner(System.in);
String s1 = console.nextLine();
String s2 = console.nextLine();
if (s1.equals(s2))
{
System.out.println("The strings are equal");
}
2. String
వస్తువును మార్చడం
కొత్త ప్రోగ్రామర్లు తరగతిలోని అన్ని వస్తువులు మార్పులేనివని మరియు తరగతిలోని ప్రతి పద్ధతి String
కొత్త వస్తువును తిరిగి ఇస్తుందని తరచుగా మరచిపోతారు - ప్రస్తుత వస్తువు ఎప్పటికీ మారదు.
ఉదాహరణ:
String s = "Hello";
s.toUpperCase (); // Convert to uppercase
ఈ కోడ్ సరైన కోడ్కి చాలా పోలి ఉంటుంది, కానీ ఇది ఊహించిన విధంగా పని చేయదు. పద్ధతి toUpperCase()
దానిని పిలిచే వస్తువును మార్చదు. సరైన కోడ్ ఇలా ఉంటుంది:
String s = "Hello";
String result = s.toUpperCase(); // Convert to uppercase
3. శ్రేణి యొక్క మూలకాల వస్తువులను ప్రారంభించడం మర్చిపోవడం
శ్రేణి వేరియబుల్ని ప్రారంభించడం మర్చిపోవడం మరొక సాధారణ తప్పు. ఉదాహరణ:
int[] array;
array[0] = 1;
array[0] = 2;
ఈ కోడ్ పని చేయదు: మీరు శ్రేణి యొక్క మూలకాలను నిల్వ చేసే కంటైనర్ ఆబ్జెక్ట్కు సూచనకు సమానమైన శ్రేణి వేరియబుల్ను స్పష్టంగా సెట్ చేయాలి.
int[] array = new int[10];
array[0] = 1;
array[0] = 2;
4. ఇన్స్టాన్స్ వేరియబుల్కు బదులుగా లోకల్ వేరియబుల్ని ఉపయోగించడం.
కొత్తవారు వేరియబుల్స్ కోసం పొడవైన మరియు అర్థవంతమైన పేర్లతో రావడానికి ఇష్టపడరు. వారు తరచుగా ఒకే-అక్షరాల పేర్లను ఉపయోగిస్తారు: a
, b
, i
, మొదలైనవి. కోడ్లో అనేక వేరియబుల్స్ ఉన్నప్పుడు చేయడం చాలా క్రూరమైన పని:
శ్రేణిలోని 100 సెల్లలో 99 సంఖ్యను ఉంచండి |
---|
|
ఎగువ కోడ్ కంపైల్ చేయబడదు. సరైన సంస్కరణ ఇలా కనిపిస్తుంది:
శ్రేణిలోని 100 సెల్లలో 99 సంఖ్యను ఉంచండి |
---|
|
5. సేకరణ అంశాన్ని తీసివేయడం
చాలా తరచుగా ఒక నిర్దిష్ట మూలకం సేకరణ నుండి తీసివేయవలసిన పరిస్థితులు ఉన్నాయి. కోడ్ దాదాపు ఇలా కనిపిస్తుంది:
ArrayList<Integer> list = new ArrayList<Integer>();
Collections.addAll(list, 0, -5, -7, -12, 5, 15);
for (Integer value: list)
if (value < 0)
list.remove(value);
ఈ కోడ్ పని చేయదు, ఎందుకంటే మీరు సేకరణ యొక్క మూలకాలను ఏకకాలంలో ప్రయాణించడానికి మరియు ఆ సేకరణను సవరించడానికి ప్రతి లూప్ను ఉపయోగించలేరు.
అనేక పరిష్కారాలు ఉన్నాయి. ముందుగా, మీరు ఒక సేకరణను దాటవచ్చు మరియు మరొక సేకరణను మార్చవచ్చు:
పరిష్కారం 1 |
---|
|
రెండవది, జావా 8 నుండి, సేకరణలు ఒక removeIf()
పద్ధతిని కలిగి ఉంటాయి, దానికి మీరు ఏ మూలకాలను తొలగించాలో సూచించే నియమాన్ని (లాంబ్డా ఫంక్షన్) పాస్ చేయవచ్చు.
ఉదాహరణ:
పరిష్కారం 2 |
---|
|
6. మాడిఫైయర్తో అనేక తరగతులను public
ఒకే ఫైల్లో ఉంచడం
ఫైల్లో ఒక పబ్లిక్ క్లాస్ మాత్రమే ఉంటుంది. ఫైల్లో మరిన్ని తరగతులను ప్రకటించవచ్చు, కానీ అవి తప్పనిసరిగా పబ్లిక్ క్లాస్లోని అంతర్గత తరగతులుగా ఉండాలి లేదా మాడిఫైయర్ను కలిగి ఉండకూడదు public
. ఉదాహరణ:
Solution.java ఫైల్ యొక్క కంటెంట్లు | గమనిక |
---|---|
|
ఇది అనుమతించబడదు: ఒకే ఫైల్లో రెండు పబ్లిక్ తరగతులు. |
|
కానీ మీరు దీన్ని చేయవచ్చు. ప్రధాన తరగతి పబ్లిక్ కాదు |
|
మరియు మీరు దీన్ని చేయవచ్చు. ప్రధాన తరగతి ఒక సమూహ తరగతి |
main()
7. స్టాటిక్ పద్ధతి నుండి తరగతి యొక్క సాధారణ (నాన్-స్టాటిక్) పద్ధతులను పిలవడం
main()
కొన్నిసార్లు కొత్త ప్రోగ్రామర్లు నాన్-స్టాటిక్ వేరియబుల్స్ మరియు మెథడ్లను మెథడ్ లేదా ఇతర స్టాటిక్ మెథడ్స్ నుండి యాక్సెస్ చేయడానికి ప్రయత్నిస్తారు . అలాంటి కోడ్ పని చేయదు, వాస్తవానికి.
public class Solution
{
public int n = 100;
public int[] createArray()
{
return new int[n];
}
public static void main(String[]args)
{
int[] array = createArray();
}
}
ప్రధాన పద్ధతి స్టాటిక్ పద్ధతులు/చరరాశులను మాత్రమే సూచించగలదు. బాగా, లేదా అది మొదట తరగతి యొక్క ఉదాహరణను సృష్టించాలి Solution
, ఆపై మాత్రమే ఆ వస్తువు యొక్క నాన్-స్టాటిక్ పద్ధతులను కాల్ చేయండి. ఉదాహరణ:
పరిష్కారం 1 | పరిష్కారం 2 |
---|---|
|
|
8. ఒక పద్ధతి వలె కన్స్ట్రక్టర్ను ప్రకటించడం
క్లాస్ కన్స్ట్రక్టర్ను తప్పుగా ప్రకటించడం అనేది మరొక సాధారణ తప్పు. కన్స్ట్రక్టర్ పేరు తప్పనిసరిగా తరగతి పేరు వలె ఉండాలి మరియు కన్స్ట్రక్టర్కు ఫలితం రకం లేదు. అత్యంత సాధారణ తప్పులు ఇలా కనిపిస్తాయి:
|
ఇక్కడ రిటర్న్ రకం ఉండకూడదు |
|
చెల్లని కన్స్ట్రక్టర్ పేరు. కన్స్ట్రక్టర్ పేరు తప్పనిసరిగా తరగతి పేరుతో సరిపోలాలి |
|
this కనబడుట లేదు. వేరియబుల్ value దానికే కేటాయించబడుతుంది |
|
అదంతా కరెక్ట్ |
9. ఇంటర్ఫేస్ల యొక్క సరికాని వారసత్వం
జావా సృష్టికర్తలు దీన్ని ఆంగ్లానికి చాలా దగ్గరగా ఉండేలా చేయడానికి ప్రయత్నించారు, కాబట్టి వారు నిర్దిష్ట సంబంధిత కాన్సెప్ట్ల కోసం విభిన్న కీలకపదాలను ఎంచుకున్నారు.
తరగతి తరగతిని వారసత్వంగా పొందినప్పుడు, మీరు కీవర్డ్ని ఉపయోగించాలి extends
:
class Pet
{
}
class Cat extends Pet
{
}
తరగతి ఇంటర్ఫేస్ను వారసత్వంగా పొందినప్పుడు, మీరు కీవర్డ్ని ఉపయోగించాలి implements
:
interface Meow
{
}
class Cat implements Meow
{
}
ఇంటర్ఫేస్ ఇంటర్ఫేస్ను వారసత్వంగా పొందినప్పుడు, extends
కీవర్డ్ని ఉపయోగించండి:
interface Meow
{
}
interface Voice extends Meow
{
}
break
10. ఒక switch
ప్రకటనలో వదిలివేయడం
మరియు ఈ రోజు మనకు చివరి తప్పు, కానీ ప్రారంభకులకు చివరిది కాదు, break
ఒక ప్రకటనలో ఒక ప్రకటనను చేర్చడంలో విఫలమైంది switch
. ఉదాహరణ
తప్పు | కుడి |
---|---|
|
|
GO TO FULL VERSION