JAVA-編程規範及基本概念

編程規範不是語法, 是業內約定俗成的規則,程序員的潛規則。


Java的編程規範如下:(詳細版本請參見阿里巴巴java手冊)

  1 每個部分之間用空行隔開。

  2 要有空格和縮進。

  3 所有類名要首字母大寫,其它單詞首字母也大寫。

  4 變量名和方法名首字母小寫,其它單詞首字母大寫。

  5 包名全小寫,不同單詞用點或者下劃線隔開。

  6 常量所有字母都大寫,不同單詞之間用下劃線隔開。XXX_YYY_ZZZ

  7 最好望文知意,儘量不要使用中文。


  變量就是用於存取數據的,可以進行各種運算。變量本質就是一塊內存。

          程序必須的硬件是cpu和內存,CPU用於運算,內存用於儲存數據。

          無盤工作站:只包含CPU和內存。


  硬盤和內存的區別

    內存是cpu可以直接訪問的存儲,因此速度快;但關機後會消失,不能永久保存。(此處不考慮RAM和ROM的問題)

    硬盤cpu不能直接訪問,需要加載到內存中才能使用,因此速度慢;但關機後可以保存。

    數據在內存中以 變量 的形式存儲;在硬盤中以 文件 的形式存儲。


  Java是強類型語言,變量在使用前必須聲明。

  Java變量使用前必須聲明和初始化,聲明就是變量第一次出現時,帶類型定義。聲明只做一次,以後直接使用即可。初始化就是第一次給變量賦值。


  變量名必須先是標識符,標識符命名的一些規則

  1 必須是字母、數字、下劃線、$等,不能是隨意的字符。

  2 數字不能是第一個字符。

  3 不能是Java關鍵字,比如:public static class ….

  4 不可以使用關鍵字和保留字,但能包含關鍵字和保留字。

  5 可以是漢字,但是不推薦使用。

  6 Java中嚴格區分大小寫,長度無限制。

  7 標識符不能包含空格。

  標識符可以給類/變量/屬性/方法/包 起名字。


  JAVA中所有關鍵字均是小寫,小寫的不一定都是關鍵字。

  保留關鍵字:const goto

  Java的虛擬機是用C++寫的。

  extends  繼承 ;  final用來定義常量 ;

  try catch  finally 的組合用於處理異常 ;

  implements 實現接口 和extends組合用於實現繼承;

  instance of 判斷變量類型(多態的內容);interface 接口;

  native  本地(調用系統);new 創建對象;

  private  protected  public 代表訪問權限;

  return 方法返回值; strictfp  精確浮點運算;

  enum  枚舉 ;  transiend  I/O的內容


  Java中變量按照數據類型分爲基本數據類型和引用數據類型。

  基本類型有8種。

     整型:byte(8 bit)  short   int(默認類型)   long

     浮點型:float double (默認類型)

     字符型:char('')

     布爾類型: boolean(只能取值爲true 或false,不能取null)


   補充:按照在類中存在的位置的不同:成員變量 vs 局部變量


  引用數據類型是更廣泛的,包括所有的:類、接口、數組、枚舉和標註。


  內存/硬盤的存儲單位:

           計算機最基本的存儲單位,一個二進制位(bit)。

           計算機的底層只能存1和0,代表有電和沒電。   

           計算機由很多個二進制位組成。

           存儲最常用的單位是 字節(byte),8個bit等於1個byte。

           文件/內存的大小經常使用 kb / mb / gb / tb ,1k = 1024。也就是2的10次方。


  基本類型包括:

   整型4種  byte(1字節) / short(2) / int(4) / long(8)

   浮點2種  float(4) / double(8)

   布爾     boolean(1)

   字符     char(2)


  byte 的表述範圍: -128 到 127 (負的2的7次方到正的2的7次方減1)

  int 的表述範圍: -2的31次方到2的31次方減1(正負21億多)


  整型默認是int,浮點默認是double。


  整型可以用二進制、八進制、十六進制和十進制。其中,十六進制的10用A表示,15用F表示。以0開始的是八進制,以0x開始的是十六進制

    10  -> 10

   010  -> 8

  0x10  -> 16


 二進制和十進制的進制轉換:

   二進制中,第一位叫符號位,0代表非負數,1代表負數,不參與運算。

   正數的二進制轉十進制 (以八位二進制爲例)

   權重:符號  64 32 16  8 4 2 1

         0    1  1  1   0 1 0 1 -> 64+32+16+4+1 = 117

   練習: 0101 1011 -> 64+16+8+2+1 = 91


  正數的十進制轉二進制

   除2取餘數,反向輸出。

   91    餘1

   45    餘1

   22    餘0

   11    餘1

   5     餘1

   2     餘0

   1     餘1

   0       0101 1011

    57轉二進制0011 1001


  負數的十進制轉二進制    需要先把正數的轉換完成,再按位取反後加1(補碼)

  十進制轉二進制:

    -95

     95 -> 95-64 = 31-16 = 15-8 =7 -4 =3 -2 = 1

      0        1  0   1       1     1     1   1 -> 0101 1111

   1010 0000+1 = 1010 0001 


   -108  -> 0110 1100 -> 1001 0100


  二進制轉十進制:

   先減1,再按位取反可以得到對應的正數。

   按位取反後加1(補碼)。

   1010 0001 -1 = 1010 0000 -> 0101 1111 -> -95

   0101 1110 +1 = 0101 1111 -> -95


   1100 0011 -> 0011 1101 -> -61


  設計一套砝碼,要求能稱1-100的所有重量,最少幾個砝碼。(砝碼只在天平一邊)

   二進制表示1-100 所以 64 32 16 8 4 2 1 就可以。


 long類型範圍比int大,long類型的常數後面加L/l。


 浮點類型:(小數)

  float和double都是浮點,但Java的浮點都不準,只是一個算法近似值。

  float叫單精度浮點,double叫雙精度浮點。

  0.1+0.2 不等於0.3 但是: 0.1+0.2+0.2 等於0.5 。

  系統默認浮點是double,float必須加 f/F。0.3 是double , 0.3f是float。


 如果計算比long大的整數或者精確(按多少位)運算,使用BigDecimal類。


 字符類型:

   字符類型的變量具備兩種身份:字符和整數。對外是字符,但存的是整數,就是字符的編碼。常見的編碼:'A':65  'a':97  '0':48。

   '0'  0  "0"不一樣,分別是字符0,數字0和字符串0。

   字符的表示方式:'a'   '\uXXXX'   97 。

   \ 是轉義字符,常見的用法:  '\n'換行  '\t'跳一個製表位  '\\'代表一個\


  基本類型的類型轉換:


 1、 自動轉換髮生在小的表述範圍到大的表述範圍,即容量小的數據類型自動轉換爲容量大的數據類型。

       布爾類型不參與類型轉換。

       byte-> short / char -> int -> long -> float -> double

       常數可以自動類型轉換。

       注意:byte  short char之間做運算,結果爲int型!


 2 、大的向小的轉換時,需要強制類型轉換,就是(目標類型)


 

作業:

  1 輸入圓的半徑,輸出圓的周長(2*PI*r)和麪積(PI*r*r)。

  2 輸入4位整數,反向輸出。比如:輸入1234,輸出4321。 1230 -> 321。

public class Reverse{

  public static void main(String[] args){

    Scanner sc = new Scanner(System.in);

    System.out.println("請輸入一個四位整數");

    int num = sc.nextInt(); //1 讀入

    int a = num%10; //個位數

    int b = num/10%10;//十位數

    int c = num/100%10;//百位數

    int d = num/1000;//千位數   2 取位數

    int res = a*1000+b*100+c*10+d;//3 拼裝

    System.out.println(res);

  }

}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章