Java基礎班學習筆記(2)

來源:互聯網
上載者:User

標籤:

知識要點:

關鍵字     標識符    注釋     常量、進位和進位轉換    變數    資料類型和類型轉換    運算子     語句  1:關鍵字(掌握)    (1)被Java語言賦予特定含義的單詞    (2)特點:        全部小寫。    (3)注意事項:        A:goto和const作為保留字存在。        B:類似於Notepad++這樣的進階記事本會對關鍵字有特殊顏色標記

用於定義存取權限修飾符的關鍵字

private

protected

public

   

用於定義類,函數,變數修飾符的關鍵字

abstract

final

static

synchronized

 

用於定義類與類之間關係的關鍵字

extends

implements

     

用於定義建立執行個體及引用執行個體,判斷執行個體的關鍵字

new

this

super

instanceof

 

用於異常處理的關鍵字

try

catch

finally

throw

throws

用於包的關鍵字

package

import

     

其他修飾符關鍵字

native

strictfp

transient

volatile

assert

  2:標識符(掌握)(1)就是給類,介面,方法,變數等起名字的字元序列(2)組成規則:    A:英文大小寫字母    B:數字    C:$和_(3)注意事項:    A:不能以數字開頭    B:不能是java中的關鍵字    C:區分大小寫(4)常見的命名規則(見名知意)A: 包 全部小寫    單級包:小寫    舉例:liuyi,com    多級包:小寫,並用.隔開    舉例:cn.itcast,com.baiduB: 類或者介面    一個單詞:首字母大寫    舉例:Student,Demo    多個單詞:每個單字首大寫    舉例:HelloWorld,StudentNameC:方法或者變數   一個單詞:首字母小寫    舉例:name,main   多個單詞:從第二個單詞開始,每個單字首大寫    舉例:studentAge,showAllNames()D:常量   全部大寫   一個單詞:大寫    舉例:PI   多個單詞:大寫,並用_隔開    舉例:STUDENT_MAX_AGE  3:注釋(掌握)(1)就是對程式進行解釋說明的文字(2)分類:  A:單行注釋 //  B:多行注釋 /**/  C:文檔注釋(後面講) /** */(3)把HelloWorld案例寫了一個帶注釋的版本。  後面我們要寫一個程式的過程。  需求:  分析:  實現:  代碼體現:(4)注釋的作用  A:解釋說明程式,提高了代碼的閱讀性。  B:可以協助我們偵錯工具。    後面我們會講解一個更高端的一個調試工具  4:常量(掌握)(1)在程式執行的過程中,其值不發生改變的量(2)分類:  A:字面值常量  B:自訂常量(後面講) (3)字面值常量  A:字串常量 "hello"  B:整數常量 12,23  C:小數常量 12.345  D:字元常量 ‘a‘,‘A‘,‘0‘  E:布爾常量 true,false  F:空常量 null(後面講) (4)在Java中針對整數常量提供了四種表現形式  A:二進位 由0,1組成。以 0b開頭。  B:八進位 由0,1,...7組成。以 0開頭。  C:十進位 由0,1,...9組成。整數預設是十進位。  D:十六進位 由0,1,...9,a,b,c,d,e,f(大小寫均可)組成。以 0x開頭。 進位概述以及二進位,八進位,十六進位圖解  5:進位轉換(瞭解)(1)其他進位到十進位  係數:就是每一個位上的數值  基數:x進位的基數就是x  權:對每一個位上的資料,從右,並且從0開始編號,對應的編號就是該資料的權。   結果:係數*基數^權次冪之和。(2)十進位到其他進位  除基取餘,直到商為0,餘數反轉。(3)進位轉換的快速轉換法  A:十進位和二進位間的轉換   8421碼。  B:二進位到八進位,十六進位的轉換        二進位到八進位       3位組合            100110        二進位到十六進位    4位組合            100110 任意進位到十進位的轉換 十進位到任意進位的轉換 快速的進位轉換法 . 原碼反碼      在電腦內,有符號數有3種標記法:原碼、反碼和補碼。所有資料的運算都是採用補碼進行的。原碼 :    就是二進位定點標記法,即最高位為符號位,“0”表示正,“1”表示負,其餘位表示數值的大小。反碼 :    正數的反碼與其原碼相同;負數的反碼是對其原碼逐位取反,但符號位除外。補碼 :    正數的補碼與其原碼相同;負數的補碼是在其反碼的末位 原碼反碼補碼的講解  6:變數(掌握)(1)在程式的執行過程中,其值在某個範圍內可以發生改變的量(2)變數的定義格式:  A:資料類型 變數名 = 初始化值;  B:資料類型 變數名;    變數名 = 初始化值;  7:資料類型(掌握)(1)Java是一種強型別語言,針對每種資料都提供了對應的資料類型。(2)分類:  A:基礎資料型別 (Elementary Data Type):4類8種  B:引用資料類型:類,介面,數組。(3)基礎資料型別 (Elementary Data Type)  A:整數 佔用位元組數   byte      1   short     2   int         4   long      8  B:浮點數   float      4   double   8  C:字元   char       2  D:布爾   boolean 1            注意:   整數預設是int類型,浮點數預設是double。      長整數要加L或者l。   單精確度的浮點數要加F或者f。  8:資料類型轉換(掌握) (1)boolean類型不參與轉換 (2)預設轉換  A:從小到大  B:byte,short,char -- int -- long -- float -- double  C:byte,short,char之間不相互轉換,直接轉成int類型參與運算。 (3)強制轉換  A:從大到小  B:可能會有精度的損失,一般不建議這樣使用。  C:格式:   目標資料類型 變數名 = (目標資料類型) (被轉換的資料);  (4)思考題和面試題:#面試#   A:下面兩種方式有區別嗎?   float f1 = 12.345f;   float f2 = (float)12.345;   B:下面的程式有問題嗎,如果有,在哪裡呢?   byte b1 = 3;   byte b2 = 4;   byte b3 = b1 + b2;    //有,因為變數相加會先看類型問題,這個是型別提升,所以有問題(byte相加                                                會類型提升--int,int賦值 給byte而沒有經過強轉, 所以編譯會報錯)   byte b4 = 3 + 4;        //沒有,常量,先計算出來,看結果是否超過byte範圍,如果不超過就不報錯                                                在定義Long或者Float類型變數的時候,要加L或者f。     整數預設是int類型,浮點數預設是double。     byte,short在定義的時候,他們接收的其實是一個int類型的值。     這個是自己做了一個資料檢測的,如果不再它們的範圍內,就報錯。   C:下面的操作結果是什麼呢?   byte b = (byte)130;    //-126(詳解見下)   D:字元參與運算   是尋找ASCII裡面的值   ‘a‘ 97   ‘A‘ 65   ‘0‘ 48      System.out.println(‘a‘);    //結果:a   System.out.println(‘a‘ + 1);    //結果:98   E:字串參與運算   這裡其實是字串的串連   System.out.println("hello"+‘a‘+1);    //helloa1   System.out.println(‘a‘+1+"hello");    //98hello   System.out.println("5+5="+5+5);    //5+5=55   System.out.println(5+5+"=5+5");    //10=5+5 
思考題:在java中為什麼  int的範圍是-2^31到2^31-1弄清楚為什麼java中Byte類型的取值範圍是-128~127 ?也就明白上面的問題了:    Byte佔一個位元組8位,首位是符號位,最大值為0111 1111即127,關鍵是這個-128,有人說首位是符號位,那就是剩餘的7位表示真值,最大為111 1111,最小為000 0000,那最小即為1000 0000,就是-128,(關鍵是不是說好首位是符號位了嗎?怎麼負數算真值得時候又把首位1給算進去了?) (負數)最大 1111 1111 代表的是-1 最小1000 0000 代表的是 -128 這個很難理解嘛?    1111 1111、1000 0000代表的是-1,-128的補碼,在記憶體中,存放的都是補碼,不是涉及到負數,負數所謂的補碼就是他們絕對值的原碼的取反加+1      比如 -1的絕對值是1 1的原碼是0000 0001 反碼是 1111 1110反碼+1 也就是補碼就是 1111 1111    -128的絕對值是 128  原碼是 1000 0000 反碼是 0111 1111反碼+1 也就是 1000 0000(補充:)
①在記憶體中,存放的都是補碼,不是涉及到負數,都用補碼,正數、負數在記憶體中都是補碼形式表示,只不過正數的補碼與其原碼相同,而負數的補碼是其絕對值的原碼的反碼+1
128:10000000-128:10000000 (這裡的1即是符號位,也是數值位)
/* byte b = 130;有沒有問題?如果我想讓賦值正確,  可以怎麼做?結果是多少呢? 練習:byte b = (byte)300;*/class DataTypeDemo7 { public static void main(String[] args) {  //因為byte的範圍是:-128到127。  //而130不在此範圍內,所以報錯。  //byte b = 130;   //我們可以使用強制類型轉換  byte b = (byte) 130;   //結果是多少呢?  System.out.println(b); }}/* 分析過程:  我們要想知道結果是什麼,就應該知道是如何進行計算的。  而我們又知道電腦中資料的運算都是補碼進行的。  而要得到補碼,首先要計算出資料的二進位。   A:擷取130這個資料的二進位。   00000000 00000000 00000000 10000010   這是130的原碼,也是反碼,還是補碼。  B:做截取操作,截成byte類型的了。   10000010   這個結果是補碼。  C:已知補碼求原碼。     符號位 數值位   補碼: 1 0000010      反碼: 1 0000001      原碼: 1 1111110 = -126*/
附錄:

運算子的優先順序(從高到低)

優先順序

描述

運算子

1

括弧

()、[]

2

加號或減號

+、-

3

自增自減,非

++、--、!

4

乘除,取餘

*、/、%

5

加減

+、-

6

移位元運算

<<、>>、>>>

7

大小關係

>、>=、<、<=

8

相等關係

==、!=

9

按位與

&

10

按位異或

^

11

按位或

|

12

邏輯與

&&

13

邏輯或

||

14

條件運算

?:

15

賦值運算

=、+=、-=、*=、/=、%=

16

位賦值運算

&=、|=、<<=、>>=、>>>=

 

Java基礎班學習筆記(2)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.