【java基礎】基礎小總結

 

學習java,將本身的心得或總結寫下來吧。java

Java 標識符

標識符由字母,下劃線(_),美圓符($)和數字組成。c++

標識符不能以數字開頭。數組

標識符不能使java關鍵字。dom

標識符對大小寫敏感。函數

 

Java經常使用關鍵字工具

關鍵字學習

用途this

boolean, byte, char, double, float, int, long, short ,void spa

基本類型線程

new, super, this, instanceof, null

對象建立,引用

if, else, switch, case, default

選擇語句

do, while, for

循環語句

break, continue, return

控制轉移

try, catch, finally, throw, throws, assert

異常處理

synchronized

線程同步

abstract, final, private, protected, public, static

修飾說明

class, extends, interface, implements, import, package

類,繼承,接口,包

native, transient, volatile

其餘方法

true, false

布爾常量    

 

注意:

 

java中 的關鍵字均爲小寫字母,TRUE,NULL等不是關鍵字。

goto和const雖然在java中午做用,但還是java的關鍵字。

 

java註釋

單行註釋符://

//這是單行註釋符

 

 

多行註釋符:/*……*/

/*

這是多行註釋符

*/

 

 

文檔註釋:/**……*/

/**
  * 文檔註釋能被java文檔化工具javadoc識別處理,在自動生成文檔是有用
  */ 

Java數據類型

Java數據類型包括簡單數據類型(基本類型)和複合數據類型(引用類型)

基本類型:表明語言能處理的基本數據。特色:佔用的存儲空間固定。

整數類型:byte,short,int,long

浮點類型:float,double

字符類型:char

布爾類型:boolean

引用類型:一般由多個基本數據類型或引用類型組合構成。

類:class

接口:interface

數組

【注意】java的字符串實際上是String類的常量,它不是java數據類型。

 

關鍵字

數據類型

所佔字節

默認值

取值範圍

byte

字節型

1

0

-2^7 ~ 2^7-1

short

短整型

2

0

-2^15 ~ 2^15-1

int

整型

4

0

-2^31 ~ 2^31-1

long

長整型

8

0

-2^63 ~ 2^63-1

float

單精度浮點型

4

0.0F

1.4e^-45 ~ 1.4e^-45-1

double

雙精度浮點型

8

0.0D

4.9e^-324 ~ 1.798e^+308

char

字符型

2

0

0 ~ 65535

boolean

布爾型

1

false

true, false

 

常量

布爾常量:true,false

整數常量:有byte,short,int,long四種類型。有十進制,八進制,十六進制,二進制四種表示形式。

浮點常量:有float和double類型。有小數點形式和指數形式兩種。

字符常量:由一對單引號括起來的單個字符或以反斜線(\)開頭的轉義字符。如'j', '4'。

經常使用轉義字符

轉義字符

描述

\'

單引號字符

\''

雙引號字符

\\

反斜槓

\r

回車

\n

換行

\f

走紙換頁

\t

橫向跳格

\b

退格

 

字符串常量:有雙引號括起來的由0個或多個字符組成的字符序列。字符串能夠包含轉義字符。

 

變量的取值範圍

/**
* Create by libra
*/

public class VariablesDemo {
    /**變量的取值範圍*/
    public static void main(String[] args) {
        System.out.println("數據的取值範圍:");
        System.out.println("字節型: " + Byte.MIN_VALUE + " ~ " + Byte.MAX_VALUE);
        System.out.println("短整型: " + Short.MIN_VALUE + " ~ " + Short.MAX_VALUE);
        System.out.println("整型型: " + Integer.MIN_VALUE + " ~ " + Integer.MAX_VALUE);
        System.out.println("長整型: " + Long.MIN_VALUE + " ~ " + Long.MAX_VALUE);
        System.out.println("單精度浮點型: " + Float.MIN_VALUE + " ~ " + Float.MAX_VALUE);
        System.out.println("雙精度浮點型: " + Double.MIN_VALUE + " ~ " + Double.MAX_VALUE);

    }
}

 

 

輸出結果:

強制轉換

格式:變量 = (數據類型) 表達式

基本數據類型自動轉換順序:byteàshortàcharàintàlongàfloatàdouble.

【注意】布爾類型不能與其餘類型轉換。

 

運算符

運算符(雙目單目)稍微提下,位運算符。

算數運算符:

算數運算符

雙目運算符

單目運算符

+, -, *, /, %

++, --, -(負號)

 

關係運算符:

運算符優先級:(==,--) > ~ > ! > 算術運算符>移位運算符>關係運算符> &,^, | , &&, ||, ||

經常使用數學函數Math類

方法

功能

int abs(int i)

求整數的絕對值

double ceil(double d)

求不小於d的最小整數

double floor(double d)

求不大於d的最大整數

int max(int i1, int i2)

求兩個整數中的最大數

int min(int i1, int i2)

求兩個整數中的最小數

double random()

0~1的隨機數

int round(float f)

求最靠近f的整數

long round(double d)

求最靠近d的長整數

double sqrt(double a)

求平方根

double cos(double d)

求d的餘弦函數

double log(double d)

求天然對數

double exp(double x)

求e的x次冪(e^x)

double pow(double a, double b)

求a的次冪

 

輸入輸出

標準輸出流System.out提供三種輸出:

print():輸出後不換行

println():輸出後換行

printf():相似於c語言中的printf()用法

 

標準輸入流System.in提供read()等方法。寫一個程序便於說明及理解。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Input {
    public static void main(String[] args) throws IOException {
        System.out.println("==============字符==============");
        char ch = (char) System.in.read();
        System.out.println("讀入的字符爲:" + ch);      
        System.out.println("==============字符串==============");
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        String s = in.readLine();
        System.out.println("讀入的字符串爲:" + s);    
        System.out.println("==============數字==============");
        String x = "123";
        int m = Integer.parseInt(x);
        String y = "123.123";
        float n = Float.parseFloat(y);
        System.out.println("x = " + x);
        System.out.println("y = " + y);
    }
}

 

輸出結果:

還能夠使用java.util.Scanner類輸入:

import java.util.Scanner;

public class Input {
    public static void main(String[] args) throws IOException {
        Scanner s = new Scanner(System.in);       
        System.out.println("請輸入數據:");
        System.out.println("請輸入數據:");
        short a = s.nextShort();    //輸入短整數
        int b = s.nextInt();    //輸入整數
        long c = s.nextLong();    //輸入長整數
        float d = s.nextFloat();    //輸入單精度浮點型
        double e = s.nextDouble();    //輸入雙精度浮點型
        String f = s.nextLine();    //輸入字符串  
        System.out.println("a = " + a);
        System.out.println("b = " + b);
        System.out.println("c = " + c);
        System.out.println("d = " + d);
        System.out.println("e = " + e);
        System.out.println("f = " + f);
    }
}

 

 

輸出結果:

在Scanner中還有不少輸入。

 

流程控制語句和c/c++沒有太大區別。

【注意】循環結構體中能夠用break 標號名; 和continue 標號名; 來跳出循環。

 

數組

一維數組聲明有兩種格式:

1.數組元素類型 數組名[];

2.數組元素類型[] 數組名;

建議用第二種聲明方式

【建議】二維數組及多維數組聲明方式相似於一維數組,不過建議你們用第二種數組聲明方式,[]也是數組聲明的組成部分。

 

【注意】

1.java數組和c/c++數組不一樣,java數組理解爲數組的數組,數組的每一維的大小不必定相同。

例如:

int[][] a = new int[2][];
a[0] = new int[3];
a[1] = new int[4];

 

上面這段代碼聲明瞭一個二維數組,可是第0維和第1維的大小不相同。

2.求一維數組a長度常常用到的方法是a.length。如果多維數組也能夠這樣用:a[i].length,a[i][j].length ……。

 

對象

對象的初始化和構造方法以及變量的做用域在一個例子中說明。

public class Scope {
    //成員變量的做用域是整個類體
    int x;
    int y;

    /*對象的初始化*/
    {
        x = 2;
        y = 1;
    }

    /*對象的構造方法*/
    public Scope {
        x = 2;
        y = 1;
    }

    //方法參數a的做用域是整個方法
    public void method(int a) {
        int x = 5;
        for (int i = 1; i < a; i++) {
            //局部變量i的做用域是for循環內
            x = x + i;
        }
        System.out.println("x = " + x + ", y = " + y + ", a = " + a);
    }
 
    public static void main(String[] args) {
        //局部變量x的做用域從它的聲明點擴展到它被定義的代碼塊結束
        Scope x = new Scope();
        x.method(6);
    }
}

 

【注意】構造方法的名稱必須與類名相同;構造方法無返回類型;一個類能夠提供多個構造方法,系統自動調用參數匹配的構造方法。

 

靜態變量和靜態方法

用static修飾的成員變量叫靜態變量,也叫類變量。

訪問:

在本類中直接訪問。

經過類名訪問。

經過類的一個對象訪問。

【注意】靜態變量的在存儲上歸屬類空間,可是不依賴任何對象;(經過對象訪問靜態變量實質上仍是訪問類空間的變量)

【建議】在類外訪問靜態變量時經過類名訪問以防混淆。

賦初值:便可以經過下面代碼塊賦初值,也可在定義時賦初值。

static {
//code
}

 

【注意】靜態代碼塊只能訪問靜態變量;對象的建立不會執行static代碼塊。注意區分靜態空間和對象空間。

class TalkPlace {
    static String talkArea = "";
}

public class User {
    static int count = 0;
    String username;
    int age;
    
    public User(String name, int yourage) {
        username = name;
        age = yourage;
    } 

    void Login() {
        //直接訪問同一類中的靜變量
        count++;
        System.out.println("you are no " + count + " user");
    }

    void Speak(String words) {
        //訪問其餘類的類變量,經過類名訪問類變量
        TalkPlace.talkArea = TalkPlace.talkArea + username + "說: " + words + "\n";
    }

    public static void main(String[] args) {
        User x1 = new User("張三", 20);
        x1.Login();
        x1.Speak("hello");       
        User x2 = new User("李四", 16);
        x2.Login();
        x2.Speak("good morning");
        x1.Speak("bye");
        System.out.println("-----討論區內容以下:");
        System.out.println(TalkPlace.talkArea);
    }
}

 

 

用static修飾的方法叫靜態方法,也叫類方法。

調用:

通常用類名作前綴調用。

經過對象調用

【注意】靜態方法也不依賴任何對象;靜態方法中只能處理靜態變量和其餘靜態方法,毫不能訪問任何歸屬對象空間的變量和方法。

public class FindPrime2 {
    public static boolean prime(int n) {
        for (int k = 2; k <= Math.sqrt(n); k++) {
           if (n % k == 0) {
                return false;
            }
        }
        return true;
    }

    public static void main(String[] args) {
        // FindPrime2 a = new FindPrime2();
        for (int m = 10; m <= 100; m++) {
            //prime爲靜態方法,則可直接調用
            if (prime(m)) {
                   System.out.print(m + " ");
            }
        }
    }
}
相關文章
相關標籤/搜索