JavaSE-基礎語法

註釋

單行註釋: //註釋
多行註釋: /*註釋*/
文檔註釋: /** 文檔註釋 */

image-20210527003133318

標識符與關鍵字

下圖爲Java中所有的關鍵字

所有標識符必須以大小寫字母或$或_開頭,首字母之後可以用數字

不能使用關鍵字做變量名或方法名

標識符大小寫敏感

image-20210527212712443

數據類型

Java是一種強類型語言:要求變量使用要嚴格符合規定,所有變量必須先定以後才能使用。

Java數據類型分爲2大類

基本類型(primitive type):

1、整數類型: byte佔1個字節

​ short佔2個字節

​ int 佔4個字節 (默認)

​ long佔8個字節

2、浮點類型:float佔4個字節

​ double佔2個字節(默認)

3、字符類型:char佔2個字節

4、boolean類型:佔1位,true和false

引用類型(reference type)

1、類 class

2、接口 interface

3、數組 array

public class Demo01 {
    public static void main(String[] args) {
        //八大基本數據類型   定義的變量不賦值則無法使用
        byte num1 =10;
        short num2 = 20;
        int num3 = 30;
        long num4 = 40L; //長整型需要在value後面加L

        // 浮點數 float double
        float num5 = 10.1F; //float 類型需要在value後加F
        double num6 = 3.1415926;

        //字符類型
        char name1 = 'A';
        //字符串String不是數據類型也不是關鍵詞而是類,必須用"包裹
        String name2 = "Hellow World!";

        boolean flag = true;

        System.out.println(num1);
        System.out.println(num2);
        System.out.println(num3);
        System.out.println(num4);
        System.out.println(num5);
        System.out.println(num6);
        System.out.println(name1);
        System.out.println(name2);
        System.out.println(flag);

    }
}

類型轉換

Java是搶類型語言,在進行運算時,不同類型的數據需要先轉換爲同一類型在進行運算。

image-20210528232207787

容量從低到高優先級排序,因爲浮點型優先級比整型高,所以float雖然容量小於long,但依然優先級高於long。

從 高 --> 低 需要強制類型轉換

從 低 --> 高 自動類型轉換

強制類型轉換:

類型 變量名 = (目標類型名) 需要強制轉換的變量名

public class Demo05 {
    public static void main(String[] args) {
     		 // 高 --> 低 :強制類型轉換
        int i = 128;
        byte b = (byte)i;   //這裏輸出結果不爲128,因爲byte最大值爲127,此處內存溢出了,類型轉換時需注意相應類型的最大容量,避免內存溢出。

        System.out.println(i);
        System.out.println(b);

    }
}

//輸出結果:
128
-128

自動類型轉換:

public class Demo05 {
    public static void main(String[] args) {
        // 低 --> 高 :自動類型轉換
        int j = 128;
        double c = j;

        System.out.println(j);
        System.out.println(c);
    }
}

//輸出結果:
128
128.0

Ps:

  • 不能對布爾值進行類型轉換
  • 不能把對象類型轉換爲不相干的類型
  • 高容量 --> 低容量 強制類型轉換
  • 轉換時可能存在內存溢出或精度問題
public class Demo03 {
    public static void main(String[] args) {
        char c1 = 'a';
        char c2 = '中';

        System.out.println(c1);
        System.out.println((int)c1);		//強制類型轉換
        System.out.println(c2);
        System.out.println((int)c2);
    }
}

可以看到進行強制類型轉換後輸出的爲字符對應的ascii值

a
97
中
20013

變量

Java是強類型語言,每個變量都必須聲明其類型

變量是Java最基本的存儲單元,其要素包含變量名、數據類型、作用域

ps:

  • 每個變量都有類型,類型可以是基本類型(整型、浮點型、字符型、布爾型)也可以是引用類型(類、接口、數組)
  • 變量名必須是合法標識符,也就是必須以大小寫字母或$或_開頭
  • 聲明變量語句注意要以 分號 結束
type varName = [=value] [{,varName[=value]}];
數據類型 變量名 = 值;  //可以使用逗號分隔來同時聲明多個變量

變量的作用域

  • 類變量
  • 實例變量
  • 局部變量
public class Demo06 {

    //類變量,聲明格式類似於實例變量,不過需要加static, 隨類的出現和消失而出現和消失。
    static double salary = 2500;

    //實例變量,在類的裏面方法的外面,從屬於對象;如不自行初始化,Java會將其值初始化爲這個類型的默認值。 0,0.0, 布爾:false, 其餘數據類型:null
    String name;
    int age;

    //main方法
    public static void main(String[] args) {

        //局部變量,在此方法裏面,使用時必須聲明和初始化值,不可在其他方法調用。
        int i = 10;
        System.out.println(i);

        //變量類型(Demo06) 變量名(demo06) = 值(new Demo06())
        Demo06 demo06 = new Demo06();

        System.out.println(demo06.age);
        System.out.println(demo06.name);
        System.out.println(salary);
    }

    //其他方法
    public void add(){

    }
}

常量

  • 常量初始化後,常量值不可改變,可理解爲特殊的變量
  • 常量名一般使用大寫字符
final 常量名 = 常量值;final i = 10;
public class Demo07 {    //修飾符(static、final等)無先後順序    static final int I = 10;    public static void main(String[] args) {        System.out.println(I);    }}

變量命名規範

image-20210529004516463

修飾符

static 將方法變爲類的方法,被修飾的方法可以在類裏直接引用而不需要先創建對象。

public 公有的,如果想讓子類也可以使用此屬性或方法,需要用public修飾

protected 受保護的,同包不同級,不可以跨包使用

default 默認爲default

private 私有的,私有的屬性和方法是可以被繼承的,但是僅限被類訪問,子類一般無法直接調用及訪問。一般屬性也是私有的

final 通過final修飾得類沒有子類

運算符

image-20210531204853051

% 模 取餘運算instanceof==實例注意a++與++a的區別,a++先賦值再+1,++a先+1再賦值
package operator;public class Demo2 {    public static void main(String[] args) {        long a = 123123123123123123L;        int b = 123;        short c = 10;        byte d = 8;        // 返回結果爲操作數中最高位        System.out.println(a+b+c+d);        System.out.println(b+c+d);        System.out.println(c+d);    }}12312312312312326414118

當操作數中有long,則返回值類型爲long;操作數中無long時,返回結果爲操作數中最高位

自增自減運算符、Math類

Java.lang下的包不需要導入

package operator;public class Demo3 {    public static void main(String[] args) {        int a = 3;        //先賦值再+1        int b = a++;        //先+1再賦值        int c = ++a;        System.out.println(a);        System.out.println(b);        System.out.println(c);        //java.lang下的包不需要導入;         double pow = new Math.pow(2,3);        System.out.println(pow);    }}

Java包機制

包可以理解爲一個文件夾

爲了更好的組織類,Java提供了包機制,用於區別類名的命名空間。

語法:

package pkg1[.pkg2[.pkg3...]];

一般利用公司域名倒置作爲包名

例如:com.baidu.www

爲了能夠使用某一個包的成員,我們需要在Java程序中明確導入該包。

import package1[.package2...].(classname|*);

import語句必須在package語句下面,不然會報錯

IDEA默認開啓了Compact Middle Packages,需要取消勾選才可一次性生成多級package

image-20210531231138976

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