1. 程式人生 > >java的基本程式設計結構

java的基本程式設計結構

java常見概念

  • 物件:物件是類的一個例項,有狀態和行為。
  • 類:類是一個模板,它描述一類物件的行為和狀態。
  • 方法:方法就是行為,一個類可以有很多方法。邏輯運算、資料修改以及所有動作都是在方法中完成的。
  • 例項變數:每個物件都有獨特的例項變數,物件的狀態由這些例項變數的值決定。

基本語法

  • 大小寫敏感:Java是大小寫敏感的,這就意味著識別符號Hello與hello是不同的。
  • 類名:對於所有的類來說,類名的首字母應該大寫。如果類名由若干單片語成,那麼每個單詞的首字母應該大寫,例如 MyFirstJavaClass 。
  • 方法名:所有的方法名都應該以小寫字母開頭。如果方法名含有若干單詞,則後面的每個單詞首字母大寫。
  • 原始檔名:原始檔名必須和類名相同。當儲存檔案的時候,你應該使用類名作為檔名儲存(切記Java是大小寫敏感的),檔名的字尾為.java。。
  • 主方法入口:所有的Java 程式由public static void main(String []args)方法開始執行。在java中main方法並沒有給作業系統返回“退出程式碼”,如果main方法正常退出,那麼java應用程式退出程式碼為 0 ,表示成功退出,強制終止程式碼可以呼叫System.exit方法

資料型別

1.整型

   int  : int資料型別是32位,在java中通過補碼的形式表示資料其範圍:最小值是-2,147,483,648(-2^31);最大值是2,147,483,647(2^31 - 1);

long :long資料型別是64位、有符號的以二進位制補碼錶示的整數;最小值是-9,223,372,036,854,775,808(-2^63);最大值是9,223,372,036,854,775,807(2^63 -1);在表示long型資料是 通常在末尾 加‘l’  或 ‘L’  例如 long a = 1000l;

short : short資料型別是16位、有符號的以二進位制補碼錶示的整數最小值是-32768(-2^15);最大值是32767(2^15 - 1);

byte:byte資料型別是8位、有符號的,以二進位制補碼錶示的整數最小值是-128(-2^7)最大值是127(2^7-1)

注意:java中沒有任何無符號型別 (unsighed)

2.浮點型別

float : float資料型別是單精度、32位、符合IEEE 754標準的浮點數;float的精確範圍為小數點後(6 ~ 7)位

double :double資料型別是雙精度、64位、符合IEEE 754標準的浮點數;doube的精確範圍為小數點後(15)位

在IEEE754中規定了以下表示溢位的三個特殊值

    正無窮

    負無窮

    NaN(not  a  number )

3.char型別 char型別是一個單一的16位Unicode字元,

4. boolean: 用於邏輯判斷 true false

變數

1.變數初始化

                           宣告一個變數後,必須使用賦值語句對其進行賦值,不能使用未初始化的變數,一下語句便是錯誤的

int a;
System.out.println(a);//變數未初始化,不能進行使用

2.常量

    java中使用關鍵字final表示這個變數只能賦值一次,就不能在更改了,通常常量的關鍵字全部大寫。

3.列舉型別

    jdk1.5之後引入列舉型別,有時候變數的取值在一個有限的集合內時,這是就可以自定義列舉型別語法如下:

enum 類名{
   變數1
   變數2
…………
}

4.字串

  1.String

     從概念上將String就是一個Unicode字串序列,Java並沒有內建的字串型別,而是在標準java類庫中提供了一個預定類String ,同時String型別並沒有提供用於修改的方法

2.構建字串

   由於String是不可變字串每次構建都會生成一個新的String物件,所以StringBulider類就可以避免這個問題

StringBulider sb = new StringBulider();
sb.append("字串")
……
String s = sb.toString();

3.輸入和輸出

   輸入:構建Scanner物件  如 : Scanner sc = new Scanner(System.in); 構建Scanner物件,並且指定物件的輸入為鍵盤System.in  這個輸入流可以進行更改

Tips:因為輸入是可見的,所以Scanner類不適合用來從控制檯讀取密碼,JavaSe6特別引入 Console類實現這個目的

import java.io.Console;
 
/**
 * @author yiahgn
 * @create 2018-08-13
 **/
public class Test {
    public static void main(String[] args) {
       Console console = System.console();
        String name = console.readLine("please input your name:");
        char[] chars = console.readPassword("please input password:");
        String password = String.valueOf(chars);
        System.out.println("your name:"+name+" your password:"+password);
    }
}

   注意,只能通過命令列執行。IDE中會報空指標異常

5.大數值

  如果基本整數和浮點數精度不能滿足要求,java.math包中提供的BigInteger和BigDecimal 這兩個類可以處理包含任意長度數字序列的大數值

BigInteger a = BigInteger.valueOf(數值)

在處理大數值時不能使用算數運算子 + -  / * 處理大資料必須使用相應的方法 如 add  divide  multiply 

        6.陣列

常用的幾種方法:

     1.陣列拷貝

//Arrays.copy( nums[]  ,legth)
int []  nums = {1,2,,3,4,5};
itn [] tmp = Arrays.copy(nums ,nums.legth);
//將陣列nums中指定長度的資料拷貝到tmp陣列中

   2.static type copyOfRange(type[] a, int start , int end)

     返回與a型別相同的陣列,長度為length或者 end - start

3. static int  binarySearch(type [] a  , type v)

    static int binarySearch(type [] a  ,int start, int  end ,  type v)

    使用二分搜尋演算法查詢值v 如果成功返回下標,否則返回一個負值

4. static void sort(type [] a)

   使用快速排序演算法對陣列進行排序

5. static void fill (type []  a  type v)

   將陣列所有資料元素填充為v