java二位数组biaoda_1 面向对象前部分
1.類名稱 :
①最好是英文 (企業根本沒有中文類名稱)
② 最好是名詞 3. 類名稱一般首字母需要大5,并且應該使用"駝峰模式" helloword ---> HelloWord
注意:一個java代碼文件中,可以包含多個類
一個java代碼文件中,只能有一個類是被public修飾的
一個java代碼文件中,代碼文件名稱必須和public修飾的類的類名稱一樣!!!
編譯源碼成字節碼文件.class文件(與平臺無關的字節碼文件),再解釋執行
2.第一個java程序
//定義類HelloWord
public class HelloWorld
//定義程序入口方法
public static void main(String[] args){
//打印數據至控制臺
System.out.println("===歡迎加入瘋狂軟件===");
}
}
3.jvm那邊
4.注釋
5.變量
java是【強類型】語言:變量必須先定義出來,變量必須擁有自己的類型,才能使用!
變量是可以在定義出來以后修改值的。
變量只能存儲對應變量數據類型的數據
6.標識符
變量的名稱就是一個標識符 標識符一般用于在編程中取名字。`
7.數據類型
java的數據類型分為兩種:
①基本數據類型(8種):
a.數值類型
1個byte 相當于在計算機底層占8位
bit(b):位 只可能是0或者1
byte(B): 字節 1B = 8b 一個字節等于8位
-- 整形(整數) 1 2 100
byte(字節型) 取值范圍是 -128~127 底層占8位 (1個Byte)
short(短整型) 取值范圍是 -32768~32767 底層占16位(2個Byte)
int (整型) 取值范圍是 -2G~2G-1 底層占32位
long (長整型) 取值范圍是 -2的63次方~2的63次方-1 占64位(8個Byte)
-- 浮點型(小數) 1.1 100.01
float(單精度浮點類型) 底層占32位(4個Byte)
double(雙精度浮點類型) 底層占64位(8個Byte)
b、 char(字符型) :字符只能是單個字符 并且應該包含在(單引號)' '中
字符也占2個字節(16位),可以表示65536個字符。
c.boolean(布爾型) :boolean類型對應的值只有 true false
②.引用數據類型:
數組,類,接口
8.類型轉換 ——所有數值型(byte、short、int、long、float、double、char)之間都可以相互轉換。
★自動轉換
byte → short → int → long → float → double
↗
char
被轉換的數據在要轉換類型的范圍之中,可以自動轉換!!
超出了范圍,就要強轉: 類型A 變量 = (類型A)數據; 強轉會出現數據溢出!
所有數值類型,都可以自動轉換為double類型
所有整數類型,都可以自動轉換為long類型。
所有整數類型,都可以自動轉換為浮點類型(float、double)
大范圍轉小范圍必須強轉。
如果大范圍數據也在小范圍數據之類一般不會溢出。
重點:浮點型轉換成整形,先去掉小數點,再判斷范圍,再轉換。
避免溢出!!
9.字符型和字符集 就是給已有的字符編個號碼。
10.運算符
①算術運算符 ++、--、+、-、*、/(除)、%(求余/取模)
注意:++ -- 自增和自減
a++,++a 相當于 a = a+1;
a--,--a 相當于 a = a-1
在表達式中:++在前先做自增再計算表達式。--在前先做自減再計算表達式, 反之
②賦值運算符=
先計算右側,再將右側的結果復制給左邊的變量。
int a = 3+4;
③比較運算符
>
<
>=
<=
==
!=
【注意:】比較運算符只是比較兩邊的值,不會理會它們的數據類型。
比較運算符得到的結果,一定是布爾型:true、或 false。
④三目運算符
條件表達式 ? 表達式1 : 表達式2
如果條件表達式為真,整個結果返回 表達式1 的值;否則就返回 表達式2 的值。
三目運算符一定有一個返回值。所以必須是表達式!不能是執行代碼。
⑤擴展的賦值運算符
=可與其他雙目運算符結合,從而得到功能強大的賦值運算符。
-- 最終的結果一定需要成為左側變量的類型。但是是自動幫你轉型的!!
a += b 相當于 a = (a的類型)(a + b) a -= a 相當于 a = (a的類型)(a - b) = a=b a=(a的類型)(a*b) /= %= a%=b a =(a的類型)(a%b); &= |= ^=
⑥邏輯運算符 邏輯運算符要求2個操作數一定是boolean類型(true、false)
&& : 與(并且,要求兩個操作數都為true,結果就是true)
& : 不短路與。 即使前一個表達式已經是false,它還會繼續計算后面的表達式。
|| : 或(或者,要求兩個操作數一個為true,結果就是true。
| 不短路或。 即使前一個表達式已經是true,它還會繼續計算后面的表達式。
! : 非(不要,原操作數取反。單目運算符)
^ : 異或。 不同時為true,相同時為false
11.表達式類型的自動提升
public class BiaodashiLeixing { public static void main(String[] args) { // 定義一個字節整形 byte bt = 23 ;
// 看一個表達式的最高類型,最高類型是什么,表達式最終的類型就是什么。
long b = bt +10l ;
System.out.println(b);
int c = 10 ;
long db = 10L*c*34.2f;
System.out.println(db);
}
}
12.流程控制語句
(1)順序結構 不加任何控制的代碼,就是順序結果。 程序在每個方法中,必須先執行前面代碼,再執行后面的代碼,就是按照順序執行。如果前面代碼出錯,后面代碼無法獲得執行的機會。
(2)分支結構
①if分支
語法格式:
結構1 :
if(條件){
// true 執行這里
}
結構2 :
if(條件){
// true 執行這里
}else{
// false 執行這里
}
結構3 :
if(條件){
// true 執行這里
}else if(條件){
// true 執行這里
}else if(條件){
// true 執行這里 else if : 0 ~ N 個
}else if(條件){
// true 執行這里
}else{
}
結構4 :
if(條件){
// 執行代碼
}
②switch 分支
switch(表達式){
case 值 :
// 執行代碼
break; // 結束分支
case 值 :
// 執行代碼
break; // 結束分支 0 ~ N 次 case塊!
case 值 :
// 執行代碼
break; // 結束分支
default:
// 執行代碼
break; // 結束分支
}
【注意點:】
A. switch表達式的類型,可以是 byte、short、int、char、String(Java 7之后才行)、枚舉。
B. case塊后省略了break之后,會發生“貫穿”(fallthrough)。
貫穿:程序會從第一個匹配的case塊開始執行,在遇到break之前,根本就不會去比較與case后的值是否相等,
而是直接執行case塊。
--- 所以不能省略break
C.case后面的值必須與比較的類型一致。
③循環結構
while循環
格式: while(循環條件){
// 執行代碼 循環體
}
流程:程序先判斷 循環條件 是否為true,如果循環條件為true,進入并執行循環體。
循環體執行結束之后,再次判斷 循環條件 是否為true,如果循環條件為true,進入并執行循環體。
直到某一次循環條件變成了false,不再執行循環體,結束循環。
循環條件的執行次數 == 循環體的執行次數 + 1
因為最后一定要多一次循環條件判斷為false
do-while循環
do{
// 循環體
}while(循環條件);
流程:程序先執行一次循環體。
判斷 循環條件 是否為true,如果循環條件為true,進入并執行循環體。
循環體執行結束之后,再次判斷 循環條件 是否為true,如果循環條件為true,進入并執行循環體。
直到某一次循環條件變成了false,不再執行循環體,結束循環。
循環條件的執行次數 == 循環體的執行次數
對于do while循環而言,即使循環條件開始就是為false,循環體也會執行1次。
for循環
for(初始語句 ;循環條件 ; 迭代語句){
// 循環體
}
流程:開始,執行初始化語句,但只執行一次。
程序先判斷 循環條件 是否為true,如果循環條件為true,進入并執行循環體。
循環體執行結束之后,執行迭代語句,再次判斷 循環條件 是否為true,如果循環條件為true,進入并執行循環體。
直到某一次循環條件變成了false,不再執行循環體,結束循環。
循環條件的執行次數 == 循環體的執行次數 + 1
循環體執行次數 = 迭代語句的執行次數
13.break,continue,return關鍵字
break:結束當前分支或者循環。
1、break只能結束當前(switch)分支或者循環
2、如果是嵌套循環,內部循環的break將不會影響外部循環的執行。
3、如果在嵌套循環中,希望結束外部循環,應該給外部循環加上標簽,再通過
break 外部循環標簽;來結束外部循環執行。
return:
1、一般直接寫return;結束程序。
2、 如果return 數據;返回數據給調用者。
continue:
continue:忽略本次循環的循環體內剩下的語句,重新開始執行下一次循環體。
【隱藏意思:】 把continue放在單次循環的循環體的最后,是沒有任何意義的。
continue放在嵌套循環中,可以同給外部循環加入標簽,內部循環就可以通過continue 標簽;
來忽略外部循環當次循環體的剩下代碼,而直接進入下一輪計數器,從新執行循環體。
continue 標簽;
14.數組 冒泡排序 為什么需要數組?
當程序中有多個(甚至個數暫時不確定的)類型相同、功能類似的變量時,此時就不要用變量,而是應該用數組。
—一【創建】數組之后,就相當于得到了N個類型相同的變量,每個數組元素都相當于一個普通的變量。
數組的長度: 該數組包含多少個元素。
如何創建使用數組?
數組是一種引用類型。如果創建不同類型的數組來存放數據。
基本數據類型 數組類型
byte byte[]
short short[]
int int[]
long long[]
char char[]
float float[]
double double[]
boolean boolean[]
...
注意:什么類型的數組只能存放什么類型的數據
15.創建數組的兩種方式
靜態初始化
格式:類型[] 數組變量名稱 = new 類型[]{元素1,元素2,元素3,..........};
-- 數組的長度 格式: 數組變量名稱.length
-- 訪問數組的元素 格式: 數組變量名稱[元素位置索引]
-- 給數組元素賦值 格式: 數組變量名稱[元素位置索引] = 值;
-- 遍歷數組: 訪問數組的所有元素
a. for循環
b. foreach循環
格式: for(數組中元素的類型 變量 : 需要被遍歷的數組){
//輸出變量
}
注意點:
-- 什么類型的數組就一點存放什么類型的數據
-- 靜態初始化的數組一旦定義出來,數組的長度就固定了。
-- 訪問數組的時候,訪問的索引不能超過數組的大小,超過代碼在執行
的時候會出現一個經典的錯誤:數組訪問越界異常(ArrayIndexOutOfBoundsException)!
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: x
動態初始化
格式:類型[] 數組變量名稱 = new 類型[數組的長度];
-- 數組的長度 格式: 數組變量名稱.length
-- 訪問數組的元素 格式: 數組變量名稱[元素位置索引]
-- 給數組元素賦值 格式: 數組變量名稱[元素位置索引] = 值;
-- 遍歷數組: 訪問數組的所有元素
a. for循環
b. foreach循環
格式: for(數組中元素的類型 變量 : 需要被遍歷的數組){
//輸出變量
}
注意:
-- 什么類型的數組就一定要存放什么類型的數據
-- 動態初始化一旦定義出數組,數組的長度就固定了。
此時數組中是存在元素的,元素是默認的值:
所有的數值類型默認值都是: 0 或者 0.0
boolean類型數組的默認值是: false
char類型的默認值是:一個空格字符。
所有的引用類型數組默認值是: null
-- 訪問數組的時候,訪問的索引不能超過數組的大小,超過代碼在執行
的時候會出現一個經典的錯誤:數組訪問越界異常(ArrayIndexOutOfBoundsException)!
Exception in thread "main" java.lang.ArrayInde
xOutOfBoundsException:
16.棧內存,堆內存 Java的變量的存放區域,有兩個地方:
按照操作系統的原理:程序必須加載到內存中才能執行。
注意點: 數組是一個引用類型。
java的存儲機制:方法申明的變量全部都放在棧內存,但是
-- 基本數據類型是直接存放變量的值在棧內存中,輸出變量直接打出存放的變量值。
-- 引用類型的變量在棧內存中并不是存放變量的內容,而是存放
引用類型變量對應數據在堆內存中的地址。
棧(stack)內存: 方法(函數)運行時動態分配的一小塊臨時內存,方法(函數)結束時,內存區就被系統回收。 方法棧。
只要在方法聲明的變量(局部變量),全部都放在棧內存。
堆(heap)內存: JVM(Java Virtual Machine)運行時持有一塊持久的、很大存儲區。 一個虛擬機,只持有一塊堆內存。 運行java命令時,可通過-X選項來指定堆內存的大小。 只要用new創建的對象,全部都在堆內存。 引用類型變量的值一般都是存放在堆內存中的
17.二維數組
char[][] datas = new char[3][3]; //遍歷二維數組 datas:二維數組 data:一維數組
for(char[] data : datas ){
for(char da : data){
System.out.print(da);
}
System.out.println();
}
總結
以上是生活随笔為你收集整理的java二位数组biaoda_1 面向对象前部分的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java用符号断开取前面_java-如何
- 下一篇: java单例注册表_Spring对单例的