نگاهی دوباره و جالب به تساوی
با سلام
مطلب جالبی را خواندم که طی آن با چالشی در این زمینه رو به رو شدم. برای فهمیدن کامل مطلب اظهار نظری نمی کنم و پاسخ آن را از اساتید این بخش تقاضا می کنم.
1- وقتی می گوییم متغیری از نوع عدد صحیح داریم و می نویسیمint i;
دقیقاً منظورمان چیست؟
2- وقتی می نویسیم که دو عدد صحیح با هم برابرند یعنی:int x=10,y=10;
if(x==y){}
منظورمان از تساوی، تساوی دو شیء است، دو متغیر است؟
3-منظور از برنامه زیر چیست؟public class B
{
public static void main(String args[])
{
Integer n1 = new Integer(47);
Integer n2 = new Integer(47);
System.out.println(n1==n2);//Result is false
System.out.println(n1!=n2);//Result is true
}
}
4-منظور از این برنامه چیست؟public class B
{
public static void main(String args[])
{
Integer n1 = new Integer(47);
Integer n2 = new Integer(47);
System.out.println(n1.equals(n2));//Result is true
}
}
5-و این برنامه؟class Value
{
int i;
}
public class B
{
public static void main(String args[])
{
Value n1 = new Value();
Value n2 = new Value();
n1.i=n2.i=100;
System.out.println(n1.equals(n2));//Result is false
}
}
منظور من از طرح این سوال ها، یافتن درک درست و صحیح است که نگاه سطحی را از بین می برد.
نقل قول: نگاهی دوباره و جالب به تساوی
همه این مطالب شما یک پاسخ دارد و اون این هست که شرط تساوی بررسی محتوای حافظه هست خب وقتی شما چه از نوع اشیا و چه از نوع متغیر ها تعریف کنید فرقی به حال شرط ندارد شرط تساوی فقط محتوانی حافظه گرفته شده از دو طرف را بایت به بایت مقایسه میکند و وقتی این دو حافظه در یک بایت با هم تفاوت داشته باشند شرط شما false یا صفر خواهد بود در غیر این صورت true یا همان نتیجه یک را بر گشت خواهد داد.