黑馬程序員.bobo.DAY.2

DAY-2

1.標識符

1.1 Java語言基礎組成

1.1.1關鍵字

被計算機語言賦予了特殊的含義的字符 java

1.1.2標識符

l 在程序中自定義的一些名稱 微信

l 由26個字母大小寫,數字:0-9符號:_$z組成(下劃線和美圓號) 函數

l 定義合法標識符規則: 測試

1.數字不能夠開頭。例如:123bobo 編碼

2.不可使用關鍵字。例如 static public  spa

l Java中嚴格區分大小寫 code

l 注意: 在起名字的時候,爲了提升閱讀性,要儘可能有意義 對象

例如:class Add() 接口

 

Java中的名稱規範: 內存

l 包名:多單詞組成時全部字母小寫。

xxxyyyzzz

l 類名接口名:多單詞組成時,全部單詞的首字母大寫。

XxxYxxZzz

l 變量名和函數名:多單詞組成時,第一個單詞首字母小寫,第二個單詞開始每一個單詞首字母大寫。

xxxYyyZzz

l 常量名:全部字母都大寫,多單詞組成時每一個單詞用下劃線鏈接。

XXX_YYY_ZZZ

1.1.3註釋

l //單行註釋

l /*

多行註釋

*/

 

 

2.常量

 2.1常量與變量

l 常量表示不能改變的數值。

l Java中常量的分類:

1.整數常量,全部整數

2.小數常量,全部小數

3.布爾型常量,較爲特有,只有兩個數值,true flase.

4.字符常量。將一個數字字母或者符號用單引號(‘’)標識。‘4

5.字符串常量。將一個或者多個字符用雙引號標識。「adc

6.null常量。只有一個數值就是:null.

l 對於整數:Java有三種表現形式。

十進制:0-9 滿101

八進制:0-7 滿80頭表示。

十六進制:0-9A-F滿161。用0x開頭表示。 

3.進制的特色

編碼表ASCII

010...001--A

011...001--B

 

科學型計算機能夠計算二進制

 

規律:進制越大,表現形式越短

 

class VarDemo
{
public static void main(String[] args)
{
System.out.println(60);
System.out.println(0x3c);
}
}



 

4.進制轉換(十進制和二進制)

十進制→二進制 6的二進制

原理:對十進制數進行除2預算。

 

二進制→十進制

原理:二進制乘以2的過程。

 

110
0*2(0)+1*2(1)+1*2(2)=    數值*2(0)+數值*2(1)+數值*2(2)
    0 +  2    + 4   =6
0	0	1	1	0	1	0	1 =
128	64  32  16  8   4   2   1 = 53
 
5+4=9
 101
+100
1001=9



5.進制轉換(八進制和十六進制)

其它進制轉換。

先轉換二進制

 

轉成16進制 四個二進制位就是一個十六進制位

90
0101-1010
 5    10 A
90=0x5A



 

轉成8進制

三個二進制表明1

001-011-010
1    3   2



6.進制轉換(負數二進制)

負數的二進制表現形式

6==110

-6:其實就是6的二進制的取反+1

取反:將二進制的1變成0 0變成1

0000-0000 0000-0000 0000-0000 0000-0110
 
 1111-1111  1111-1111 1111-1111 1111-1001
+0000-0000 0000-0000 0000-0000 0000-0001

------------------------------------------
 0000-0000 0000-0000 0000-0000 0000-1010 =-6



 

負數的最高位都是1

 測試

class VarDemo
{
public static void main(String[] args)
{
System.out.println(Integer.toBinaryString(-6));
System.out.println(0x3c);
}
}



7.變量

變量:就是將不肯定的數據進行存儲。

也就是須要在內存中開闢一個空間

就是經過明確數據類型,變量名稱數據來完成

class VarDemo
{
public static void main(String[] args)
{
//定義變量的格式:
//數據類型 變量名 = 初始化值;
//定義一個int類型的變量,取值爲4;
int x =4;
System.out.println(x);
x = 10;
System.out.println(x);
//演示其它數據類型。
byte b = 2; //-128-127;
//byte b1 = 128;
short s = 30000;//別超過域 由於有可能報錯損失精度
long l = 41;
float f = 2.4f;
double d = 34.56;
char ch = '4';
char ch1 = 'a';
char ch2 = '+';
char ch3 = ' ';
boolean bo = true;
boolean bo1 = false;
/*
何時定義變量?
當數據不肯定的時候。須要對數據進行存儲時。就定義一個變量來完成存儲動做。
*/
int a = 5;
a = a + 6;
}
}



8.類型轉換

byte b  = 3;
b = b + 2;
System.out.println(b);
 
97 a
98 b
System.out.println(‘a’+1);
98



9.算術運算符

9.1運算符

10.轉義字符

//字符串數據和任何數據使用+都是相鏈接,最終都會變成字符串
//System.out.println("ab"+5+5);
/*
轉義字符:經過\來轉變後面的字母或者符號的含義。
\n:換行
\b:退格。至關於backpace
\r:按下回車鍵。
\t:製表符。至關於tab鍵
*/
System.out.println("hello\nworld");//換行
System.out.println("hello\bworld");// 退格
System.out.println("hello\rworld");//按下回車鍵。
System.out.println("hello\tworld");//製表符。至關於tab鍵。



 

 

11.賦值和比較運算符

11.1 賦值運算符

l 符號:

=+=-=*=/=%=

l 示例:

int a,b,c; a=b=c=3;
int a = 3; a+=5;等同運算a=a+5;



l 思考:

short s =3;

s=s+2;編譯失敗,由於s會被提高會int類型,運算後的結果仍是int類型,沒法賦值給short類型。

s+=2; 編譯經過,由於+=運算符在給s賦值時,自動完成了強轉操做

有什麼區別?

11.2比較運算符

運算符

運算

範例

結果

==

相等於

4==3

false

!=

不等於

4!=3

true

<

小於

4<3

false

>

大於

4>3

true

<=

小於等於

4<=3

false

=>

大於等於

4>=3

true

instanceof

檢查是否類的對象

「hello」 instanceof

true

1:比較運算符的結果都是boolean型,也就是要麼是true,要麼是false

2:比較運算符」==」不能誤寫成」=」。

 

11.3邏輯運算符

運算符

運算

範例

結果

&

AND()

false&true

false

|

OR()

false|true

true

^

XOR(異或)

true^false

true

!

Not()

true

false

&&

AND(短路)

false&&true

false

||

OR(短路)

false||true

true

//邏輯運算符用於鏈接boolean類型的表達式。
//x > 3 & x <6 = true & true =true;//而且
/*
 true  & true =true ;
 true  & false = false ;
 false & true = false ;
 false & false = false ;
&:只要兩邊的boolean表達式結果,有一個爲false,那麼結果爲false,
  只有兩邊都爲true 結果爲true;
*/
/*true | true = true;
false | true =true;
true | false = true ;
false | false = false;
|: 兩邊只要有一個爲true,結果爲true。
   只有兩邊都有false,結果爲false。
*/
/*^:異或:就是和|有點不同。當true^ true =false;
true ^ true =false;
true ^ false =true ;
false ^ true = true ;
false ^ false = false;
^:兩邊都相同結果是false;
  兩邊不一樣結果爲true;
*/
/*
!true
!!true
*/
int a = 4;
a>3 && a<6;
/*
&和&&的特色
&:不管左邊是true是false。右邊都運算。
&&:當左邊爲false時,右邊不運算。
|:兩邊都參與運算。
||:當左邊爲true。右邊不運算。
*/



 

11.4位運算符

運算符

運算

範例

<<

左移

3<<2 =12 → 3*22=12

>>

右移

3>>1 =1 → 3/21=1

>>>

無符號右移

3>>>1=1 → 3/2=1

&

與運算

 

|

或運算

 

^

亦或運算

 

~

反碼

 

 

3<<2=12; 3<<1=6; 3<<3=24

3*4(22次方:1 2 4)=12 3*2(2的一次方:1 2)=6 3*8(23次方:1 2 4 8)=24

0000-0000 0000-0000 0000-0000 0000-0011=3

向左位移兩位

00-0000 0000-0000 0000-0000 0000-001100=12

 

6>>2 =1; 6>>1 =3;

6/22=1取整 6/21=3;

0000-0000 0000-0000 0000-0000 0000-0110=6

向右位移兩位

00-0000-0000 0000-0000 0000-0000 0000-01=1

 

3<<2 → 3*22

3<<3 → 3*23

<<:其實就是乘以2的移動的位數次冪。

>>:就是除以2的移動的位數次冪 取整

>>

|111111-1111 1111-1111 1111-1111  1111-10|10=-6

<<<

001111-1111 1111-1111 1111-1111  1111-10|10

>>:最高位補什麼由原有的最高位值而定。

 若是最高爲-有一後,用0補空位。

若是最高位1,右移後,用1補空位。

>>>不管最高位是什麼,右移後,都用0補空位

 

&

6&3=

0就視爲假 1就視爲真

110

&011

 010=2

 

|

6|5=7

110

|101

111=7

 

^:

6^5=

 110

&101

  011=3

 

 

????問題:~6 爲何結果是-7

第一步:6換二進制 000...000110 6

第二步:取反

111...111001

而後計算 等於2?不是7

111...111010 

 

7^4

111

^100

011=3

^100

111=7; 7^4^4=7; 7^5^5=7

一個數異或同一個數兩次,結果仍是那個數

 

練習:1。最有效的方式計算2*8

1000

*0010

 0000

1000

10000=16

000..00010 000 

這個高效

2<<3

2.對兩個整數變量的值進行互換(不須要第三方變量)

//經過第三方變量,
// int temp;
// temp =n;
// n=m;
// m=temp;
//不用第三方變量
System.out.println("n="+n+",m="+m);
// 11 = 3 + 8;
// 3 = 11 - 8;
// 8 = 11 - 3;
// n = n + m;// 定義:n=3 m=8 而後n=11 m = 8若是n和m的值很是大,容易超出int 範圍。
// m = n - m;// 定義:n = 11 m =8 而後m = 3 n=11
// n = n - m;// 定義:m = 3 n = 11 而後n = 8 m 3
n = n ^ m;
m = n ^ m;//(n^m)^m
n = n ^ m;//(n^m)^n;
System.out.println("n="+n+",m="+m);



 

12.語句(if)

12.1流程控制結構

12.1.1判斷結構

if語句

三種格式:

1. 

if(條件表達式)
{
執行語句;
}



2.

if(條件表達式)
{
執行語句;
}
              else
{
執行語句;
}



3.

if(條件表達式)
 {
  執行語句;
 }
 else if (條件表達式)
 {
執行語句;
 }
 .....
 else
 {
   執行語句;
 }



12.1.2選擇結構

switch語句

格式:

switch(表達式)
{
case 取值1:
 執行語句;
    break;
case 取值2:
 執行語句;
 break;
....
default:
 執行語句;
 break;
}



 Switch語句特色:

 a.switch 語句選擇的類型只有四種:byte short int char.

 b.case之間default沒有順序.先執行第一個case,沒有匹配的case再執行default

 c.結束switch語句的兩種狀況:遇到break,執行到switch語句結束.

 d.若是匹配的case或者default沒有對應的break,那麼程序會繼續向下執行,運行能夠執行的語句,直到遇到break或者switch結尾結束

 

添加好友

小額贊助

微信
支付寶

相關文章
相關標籤/搜索