java基礎語法
軟體概念
一系列按照特定順序組織的計算機數據和指令的集合
軟體的出現實現了人與計算機之間更好的交互。
交互方式:圖形化界面和命令行方式
DOS命令行常見命令:
dir : 列出當前目錄下的文件以及文件夾
md : 創建目錄
rd : 刪除目錄
cd : 進入指定目錄
cd.. : 退回到上一級目錄
cd/ : 退回到根目錄
del : 刪除文件
exit : 推出dos命令行
Java語言是SUN(Stanford University Network,斯坦福大學網路公司)1995年推出的一門高級編程語言,是一種面向對象的編程語言。
Java語言特點:
簡單易學,完全面向對象,安全可靠,與平台無關(跨平台性)。
Java語言的三種技術架構:
1、Java EE(Java Enterprise Edition)企業版
2、Java SE(Java Standard Edition)標準版
3、Java ME(Java Micro Edition)微型版
Java中常用名詞:
API(applicationprogram interface)應用程序介面:為開發Java程序而預定義的類或介面。
JRE(JavaRuntime Environment )Java運行環境:包括Java虛擬機(JVM Java Virtual Machine)和Java程序所需的核心類庫
JDK(JavaDevelopment Kit) Java開發工具包:JDK是提供給Java開發人員使用的,其中包含了java的開發工具,也包括了JRE,用於開發和測試Java程序。
Java環境變數配置:
JAVA_HOME= D:jdk1.7.0 JAVA_HOME指向JDK的安裝路徑
PATH=%JAVA_HOME%in;%PATH% %PATH%引用以前設置的PATH環境變數
CLASSPATH=.;%JAVA_HOME%lib ools.jar 實現在任意目錄下都可以執行某一目錄下的class文件
Java基礎語法
關鍵字
被java賦予特殊含義的的單詞。
特點:其中的所有字母均為小寫。
特殊:main不是關鍵字,但是虛擬機可識別
標識符
在程序中自定義的一些名稱
規則:
由26個英文字母大小寫,0~9數字,下劃線(_),美元符號($)組成。
數字不能開頭
不能使用關鍵字
java嚴格區分大小寫
java中的名稱規範:
包名:所有單詞都小寫
類名、介面名:所有單詞首字母大寫
變數名、函數名:多單片語成時,第一個單詞字母小寫,第二個單詞開始首字母大寫
常量名:所有字母都大寫
注釋:用於註解說明解釋程序的文字
好處:提高代碼的閱讀性
注釋格式:
單行注釋: //注釋文字
多行注釋: /*注釋文字*/
文檔注釋: /**注釋文字*/
常量與變數
常量:不能改變的數值
分類:整數常量 小數常量 布爾常量 字元常量 字元串常量 null常量(只有一個數值null)
變數:用來不斷存放同一類型的常量,並可以被重複使用
格式:數據類型 變數名=初始化值;
理解:變數就如同數學中的未知數
Java語言是強類型語言,對於每一種數據都定義了明確的具體數據類型,在內存總分配了不同大小的內存空間
整數默認:int 小數默認:double
byteb1=128;//會報錯 byte類型範圍:-128~127
long l=4l;//4l中的l標示是long數據類型
floatf=2.3f;// 單精度float定義變數時用f標識
doubled1=2.3;//一般默認是double類型
char ch1= ;
charch2= a ;
charch3= + ;
charch4= 4 ;//char只能定義單個字元
char ch5= 你 ;//一個漢字兩個位元組 char類型也是兩個位元組
booleanbo1=true;
booleanbo2=false;
字元串數據和任何數據使用+都是相連接,最終都會變成字元串
System.out.println("5+5="+5+5);//結果5+5=55
System.out.println("5+5="+(5+5));//結果5+5=10
類型轉換
自動類型轉換(隱式類型轉換)
強制類型轉換(顯式類型轉換)
System.out.println( a +1);//結果98 字元"a 在計算過程中由於默認int 1被強制轉換成97
System.out.println((char)( a +1));//結果b
System.out.println( A +1);//結果66
System.out.println( 1 );//結果1
System.out.println("A="+ A );//A=A
System.out.println( 1 +0);//結果49 同理 字元『1』被強制轉換
System.out.println((char)(4));//結果是方塊
inty=4364;
System.out.println(y/1000*1000);//結果4000,y/1000後搶注轉換成4在乘以1000
System.out.println(-1%2);//結果-1
System.out.println(1%-2);//結果1 求餘數運算只看被模數
byte b=2;
b=b+3;// 會報錯,b+3結果為int型強制賦值給b(byte)類型
b=++b;//不會報錯,++b是一次運算,包含了一個隱藏的類型轉換
自增和自減(++ --)
inta=3,c,d;
c=a++;
System.out.println("a="+a+",c="+c);//結果a=4,c=3
d=++a;
System.out.println("a="+a+",d="+d);//結果a=5,d=5
/*兩種自增運算中a的值都會變化,a++相當於先把a的值賦給c,然後進行加1
++a相當於先自己加1,然後賦給d */
賦值運算 += -= *= /= %=
shorts=4;
/*s=s+5;編譯失敗 5默認是int類型,s+5的值int類型無法賦值給short型
兩次運算 先做加法 在把值賦給左邊*/
s+=5;//一次運算 自動把s+5的值賦給s
比較運算符 == != < > = instanceof
Instanceof 檢查是否是類的對象
例如: helloinstanceof String 結果為true
注意:比較運算符的結果都是boolean類型 要麼是true,要麼false
邏輯運算符 &(與) |(或) ^(異或) !(非) && ||
用法:邏輯運算符用於連接boolean類型的表達式
true^true=false;
true^false=true; ^:兩邊相同結果為false
false^true=true; 兩邊不同結果為true
false^false=false;
&: 無論左邊是true或者false,右邊都運算
&&:當左邊為false時,右邊不運算
|: 兩邊都參與運算
||:當左邊為真時,右邊不運算
位運算符(二進位運算)
右移 >>>無符號右移&與 |或 ^異或 ~反碼
2乘以8最有效率的方式:2
>>:除以2的移動的位數次冪。最高位補什麼由原數據的最高位決定
如果最高位為0,右移後用0補空位
如果最高位為1,右移後用1補空位
>>>:無論最高位是什麼,右移後,都用0補
6&3=2 即110&011=010
6|5=7 即110|101=111
6^5=3 即110^101=011 6^5^5=6
~:按位取反
一個數異或同一個數兩次,結果還是那個數 常用於數據加密
兩個數進行交換方法:三種
int n=3,m=8;
第一種:(最常用)
int temp;
temp=n;
n=m;
m=temp;
第二種:
n=n+m;
m=n-m;
n=n-m;
第三種:
n=n^m;
m=n^m;
n=n^m;
三元運算符
格式:(條件表達式)?表達式1:表達式2
如果條件為true ,運算後的結果取表達式1
如果條件為false,運算後的結果取表達式2
例題:將整數60轉為十六進位
思路:1:獲取60的最低四位,通過&15 即&1111
2:將60右移四位,以便獲取下一組四位
3:獲取右移四位後的數的最低四位,通過&15
int num=60;
int n1=num&15;
System.out.println((n1>9)?(char)(n1-10+ A ):n1);/*n1結果為67 預想結果為C 原因是因為n1為整數類型,在與char運算是自動切換成整數了 */
intn2=num>>>4;//用>>>而不用>>是為了取盡所有的二進位數
intn3=n2&15;
System.out.println((n3>9)?(char)(n3-10+ A ):n3);
程序流程控制(for if while)
選擇結構:三種格式
1.If(){} 2.if(){} else{} 3.if(){} else if(){}…else{}
if else結構 簡寫格式:變數=(條件表達式)?表達式1:表達式2
三元運算符: 好處:可以簡化if else代碼
弊端:運算符運算完成必須要有一個結果
而if else語句可以不需要結果
選擇結構(switch)
格式:
switch(表達式){//表達式類型四種 byte short int char
case 取值n:
執行語句;
break;
...
default:
執行語句;
break;//可以省略
}
switch語句中表達式只有四種:char,int,byte,short,當具體數比較少時用switch;
if和switch區別:
當判斷的具體數值不多,且符合byte short int char四種類型 用switch語句 效率高
對於區間判斷,對結果為boolean類型進行判斷,使用if語句,if語句的使用範圍廣。
循環結構
代表語句:while,do while,for
while特點:先判斷條件,只有條件滿足才執行循環體
dowhile特點:條件無論是否滿足,循環體都至少被執行一次
for(初始化表達式,循環條件表達式,循環後的操作表達式)
for的循環條件表達式必須為boolean類型
for表達式不唯一,多表達式用,隔開
for與while的區別:
(1)變數有自己的作用域,對於for來講,如果將用於控制循環的增量定義在for語句中,那麼該變數只在for語句內有效,for語句執行完畢,該變數在內存中被釋放;
(2)for和while可以互換,如果需要定義循環增量,用for更為合適;當要對某些語句執行很多次時,就使用循環語句;
無限循環的最簡單表達式:
(1)for(,,){} //對於for來說,不寫循環條件表達式,默認為true
(2)while(true){}
對於列印長方形,外循環控制行數,內循環控制每一行的列數
尖朝上,可以改變內循環條件,讓條件隨著外循環變化
尖朝下,可以初始化內循環值,讓初始化隨著外循環變化
//九九乘法表
System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
for(int e=1;e
{
for(int r=1;r
{
System.out.print(r+"*"+e+"="+r*e+ );
}
System.out.println();
}
break和continue的使用
break應用範圍:選擇結構和循環結構
continue應用範圍:循環結構
標號即xx: 給循環起名 可以讓break和continue語句作用於指點的範圍
haha:for(int e=1;e
{
xixi:for(int r=1;r
{
System.out.println("e="+e);
//break; //e=1 e=2
breakhaha;//e=1列印一次即跳出循環
}
}
列印10以內的偶數
for(int e=1;e
{
if(e%2==1)
continue;
System.out.println("e="+e);//24 6 8 10
}
continue只作用於循環結構 繼續循環 特點:結束本次循環,繼續下一次循環
break和continue單獨存在時,下面不可以有任何語句,因為執行不到
break和continue這兩個語句離開應用範圍,存在是沒有意義的
函數
函數是指定義在類中的具有特定功能的一段獨立小程序 函數也稱方法
函數的格式
修飾符 返回值類型 函數名(參數類型 形式參數1,參數類型 形式參數2,...)
{
執行語句;
return 返回值;
}
定義函數:
1、先明確該函數的運算結果,確定返回值類型
2、明確在定義該功能時是否需要未知的內容參與運算
void:當函數運算後沒有具體的返回值類型時,用void來標示
當函數的返回值類型為void時,函數中的return可以省略不寫
函數的特點:
定義函數可以將功能代碼進行封裝
便於對該功能進行復用
函數只有被調用才會被執行
函數的出現提高了代碼的復用性
函數中只能調用函數,不可以在函數中定義函數
函數重載:
在同一個類中,允許存在一個以上的同名函數,只要他們的參數個數或者參數類型不同
特點:與返回值類型無關,只看參數列表
好處:方便閱讀,優化程序
eg:int add(int x,int y)
intadd(int x,int y,int z)
doubleadd(double x,double y)
數組
數組是同一種類型數據的集合,是一個容器,是引用類型
格式:
格式1:元素類型[] 數組名=new 元素類型[元素個數或者數組長度];
格式2:元素類型[] 數組名=new 元素類型[];
內存結構
java程序在運行時,需要在內存中的分配空間。為了提高運算效率,就對空間進行了不同區域的劃分,每一片區域都有特定的處理數據方式和內存管理方式。
棧內存:用於存儲局部變數,當數據使用完,所佔空間會自動釋放。
堆內存: 數組和對象,通過new建立的實例都存放在堆內存中。每一個實體都有內存地址值,實體中的變數都有默認初始化值實體不在被使用,會在不確定的時間內被垃圾回收器回收
方法區,本地方法區,寄存器
※開發維護大型 Java 項目的建議
※有點基礎的初級java 要掌握的知識
※給Java零基礎小白的初級總結(一)
※程序員單身之謎 中國 2500萬程序員生活狀態大調查
※java的第三季1-9 查書系統
TAG:java學習吧 |
※Perl 基礎語法
※Kotlin 基礎語法
※Kotlin基本語法
※搞定基礎英語語法:詳解be going to/will的區別用法
※markdown語法練習
※markdown常用語法
※自學 Python 之基礎語法
※XQuery 語法
※jquery常用語法
※Python3與C#基礎語法對比
※Begin,Python-基本語法
※支配vue框架之模版語法 v-html
※SQLite 的語法
※XLink 和 XPointer 語法
※支配vue框架之模版語法 v-bind
※Python正則表達式語法補充
※Python神技能:六張表 搞定 Xpath 語法
※語法有道(四):Back To December
※Microsoft Word欲採用AI來檢查語法問題
※Python 簡明語法總結