java基礎的詳細瞭解第一天

1、Java主要特點

簡單性、跨平臺性、分佈性、安全性、健壯性、平臺獨立與可移植性、多線程、動態性、面向對象的編程語言、支持垃圾自動收集處理等,可以編寫桌面應用程序、Web應用程序、分佈式系統和嵌入式系統應用等多個系統中。

2、計算機的高級匯編語言類型:

編譯型——c語言

解釋型——html

編譯型和解釋型的結合——java

java運行原理源程序進行編譯形成字節碼文件在一臺電腦進行解釋程序

java最核心的部分就是虛擬機JVM

image-20210717143755512

3、JVM(Java Visual Machine)

image-20210717144218082

4、編寫第一個Java程序並運行

新建Hello.java文件

public class Hello{
	public static void main(String[] args){
		System.out.println("Hello Wordld!");
	}
}

cmd運行javac Hello.java編譯後形成字節碼.class 運行java Hello

image-20210717165847268

但是對於以上程序需要註意的幾點就是

1.序類的定義:類是我們Java中的基本單位,在所有的java程序中都是以類的形式存在的,在java中類的定義有兩種

public class 類名稱{}:在一個*.java文件中隻能有一個public class ,運行時文件名必須和類名一致

class 類名稱{}:在一個*.java文件裡面可以使用class定義多個文件,在編譯之後形成不同的**.class文件

但是在類名定義的時候有一個約定要求每一個單詞的首字母必須大寫即TestDemo,文件名稱必須與類名稱一致

2.信息輸出:在屏幕上面輸出的信息有兩種形式一個是輸出換行System.out.println()和輸出不換行System.out.print()

3.主方法:

public class DeomTest(){
    public static void main(String[] args){
        //主方法模板
    }
}

5、CLASSPATH指的是類加載路徑

即使現在不在.class生成的目錄中也可以執行該目錄下的.class文件,這個時候我們必須通過CLASSPATH來控制SET CLASSPATH=f:\java\javabase\day01

image-20210717172327433

如果你的classpath設置的目錄很多很亂的話,對我們的程序解釋執行很不方便,采用默認的機制:從當前類所在的路徑進行類的加載,我們可以將CLASSPATH的內容設置為“.”

image-20210717172559199

CLASSPATH是一個非常重要的概念,但是現在對其有個基本的認識,後期對CLASSPATH有更深的認識。

6、程序註釋,對以後的所有代碼都要進行註釋,主頁可以方便進行開發需求

單行註釋://註釋內容;

多行註釋:/註釋內容/”

文檔註釋:/*文檔註釋標記/

7、標識符和關鍵字

程序是一個邏輯的集合,所以每一個邏輯體都應該有自己的標記,例如在程序之中應該有一個標記例如:在程序中定義變量、定義常量、定義類名稱和方法名稱都有自己的要求。

在JAVA中標識符的命令如下:由字母、數字、_、$組成,其中不能以數字開頭、不能使用Java中的保留字(關鍵字)

個人建議:標識符采用有意義的簡單命名,如student_age、age;

“$”不要在代碼中,因為其有特殊含義

在所有的程序之中都會有一個特殊的文本標記得到信息,這樣的信息我們一般稱為叫關鍵字

image-20210717174240417

但是對於以上的關鍵字有以下幾點說明:

  • java中有兩個未使用到的關鍵字goto、const;
  • java中有三個特殊含義的單詞(不算關鍵字):null,true,false;
  • JDK1.4之後追加瞭assert關鍵字
  • DK1.5之後追加瞭enum關鍵字

8、Java數據類型的劃分以及數據類型的操作

程序就是一場數字遊戲。

java數據類型的劃分一般分為兩大類:基本數據類型和引用數據類型

基本數據類型:

|-數值類型:表示整數和小數;

​ |-整型:byte、short、int、long -》 默認值是:0;

​ |-浮點型:float、double -》 默認值是:0.0;

|-字符型:char -》默認值是:’\u0000′;

|-字符串型:stinrg -》默認值是:

|-佈爾型:boolean -》默認值是:false

引用數據類型:數組、類、接口 -》默認值是:null

image-20210717180826530

public class Hello{
	public static void main(String[] args){
		int maxValue = Integer.MAX_VALUE;	//取得最大值
		int minValue = Integer.MIN_VALUE;	//取得最小值
		System.out.println(maxValue);		//2147483647
		System.out.println(minValue);		//-2147483648
		System.out.println(maxValue +1);	//數據溢出 (最小值)2147483647	
		System.out.println(minValue - 1);	//數據溢出 (最大值)-2147483648
	}
}

image-20210717183329311

錯誤: 編碼GBK的不可映射字符

出現該問題:打開記事本-》文件-》另存為-》選擇ANSI編碼保存

使用long解決int數據溢出的問題

在使用此類方式處理之前請一定註意一個繼續使用int進行計算的一個問題,計算結果依然會溢出,原因是先進行等號右邊的int類型運算,將運算的結果賦值給long類型,所以說還是會溢出,解決辦法就是,將其中的一個變量類型進行擴充,而擴充有兩種是實現方式:

​ |-實現方式一:直接將int變量的內容賦值給long類型變量

image-20210725104838542

​ |-實現方式二:直接將某一個int變量直接變為long類型變量

image-20210725105136945

System.out.println(11 + l1); 面試區分1 和 l的細微差別

重要說明:關於數據類型的默認值問題

在之前所有的數據類型都有其默認值,但默認值在方法(主方法)聲明中無效

image-20210725111430224

有兩種解決方案:一種是在是使用前進行賦值,另外一種是定義變量的時候進行賦值。但是在最早版本JDK時會出現問題,推薦使用第二種方式進行賦值。

數據類型劃分——浮點形

double可以保存的數字是最大的,也就是double可以保存全宇宙中最大的有意義的

而除瞭double之外的 也可以使用float,但float的范圍小於double,直接聲明float變量時,那麼要求在定義的時候進行強制類型轉換,在一個數字後加一個字母’f‘、‘F’、或者在數字前面加個(float)

傳統bug問題

image-20210725143239948

既然說到瞭小數的問題就必須考慮一下整形計算的問題

image-20210725144123462

數據類型劃分——字符型

用char進行表示,而且賦值使用單引號”來聲明字符型的字符變量的內容可以與int類型進行轉換。

char類型的變量變為int類型的變量內容的時候其所包含的就是編碼

大寫字母AscII(A-Z):65(A)~~90(Z)

小寫字母AscII(a-z):97(a)~~122(z)

字符數字(‘0’‘9’):48(‘0’)~57(‘9’)

在其他的語言中可能使用的ASCII編碼,而在java中使用的是UNICODE編碼,正在因為在java中對於字符的特效支持特別好,所有還有另外一類神奇的用法。

數據類型劃分——佈爾型

對於佈爾型的內容需要說明:在其他語言中由於沒有提供佈爾型的數據 ,我們會使用數字來描述佈爾型,例如0表示false,非0表示true,但是java中沒有這個概念。

數據類型劃分——字符串型

在字符串中使用瞭”+“表示兩個字符的內容進行連接;一旦字符串有瞭”+“,則所有的數據類型都變為String類型。如果這時候想要得到正確的計算結果,那麼必須使用我們的”()“解決問題。

image-20210725163027589

在java中還存在一種叫做轉義字符的概念,幾個常用的轉義字符換行(\n)、制表符(\t)、雙引號(\”)、以及單引號(\’)、\(\)。

9、運算符

自增、自減操作

​ |-++變量:++x 先自增再運算,x++ 先運算再自增

​ |—變量: –x 先自減再運算,x– 先運算再自減

三目運算符

三目運算是一種賦值運算,根據條件進行運算

數據類型 變量 = 佈爾表達式 ? 條件滿足時賦值內容 : 條件不滿足時賦值內容

例:將兩個變量之中大的內容賦值給新的變量

image-20210725175515359

關系運算符

大於>、小於<、等於=、不等於!=、等於==,最終的結果都是boolean佈爾型

邏輯運算

與&&、或||、非!

位運算

十進制與二進制的轉化,數據除2取餘,一直除到0為止,將餘數倒序排列。

移位

image-20210725181423457

進制

image-20210725181715707

出錯原因是因為023為八進制 進行進制轉化為十進制 為19

面試題:請解釋&&和&、||和|的區別?

與操作:

​ |-&&:表示邏輯與運算,若幹個判斷隻要有其中的一個條件為false,後面的不需要再進行判斷,結果為false

​ |-&:表示所有的判斷都要執行

或操作

​ |-||:表示邏輯與運算,若幹個判斷隻要有其中的一個條件為true,後面的不需要再進行判斷,結果為true

​ |-|:表示所有的判斷都要執行

位運算:

​ |-&:運算的兩個數據位,隻要有一個0,其結果就為0

​ |-|:運算的兩個數據位,隻要有一個1,其結果就為1

總結

本篇文章就到這裡瞭,希望能給你帶來幫助,也希望您能夠多多關註WalkonNet的更多內容!

推薦閱讀: