Java
46 subscribers
42 photos
36 files
137 links
Download Telegram
class Simple {  

    public static void main(String[] args) {  

        // Overflow  

        int a = 130;  

        byte b = (byte) a;  

        System.out.println(a);  

        System.out.println(b);  

    }

}

--------------------------------------------

Output:

130

-126


وقتی داریم از type casting استفاده می‌کنیم باید به این نکته توجه کنیم که امکان داره دیتامون خراب بشه، چون داریم اونو از یک نوع بزرگتر به کوچکتر تبدیل می‌کنیم
در این مثال میبینیم که مقدار متغیر a بزرگتر از اندازه‌ای هست که درb جا بشه، (بیشترین مقدار byte ۱۲۷ هست)، بخاطر همین بر می‌گرده و از اول شروع به پرشدن میشه (اولین مقدار byte -۱۲۸ هست)
دقت کنید که اینجا هیچ گونه error ی وجود نداره
این اتفاق رو بهش میگن Overflow یا سرریز شدن
class Simple {  

    public static void main (String[] args) {  

        byte a = 10;  

        byte b = 10;  

        // byte c = a + b; 

        // Compile Time Error: because a + b = 20 will be int  

        byte c = (byte) (a + b);  

    System.out.println(c);  

    }

}

--------------------------------------------

Output:

20


در این مثال به دلیل اینکه جمع دو عدد a و b برابر یه عدد به صورت int خواهد بود حتما باید با استفاده از casting جمع دو عدد در نوع byte رو دوباره به byte تبدیل کنیم
و خب در غیر این صورت کامپایل error خواهیم داشت
Operators in java
Java Unary Operator Example: ++ and --


class OperatorExample {  

    public static void main (String args[]) {  

        int x = 10;  

        System.out.println(x++);//10 (11)  

        System.out.println(++x);//12  

        System.out.println(x--);//12 (11)  

        System.out.println(--x);//10  

    }

}

--------------------------------------------

Output:

10

12

12

10


در این مثال عملات‌های ++ و — رو نشون میده
همون طور که میبینید اگر عملات در جلوی متغیر
(x++)

وجود داشته باشه اول متغیر خونده میشه و بعد عملیات روی متغیر اعمال میشه
اما اگر عملات قبل از متغیر
(--x)

باشه، اول عملیات اجرا میشه و بعد متغیر خونده میشه
Java Unary Operator Example 2: ++ and --


class OperatorExample {  

   public static void main (String args[]) {  

      int a = 10;  

      int b = 10;  

      System.out.println(a++ + ++a);//10+12=22  

      System.out.println(b++ + b++);//10+11=21    

   }

}

--------------------------------------------

Output:

22

21
Java Unary Operator Example: ~ and !


class OperatorExample {  

   public static void main (String args[]) {  

      int a = 10;  

      int b = -10;  

      boolean c = true;  

      boolean d = false;  

      System.out.println(~a);//-11 (minus of total positive value which starts from 0)  

      System.out.println(~b);//9 (positive of total minus, positive starts from 0)  

      System.out.println(!c);//false (opposite of boolean value)  

      System.out.println(!d);//true  

   }

}

--------------------------------------------

Output:

-11

9

false

true


در این مثال دو نوع علامت مخالف وجود داره ! و ~
اولین علامت مخالف ~ هست که در واقع قرینه یک عدد رو به ما میده اما نه بصورت ریاضی
مثلا قرینه عدد 5 میشه -5 و بر عکسش
اما در اینجا اینطور نیست و وقتی میگیم قرینه عدد ۵ چون ۰ رو هم جز اعداد مثبت حساب میشه پس ما ۶ تا عدد مثبت داریم که قرینه اون میشه -۶
و برعکس اون قرینه عدد -۵ میشه ۴، چون ۵تا عدد مثبت از ۰ میشه ۴
و علامت ! هم که در مخالف true و false بودن متغیر کاربرد داره
Java Arithmetic Operator Example


class OperatorExample {  

    public static void main (String args[]) {  

        int a = 10;  

        int b = 5;  

        System.out.println(a + b);//15  

        System.out.println(a - b);//5  

        System.out.println(a * b);//50  

        System.out.println(a / b);//2  

        System.out.println(a % b);//0  

    }

}

--------------------------------------------

Output:

15
5
50
2
0
Java Arithmetic Operator Example: Expression


class OperatorExample{  

    public static void main (String args[]) {  

        System.out.println(10*10/ 5 + 3 - 1*4/2);  

    }

}

--------------------------------------------

Output:

21
Java Shift Operator Example: Left Shift


class OperatorExample{  

   public static void main(String args[]){  

      System.out.println(10<<2);// 10*2^2=10*4=40  

      System.out.println(10<<3);// 10*2^3=10*8=80  

      System.out.println(20<<2);// 20*2^2=20*4=80  

      System.out.println(15<<4);// 15*2^4=15*16=240  

   }

}

--------------------------------------------

Output:

40

80

80

240
Java Shift Operator Example: Right Shift


class OperatorExample {  

   public static void main (String args[]) {  

      System.out.println(10>>2);// 10/2^2=10/4=2  

      System.out.println(20>>2);// 20/2^2=20/4=5  

      System.out.println(20>>3);// 20/2^3=20/8=2  

   }

}

--------------------------------------------

Output:

2

5

2
Java AND Operator Example: Logical && and Bitwise &


class OperatorExample{  

   public static void main(String args[]){  

      int a=10;  

      int b=5;  

      int c=20;  

      System.out.println(a<b && a<c);

      // false && true = false

      System.out.println(a<b & a<c);

      // false & true = false

   }

}

--------------------------------------------

Output:

false

false


علامت && و & در جاوا
این دو علامت بصورت - و - بین دوتا شرط قرار میگیره
تفاوت بین این دوتا این هست که در && شرط اول چک میشه و در صورت true بودن ، شرط بعدی چک میشه اما اگر شرط اولی false باشه دیگه شرط دومی چک کردن نمیشه
ولی در & هر دو شرط چک میشن، یعنی حتی اگر شرط اولی هم false باشه باز هم شرط دومی چک میشه
Java AND Operator Example: Logical && vs Bitwise &


class OperatorExample{  

   public static void main(String args[]){  

      int a=10;  

      int b=5;  

      int c=20;  

      System.out.println(a<b && a++<c); 

      // false && true = false

      System.out.println(a);//10 

      System.out.println(a<b & a++<c); 

      // false && true = false  

      System.out.println(a);//11   

   }

}

--------------------------------------------

Output:

false

10

false

11


در این مثال در چاپ اول از علامت && استفاده شده و چون شرط اول false هست دیگه شرط دوم چک نمیشه و به همین دلیل در خط بعد وقتی a رو چاپ میکنیم همون ۱۰ چاپ میشه
اما در چاپ سوم از علامت & استفاده شده و با اینکه شرط اول false هست باز هم شرط بعدی چک میشه و a++ اجرا میشه، بخاطر همین در خط بعدی وقتی a رو چاپ میکنیم، ۱۱ چاپ میشه
Java OR Operator Example: Logical || and Bitwise |


class OperatorExample{  

   public static void main(String args[]){  

      int a=10;  

      int b=5;  

      int c=20;  

      System.out.println(a>b || a<c);

      //true || true = true  

      System.out.println(a>b | a<c);

      //true | true = true  


      //|| vs |  

      System.out.println(a>b || a++<c);

      //true || true = true  

      System.out.println(a);//10 

      System.out.println(a>b | a++<c);

      //true | true = true  

      System.out.println(a);//11   

   }

}

--------------------------------------------

Output:

true

true

true

10

true

11


علامت || و | در جاوا
این دو علامت بصورت - یا - بین دوتا شرط قرار میگیره
تفاوت بین این دوتا این هست که در || شرط اول چک میشه و در صورت false بودن شرط میره سراغ شرط بعدی و اونو هم چک میکنه اما اگر شرط اولی true باشه دیگه شرط دومی چک نمیشه
ولی در | هر دو شرط چک میشن، یعنی حتی اگر شرط اولی هم true باشه باز هم شرط دومی چک میشه

در این مثال در چاپ سومی از علامت || استفاده شده و چون شرط اول true هست دیگه شرط دوم چک نمیشه و به همین دلیل در خط بعد وقتی a رو چاپ میکنیم همون ۱۰ چاپ میشه
اما در چاپ پنجم از علامت | استفاده شده و با اینکه شرط اول true هست باز هم شرط بعدی چک میشه و a++ اجرا میشه، بخاطر همین در خط بعدی وقتی a رو چاپ میکنیم، ۱۱ چاپ میشه
Java Ternary Operator Example


class OperatorExample{  

   public static void main(String args[]){  

      int a=2;  

      int b=5;  

      int c=10;

      int min1=(a<b)?a:b;  

      System.out.println(min1);  

      int min2=(c<b)?c:b;  

      System.out.println(min2);  

   }

}

--------------------------------------------

Output:

2

5
Java Assignment Operator Example


class OperatorExample{  

   public static void main(String args[]){  

      int a=10;  

      int b=20;  

      a+=4;//a=a+4 (a=10+4)  

      b-=4;//b=b-4 (b=20-4)  

      System.out.println(a);  

      System.out.println(b);  

   }

}

--------------------------------------------

Output:

14

16
Java Assignment Operator Example: Adding short


class OperatorExample{  

   public static void main(String args[]){  

      short a=10;  

      short b=10;  

      //a+=b;//a=a+b internally so fine  

      a=a+b;  

      System.out.println(a);  

   }

}

--------------------------------------------

Output:

Compile time error


اما بعد از type casting

class OperatorExample{  

   public static void main(String args[]){  

      short a=10;  

      short b=10;  

      a=(short)(a+b);//20 

      System.out.println(a);  

   }

}

--------------------------------------------

Output:

20
Java If-else Statement
برای تست کردن یک شرط در جاوا از if استفاده می‌کنیم، نتیجه این شرط boolean هست که یا میتونه true باشه یا false
۴ نوع if وجود داره
if statement
if-else statement
nested if statement
if-else-if ladder
Java IF Statement


Syntax:


if(condition) {  

    //code to be executed  

}


در این نوع if، فقط در صورت true بودن شرط کدی که در آکلاد وجود داره رو اجرا میشه
طبق این الگوریتم در صورت true بودن شرط، کد درون if اجرا میشه و در غیر این صورت اون کد اجرا نمیشه