java基礎(chǔ)的詳細(xì)了解第一天
1、Java主要特點
簡單性、跨平臺性、分布性、安全性、健壯性、平臺獨立與可移植性、多線程、動態(tài)性、面向?qū)ο蟮木幊陶Z言、支持垃圾自動收集處理等,可以編寫桌面應(yīng)用程序、Web應(yīng)用程序、分布式系統(tǒng)和嵌入式系統(tǒng)應(yīng)用等多個系統(tǒng)中。
2、計算機(jī)的高級匯編語言類型:
編譯型——c語言
解釋型——html
編譯型和解釋型的結(jié)合——java
java運(yùn)行原理源程序進(jìn)行編譯形成字節(jié)碼文件在一臺電腦進(jìn)行解釋程序
java最核心的部分就是虛擬機(jī)JVM
3、JVM(Java Visual Machine)
4、編寫第一個Java程序并運(yùn)行
新建Hello.java文件
public class Hello{ public static void main(String[] args){ System.out.println("Hello Wordld!"); } }
cmd運(yùn)行javac Hello.java編譯后形成字節(jié)碼.class 運(yùn)行java Hello
但是對于以上程序需要注意的幾點就是
1.序類的定義:類是我們Java中的基本單位,在所有的java程序中都是以類的形式存在的,在java中類的定義有兩種
public class 類名稱{}:在一個*.java文件中只能有一個public class ,運(yùn)行時文件名必須和類名一致
class 類名稱{}:在一個*.java文件里面可以使用class定義多個文件,在編譯之后形成不同的**.class文件
但是在類名定義的時候有一個約定要求每一個單詞的首字母必須大寫即TestDemo,文件名稱必須與類名稱一致
2.信息輸出:在屏幕上面輸出的信息有兩種形式一個是輸出換行System.out.println()和輸出不換行System.out.print()
3.主方法:
public class DeomTest(){ public static void main(String[] args){ //主方法模板 } }
5、CLASSPATH指的是類加載路徑
即使現(xiàn)在不在.class生成的目錄中也可以執(zhí)行該目錄下的.class文件,這個時候我們必須通過CLASSPATH來控制SET CLASSPATH=f:\java\javabase\day01
如果你的classpath設(shè)置的目錄很多很亂的話,對我們的程序解釋執(zhí)行很不方便,采用默認(rèn)的機(jī)制:從當(dāng)前類所在的路徑進(jìn)行類的加載,我們可以將CLASSPATH的內(nèi)容設(shè)置為“.”
CLASSPATH是一個非常重要的概念,但是現(xiàn)在對其有個基本的認(rèn)識,后期對CLASSPATH有更深的認(rèn)識。
6、程序注釋,對以后的所有代碼都要進(jìn)行注釋,主頁可以方便進(jìn)行開發(fā)需求
單行注釋://注釋內(nèi)容;
多行注釋:/注釋內(nèi)容/”
文檔注釋:/*文檔注釋標(biāo)記/
7、標(biāo)識符和關(guān)鍵字
程序是一個邏輯的集合,所以每一個邏輯體都應(yīng)該有自己的標(biāo)記,例如在程序之中應(yīng)該有一個標(biāo)記例如:在程序中定義變量、定義常量、定義類名稱和方法名稱都有自己的要求。
在JAVA中標(biāo)識符的命令如下:由字母、數(shù)字、_、$組成,其中不能以數(shù)字開頭、不能使用Java中的保留字(關(guān)鍵字)
個人建議:標(biāo)識符采用有意義的簡單命名,如student_age、age;
"$"不要在代碼中,因為其有特殊含義
在所有的程序之中都會有一個特殊的文本標(biāo)記得到信息,這樣的信息我們一般稱為叫關(guān)鍵字
但是對于以上的關(guān)鍵字有以下幾點說明:
- java中有兩個未使用到的關(guān)鍵字goto、const;
- java中有三個特殊含義的單詞(不算關(guān)鍵字):null,true,false;
- JDK1.4之后追加了assert關(guān)鍵字
- DK1.5之后追加了enum關(guān)鍵字
8、Java數(shù)據(jù)類型的劃分以及數(shù)據(jù)類型的操作
程序就是一場數(shù)字游戲。
java數(shù)據(jù)類型的劃分一般分為兩大類:基本數(shù)據(jù)類型和引用數(shù)據(jù)類型
基本數(shù)據(jù)類型:
|-數(shù)值類型:表示整數(shù)和小數(shù);
|-整型:byte、short、int、long -》 默認(rèn)值是:0;
|-浮點型:float、double -》 默認(rèn)值是:0.0;
|-字符型:char -》默認(rèn)值是:'\u0000';
|-字符串型:stinrg -》默認(rèn)值是:
|-布爾型:boolean -》默認(rèn)值是:false
引用數(shù)據(jù)類型:數(shù)組、類、接口 -》默認(rèn)值是:null
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); //數(shù)據(jù)溢出 (最小值)2147483647 System.out.println(minValue - 1); //數(shù)據(jù)溢出 (最大值)-2147483648 } }
錯誤: 編碼GBK的不可映射字符
出現(xiàn)該問題:打開記事本-》文件-》另存為-》選擇ANSI編碼保存
使用long解決int數(shù)據(jù)溢出的問題
在使用此類方式處理之前請一定注意一個繼續(xù)使用int進(jìn)行計算的一個問題,計算結(jié)果依然會溢出,原因是先進(jìn)行等號右邊的int類型運(yùn)算,將運(yùn)算的結(jié)果賦值給long類型,所以說還是會溢出,解決辦法就是,將其中的一個變量類型進(jìn)行擴(kuò)充,而擴(kuò)充有兩種是實現(xiàn)方式:
|-實現(xiàn)方式一:直接將int變量的內(nèi)容賦值給long類型變量
|-實現(xiàn)方式二:直接將某一個int變量直接變?yōu)閘ong類型變量
System.out.println(11 + l1); 面試區(qū)分1 和 l的細(xì)微差別
重要說明:關(guān)于數(shù)據(jù)類型的默認(rèn)值問題
在之前所有的數(shù)據(jù)類型都有其默認(rèn)值,但默認(rèn)值在方法(主方法)聲明中無效
有兩種解決方案:一種是在是使用前進(jìn)行賦值,另外一種是定義變量的時候進(jìn)行賦值。但是在最早版本JDK時會出現(xiàn)問題,推薦使用第二種方式進(jìn)行賦值。
數(shù)據(jù)類型劃分——浮點形
double可以保存的數(shù)字是最大的,也就是double可以保存全宇宙中最大的有意義的
而除了double之外的 也可以使用float,但float的范圍小于double,直接聲明float變量時,那么要求在定義的時候進(jìn)行強(qiáng)制類型轉(zhuǎn)換,在一個數(shù)字后加一個字母'f‘、‘F'、或者在數(shù)字前面加個(float)
傳統(tǒng)bug問題
既然說到了小數(shù)的問題就必須考慮一下整形計算的問題
數(shù)據(jù)類型劃分——字符型
用char進(jìn)行表示,而且賦值使用單引號''來聲明字符型的字符變量的內(nèi)容可以與int類型進(jìn)行轉(zhuǎn)換。
char類型的變量變?yōu)閕nt類型的變量內(nèi)容的時候其所包含的就是編碼
大寫字母AscII(A-Z):65(A)~~90(Z)
小寫字母AscII(a-z):97(a)~~122(z)
字符數(shù)字(‘0'‘9'):48(‘0')~57(‘9')
在其他的語言中可能使用的ASCII編碼,而在java中使用的是UNICODE編碼,正在因為在java中對于字符的特效支持特別好,所有還有另外一類神奇的用法。
數(shù)據(jù)類型劃分——布爾型
對于布爾型的內(nèi)容需要說明:在其他語言中由于沒有提供布爾型的數(shù)據(jù) ,我們會使用數(shù)字來描述布爾型,例如0表示false,非0表示true,但是java中沒有這個概念。
數(shù)據(jù)類型劃分——字符串型
在字符串中使用了”+“表示兩個字符的內(nèi)容進(jìn)行連接;一旦字符串有了”+“,則所有的數(shù)據(jù)類型都變?yōu)镾tring類型。如果這時候想要得到正確的計算結(jié)果,那么必須使用我們的”()“解決問題。
在java中還存在一種叫做轉(zhuǎn)義字符的概念,幾個常用的轉(zhuǎn)義字符換行(\n)、制表符(\t)、雙引號(\")、以及單引號(\')、\(\)。
9、運(yùn)算符
自增、自減操作
|-++變量:++x 先自增再運(yùn)算,x++ 先運(yùn)算再自增
|—變量: --x 先自減再運(yùn)算,x-- 先運(yùn)算再自減
三目運(yùn)算符
三目運(yùn)算是一種賦值運(yùn)算,根據(jù)條件進(jìn)行運(yùn)算
數(shù)據(jù)類型 變量 = 布爾表達(dá)式 ? 條件滿足時賦值內(nèi)容 : 條件不滿足時賦值內(nèi)容
例:將兩個變量之中大的內(nèi)容賦值給新的變量
關(guān)系運(yùn)算符
大于>、小于<、等于=、不等于!=、等于==,最終的結(jié)果都是boolean布爾型
邏輯運(yùn)算
與&&、或||、非!
位運(yùn)算
十進(jìn)制與二進(jìn)制的轉(zhuǎn)化,數(shù)據(jù)除2取余,一直除到0為止,將余數(shù)倒序排列。
移位
進(jìn)制
出錯原因是因為023為八進(jìn)制 進(jìn)行進(jìn)制轉(zhuǎn)化為十進(jìn)制 為19
面試題:請解釋&&和&、||和|的區(qū)別?
與操作:
|-&&:表示邏輯與運(yùn)算,若干個判斷只要有其中的一個條件為false,后面的不需要再進(jìn)行判斷,結(jié)果為false
|-&:表示所有的判斷都要執(zhí)行
或操作
|-||:表示邏輯與運(yùn)算,若干個判斷只要有其中的一個條件為true,后面的不需要再進(jìn)行判斷,結(jié)果為true
|-|:表示所有的判斷都要執(zhí)行
位運(yùn)算:
|-&:運(yùn)算的兩個數(shù)據(jù)位,只要有一個0,其結(jié)果就為0
|-|:運(yùn)算的兩個數(shù)據(jù)位,只要有一個1,其結(jié)果就為1
總結(jié)
本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
idea配置連接數(shù)據(jù)庫的超詳細(xì)步驟
這篇文章主要介紹了idea配置連接數(shù)據(jù)庫的超詳細(xì)步驟,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-12-12SpringBoot自定義注解API數(shù)據(jù)加密和簽名校驗
這篇文章主要介紹了SpringBoot自定義注解API數(shù)據(jù)加密和簽名校驗,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04java如何對map進(jìn)行排序詳解(map集合的使用)
這篇文章主要介紹了java如何對map進(jìn)行排序,java map集合的使用詳解,大家可以參考使用2013-12-12Java 中Timer和TimerTask 定時器和定時任務(wù)使用的例子
這篇文章主要介紹了Java 中Timer和TimerTask 定時器和定時任務(wù)使用的例子,非常具有實用價值,需要的朋友可以參考下2017-05-05SpringBoot統(tǒng)一返回處理出現(xiàn)cannot?be?cast?to?java.lang.String異常解決
這篇文章主要給大家介紹了關(guān)于SpringBoot統(tǒng)一返回處理出現(xiàn)cannot?be?cast?to?java.lang.String異常解決的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-09-09Java開發(fā)實現(xiàn)飛機(jī)大戰(zhàn)
這篇文章主要為大家詳細(xì)介紹了Java開發(fā)實現(xiàn)飛機(jī)大戰(zhàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-05-05SpringBoot執(zhí)行定時任務(wù)@Scheduled的方法
這篇文章主要介紹了SpringBoot執(zhí)行定時任務(wù)@Scheduled的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07詳解Java如何使用責(zé)任鏈默認(rèn)優(yōu)雅地進(jìn)行參數(shù)校驗
項目中參數(shù)校驗十分重要,它可以保護(hù)我們應(yīng)用程序的安全性和合法性。這篇文章主要介紹了如何使用責(zé)任鏈默認(rèn)優(yōu)雅地進(jìn)行參數(shù)校驗,需要的可以參考一下2023-03-03